Просмотр полной версии : Как такое возможно?
В-общем, через локальный инклюд на сайте залил шелл. Нычки не делал нигде. Но шелл за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 пока админ не проверит
)) а touch на всё делал, на файлы, на изменяемые ПАПКИ, обратил внимание, какие владелец и группа у файла, чисто визуально не отличались от остальных в папочке?:))
PS: Да элементарно - слепок системы, при каждом появлении ЧЕГО_ТО нового при очередном сканировании - алерт
Конечно на все, что изменял. А владелец - я писал в диры, владельцем которых является апач и файлы там апачевые.. поэтому подозрений никаких не должно быть...
Вот насчет слепка системы и сканирования - может быть.. Но это сервак большой довольно таки.. так часто сканирование что-ли проводится там?
Pashkela
10.06.2009, 23:05
Через два дня захожу снова
Достаточно такой скрипт на хрон раз в сутки поставить, и вуаля
gold-goblin
10.06.2009, 23:14
раз в час проверить уменьшилось ли место на винче если уменьшилось то скан и тд
Krist_ALL
10.06.2009, 23:19
А мона скрипт такой мне?
раз в час проверить уменьшилось ли место на винче если уменьшилось то скан и тд
тебе диж бы бред какой то написать. а темп к примеру? сессии, аццесс логи и тд, да куча всего, место на винте никогда не будет статичным. если и есть такой скрипт то он проверяет скорее сам сайт
gold-goblin
10.06.2009, 23:38
тебе диж бы бред какой то написать. а темп к примеру? сессии, аццесс логи и тд, да куча всего, место на винте никогда не будет статичным. если и есть такой скрипт то он проверяет скорее сам сайт
вообще то нормально настроенный сервер имеет корень под www где логи, темпы не хранят...
бд обычно находится также в отдельном корне...
Или ты думаешь что админы серверов все хранят на диске С????
Добавил:
Ну если и это тебе кажется ахинеей то проверять размер папок где разрешено выполнение пхп (и т.д) скриптов...
ids (http://www.citforum.ru/security/internet/firewalls_ids/)
Попробуй вынести код шелла за пределы веб диры, или например в БД ну а в каком ни будь малозаметном оригинальном файл внеси в начали include c exit c срабатыванием например по браузеру, кукисам и etc, у меня была схожая фигня именно так я и поступил к моему счастью там не было чексуммов и etc, просто сносились все новые файлы и каталоги раз в полчаса.
Такое поведение напоминает работу антивируса, который определяет по сигнатуре твой шелл. Проблему может решить какой-нибудь пока что мало известный веб-шелл, например WSO2 (кстати к тому же очень удобный, рекомендую). В похожей ситуации шифрованные с помощью base64 и сжатые gzip'ом шеллы удалялись буквально через 30 секунд.
']Такое поведение напоминает работу антивируса, который определяет по сигнатуре твой шелл. Проблему может решить какой-нибудь пока что мало известный веб-шелл, например WSO2 (кстати к тому же очень удобный, рекомендую). В похожей ситуации шифрованные с помощью base64 и сжатые gzip'ом шеллы удалялись буквально через 30 секунд.
+1 , на линухах тоже антивири бывают, если там р57 какой-нибудь, то любой антивирь его найдет, иногда вообще бывает заливаешь Р57 - сразу Forbidden, заливаешь непаленый - все нормально
Думаете антивирус?
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
@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. Чекает появление/удаление (относительно эталона) файлов:
<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);
$h= fopen("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>=0 && $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 хранить не на серве, то будет трудновато залить полноценный шелл, не меняя содержимого уже существующих файлов
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot