Как такое возможно?

Discussion in 'Песочница' started by попугай, 10 Jun 2009.

  1. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196
    В-общем, через локальный инклюд на сайте залил шелл. Нычки не делал нигде. Но шелл заtouchил и папку в которой шелл был. Забил на два дня на ресурс. Потом пробую зайти на шелл - хоппа - forbidden - я в ахуе. Метнулся к инклюду - прикрыли багу. Ну я нашел еще инклюд на другом поддомене - залил снова шелл. Решил проверить, что со старым - папка в которой он лежал уже не имеет прав на чтение, исполнение и запись, поэтому шелл не работал.

    Ну залил еще щеллов и нычек на рес и поддомены. Даты откатывал. На шеллы не заходил с веба. Заодно глянул, что с тем бажным скриптом первым(инклюд) - ддействительно залатали.

    Через два дня захожу снова на шелл - снова forbidden. Лезу на другие шеллы - аналогично. Нычки тоже в большинстве - forbidden. Одна осталась - залил через нее шелл снова. Смотрю значит - все шеллы и нычки не удалены, а просто имеют права 000, также и с папками, что я создавал - 000

    Как так меня палили? ведь даты я менял, в папки заливал у которых права были такие же , что и у вебсервера. (apache 48), в логах не палил файлы.
    Что это за суперадмины такие, что так за серваком бдят? И как у них так это выходит? И почему они не удаляли тупо файлы, а меняли права на 000 - зачем это ?
     
    #1 попугай, 10 Jun 2009
    Last edited: 10 Jun 2009
  2. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    )) а touch на всё делал, на файлы, на изменяемые ПАПКИ, обратил внимание, какие владелец и группа у файла, чисто визуально не отличались от остальных в папочке?:))

    PS: Да элементарно - слепок системы, при каждом появлении ЧЕГО_ТО нового при очередном сканировании - алерт
     
  3. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    и права по 000 пока админ не проверит
     
  4. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196

    Конечно на все, что изменял. А владелец - я писал в диры, владельцем которых является апач и файлы там апачевые.. поэтому подозрений никаких не должно быть...

    Вот насчет слепка системы и сканирования - может быть.. Но это сервак большой довольно таки.. так часто сканирование что-ли проводится там?
     
  5. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Достаточно такой скрипт на хрон раз в сутки поставить, и вуаля
     
  6. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    раз в час проверить уменьшилось ли место на винче если уменьшилось то скан и тд
     
  7. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    А мона скрипт такой мне?
     
  8. Stik

    Stik Member

    Joined:
    26 Mar 2009
    Messages:
    10
    Likes Received:
    5
    Reputations:
    -2
    тебе диж бы бред какой то написать. а темп к примеру? сессии, аццесс логи и тд, да куча всего, место на винте никогда не будет статичным. если и есть такой скрипт то он проверяет скорее сам сайт
     
  9. gold-goblin

    gold-goblin Elder - Старейшина

    Joined:
    26 Mar 2007
    Messages:
    917
    Likes Received:
    174
    Reputations:
    3
    вообще то нормально настроенный сервер имеет корень под www где логи, темпы не хранят...
    бд обычно находится также в отдельном корне...
    Или ты думаешь что админы серверов все хранят на диске С????
    Добавил:

    Ну если и это тебе кажется ахинеей то проверять размер папок где разрешено выполнение пхп (и т.д) скриптов...
     
    #9 gold-goblin, 10 Jun 2009
    Last edited: 10 Jun 2009
  10. Spyder

    Spyder Elder - Старейшина

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
  11. PaCo

    PaCo Elder - Старейшина

    Joined:
    6 Feb 2008
    Messages:
    436
    Likes Received:
    138
    Reputations:
    25
    Попробуй вынести код шелла за пределы веб диры, или например в БД ну а в каком ни будь малозаметном оригинальном файл внеси в начали include c exit c срабатыванием например по браузеру, кукисам и etc, у меня была схожая фигня именно так я и поступил к моему счастью там не было чексуммов и etc, просто сносились все новые файлы и каталоги раз в полчаса.
     
  12. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    Такое поведение напоминает работу антивируса, который определяет по сигнатуре твой шелл. Проблему может решить какой-нибудь пока что мало известный веб-шелл, например WSO2 (кстати к тому же очень удобный, рекомендую). В похожей ситуации шифрованные с помощью base64 и сжатые gzip'ом шеллы удалялись буквально через 30 секунд.
     
  13. zerling

    zerling New Member

    Joined:
    4 Jan 2008
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    +1 , на линухах тоже антивири бывают, если там р57 какой-нибудь, то любой антивирь его найдет, иногда вообще бывает заливаешь Р57 - сразу Forbidden, заливаешь непаленый - все нормально
     
  14. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,520
    Likes Received:
    401
    Reputations:
    196
    Думаете антивирус?
    c99madshell тоже палят? Он же несколько раз гзипованный...
    Другие пока не пробовал - но попробую - сообщу..

    Вот кстати ps -aux с серва. Посмотрите, пожалуйста, кто разбирается, есть что нибудь похожее на антивирь?

    http://rapidshare.com/files/243372824/lsbkypsaux.txt
    http://slil.ru/27750160
     
  15. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Вот скрипт, с помощью которого в секунду можно вычислить появление нового файла (у меня 146 344 файла, 64 мб оперативки, скрипт работал секунду или меньше).

    Состоит из двух частей, сначала запускаем первую часть:

    1. Создаёт образ (эталон) всех файлов на диске:
    PHP:
    <?php
    @set_time_limit(0); 
    @
    ini_set("display_errors","1");

    $path '/home/www/lalala/http'// Абсолютный путь к корню, без слеша в конце

    //Функция рекурсивного получения списка файлов и папок
    function fold($rootDir$allData=array()) {
        
    $invisibleFileNames = array(".""..");
        
    $dirContent scandir($rootDir);
        foreach(
    $dirContent as $key => $content) {
            
    $path $rootDir.'/'.$content;
            if(!
    in_array($content$invisibleFileNames)) {
                if(
    is_file($path) && is_readable($path)) {
                    
    $allData[] = $path;//Файлы
                
    }elseif(is_dir($path) && is_readable($path)) {
                    
    $allData fold($path$allData);
                }
            }
        }
        return 
    $allData;
    }
    $a fold($path);
    $count count($a);
    $b implode("\r\n",$a);
    $c fopen("etalon.txt","w");
    fwrite ($c,$b);
    fclose($c);
    echo 
    "Base of files updated, there are $count files in base";
    ?>
    2. Чекает появление/удаление (относительно эталона) файлов:

    PHP:
    <pre>
    <?php
    @set_time_limit(0); 
    @
    ini_set("display_errors","1");

    $path '/home/www/lalala/http'// Абсолютный путь к корню, без слеша в конце

    //Функция рекурсивного получения списка файлов и папок
    function fold($rootDir$allData=array()) {
        
    $invisibleFileNames = array(".""..");
        
    $dirContent scandir($rootDir);
        foreach(
    $dirContent as $key => $content) {
            
    $path $rootDir.'/'.$content;
            if(!
    in_array($content$invisibleFileNames)) {
                if(
    is_file($path) && is_readable($path)) {
                    
    $allData[] = $path;//Файлы
                
    }elseif(is_dir($path) && is_readable($path)) {
                    
    $allData fold($path$allData);
                }
            }
        }
        return 
    $allData;
    }
    $a fold($path);
    $count count($a);
    $hfopen("etalon.txt","r");
    while (!
    feof($h)) $c[]=trim(fgets($h));
    fclose($h);
    $count1 count($c);
    $diff $count $count1;
    if (
    $diff>=0$result array_diff($a$c);
    else 
    $result array_diff($c$a);
    sort ($result);
    $count2 count($result);
    if (
    $diff>=&& $count2!=0) {
      echo 
    "Etalon base - $count1 files, Current base - $count files, difference is $diff files, new files below:\r\n\n\n";
      if (
    $count2!=0) {
        for(
    $i=0;$i<$count2;$i++) {
          echo 
    "File - {$result[$i]}, FileDate - ".date("d.m.Y H:i"fileatime($result[$i])). " , FileSize - " round(filesize($result[$i])/1024,2) . "Kb\r\n";
        }
      }
    }
    if (
    $diff<0) {
       echo 
    "Etalon base - $count1 files, Current base - $count files, difference is $diff files, deleted files below:\r\n\n\n";
       if (
    $count2!=0) {
         for(
    $i=0;$i<$count2;$i++) {
           echo 
    "File - {$result[$i]} was deleted\r\n";
         }
       }

    if (
    $count2==0)  echo "Etalon base - $count1 files, Current base - $count files, difference is $diff files, no changes\r\n\n\n";  
    ?>
    </pre>
    если etalon.txt хранить не на серве, то будет трудновато залить полноценный шелл, не меняя содержимого уже существующих файлов
     
    #15 Pashkela, 11 Jun 2009
    Last edited: 11 Jun 2009
    2 people like this.