Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   Как такое возможно? (https://forum.antichat.xyz/showthread.php?t=124611)

попугай 10.06.2009 21:13

Как такое возможно?
 
В-общем, через локальный инклюд на сайте залил шелл. Нычки не делал нигде. Но шелл заtouchил и папку в которой шелл был. Забил на два дня на ресурс. Потом пробую зайти на шелл - хоппа - forbidden - я в ахуе. Метнулся к инклюду - прикрыли багу. Ну я нашел еще инклюд на другом поддомене - залил снова шелл. Решил проверить, что со старым - папка в которой он лежал уже не имеет прав на чтение, исполнение и запись, поэтому шелл не работал.

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

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

Как так меня палили? ведь даты я менял, в папки заливал у которых права были такие же , что и у вебсервера. (apache 48), в логах не палил файлы.
Что это за суперадмины такие, что так за серваком бдят? И как у них так это выходит? И почему они не удаляли тупо файлы, а меняли права на 000 - зачем это ?

Pashkela 10.06.2009 21:49

)) а touch на всё делал, на файлы, на изменяемые ПАПКИ, обратил внимание, какие владелец и группа у файла, чисто визуально не отличались от остальных в папочке?:))

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

gold-goblin 10.06.2009 21:52

Цитата:

при каждом появлении ЧЕГО_ТО нового при очередном сканировании - алерт
и права по 000 пока админ не проверит

попугай 10.06.2009 23:02

Цитата:

Сообщение от Pashkela
)) а touch на всё делал, на файлы, на изменяемые ПАПКИ, обратил внимание, какие владелец и группа у файла, чисто визуально не отличались от остальных в папочке?:))

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


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

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

Pashkela 10.06.2009 23:05

Цитата:

Через два дня захожу снова
Достаточно такой скрипт на хрон раз в сутки поставить, и вуаля

gold-goblin 10.06.2009 23:14

раз в час проверить уменьшилось ли место на винче если уменьшилось то скан и тд

Krist_ALL 10.06.2009 23:19

А мона скрипт такой мне?

Stik 10.06.2009 23:33

Цитата:

Сообщение от gold-goblin
раз в час проверить уменьшилось ли место на винче если уменьшилось то скан и тд

тебе диж бы бред какой то написать. а темп к примеру? сессии, аццесс логи и тд, да куча всего, место на винте никогда не будет статичным. если и есть такой скрипт то он проверяет скорее сам сайт

gold-goblin 10.06.2009 23:38

Цитата:

Сообщение от Stik
тебе диж бы бред какой то написать. а темп к примеру? сессии, аццесс логи и тд, да куча всего, место на винте никогда не будет статичным. если и есть такой скрипт то он проверяет скорее сам сайт

вообще то нормально настроенный сервер имеет корень под www где логи, темпы не хранят...
бд обычно находится также в отдельном корне...
Или ты думаешь что админы серверов все хранят на диске С????
Добавил:

Ну если и это тебе кажется ахинеей то проверять размер папок где разрешено выполнение пхп (и т.д) скриптов...

Spyder 11.06.2009 11:19

ids

PaCo 11.06.2009 11:33

Попробуй вынести код шелла за пределы веб диры, или например в БД ну а в каком ни будь малозаметном оригинальном файл внеси в начали include c exit c срабатыванием например по браузеру, кукисам и etc, у меня была схожая фигня именно так я и поступил к моему счастью там не было чексуммов и etc, просто сносились все новые файлы и каталоги раз в полчаса.

[Raz0r] 11.06.2009 14:28

Такое поведение напоминает работу антивируса, который определяет по сигнатуре твой шелл. Проблему может решить какой-нибудь пока что мало известный веб-шелл, например WSO2 (кстати к тому же очень удобный, рекомендую). В похожей ситуации шифрованные с помощью base64 и сжатые gzip'ом шеллы удалялись буквально через 30 секунд.

zerling 11.06.2009 17:05

Цитата:

Сообщение от [Raz0r]
Такое поведение напоминает работу антивируса, который определяет по сигнатуре твой шелл. Проблему может решить какой-нибудь пока что мало известный веб-шелл, например WSO2 (кстати к тому же очень удобный, рекомендую). В похожей ситуации шифрованные с помощью base64 и сжатые gzip'ом шеллы удалялись буквально через 30 секунд.

+1 , на линухах тоже антивири бывают, если там р57 какой-нибудь, то любой антивирь его найдет, иногда вообще бывает заливаешь Р57 - сразу Forbidden, заливаешь непаленый - все нормально

попугай 11.06.2009 18:16

Думаете антивирус?
c99madshell тоже палят? Он же несколько раз гзипованный...
Другие пока не пробовал - но попробую - сообщу..

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

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

Pashkela 11.06.2009 18:38

Вот скрипт, с помощью которого в секунду можно вычислить появление нового файла (у меня 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 хранить не на серве, то будет трудновато залить полноценный шелл, не меняя содержимого уже существующих файлов


Время: 22:15