ENG    РУС

Все статьи »

Быстрый поиск шеллов в joomla, wordpress и dle (wp-conf.php, index_backup.php)

Закажите лечение сайта и защиту от взлома у специалистов

Если вы знакомы с ssh и командной строкой unix, и ваши сайты на joomla, wordpress, dle взломали в автоматическом режиме (обычно при этом появляются wp-conf.php, index_backup.php и .htaccess файлы с редиректами на index_backup.php), приведенный ниже список команд позволит вам быстро найти и удалить большую часть шеллов:

find . -name '*.php' -exec grep -l '$msg=@gzinflate(@base64_decode(@str_replace' {} \; > rem01.txt
find ./images/ -name '*.php' > rem02.txt
find . -name '*.php' -exec grep -l 'preg_replace("/\.\*/e","' {} \; > rem03.txt
find . -name '*.php' -exec grep -l 'eval (base64_decode($_POST["php"]));' {} \;  > rem04.txt
find . -name '.htaccess' -exec grep -l 'android|midp|j2me|symbian|series' {} \; > rem05.txt
find . -name '.htaccess' -exec grep -l 'google|ask|yahoo' {} \; >> rem05.txt
find . -name '*.php' -exec grep -l 'if(@md5($_POST\["gif"\])' {} \; > rem06.txt
find . -name 'index.php' -exec grep -l '$_REQUEST\[.*\]; eval' {} \; > rem07.txt
find . -name '*.php' -exec grep -l '&& function_exists("getmxrr"))' {} \; > rem08.txt
find . -name '*.php' -exec grep -l '<br/>Security Code: <br/><input name="security_code" value=""/>' {} \; > rem09.txt
find . -name '*.php' -exec grep -l 'ncode(print_r(array(),1)),5,1).c),$c);}eval($d);' {} \; > rem10.txt
find . -name 'index.html' -exec grep -l '<META HTTP-EQUIV="Refresh"  CONTENT="0; ' {} \; > rem11.txt
find . -name '*.php' -exec grep -l '= array("Google", "Slurp", "MSNBot"' {} \; > rem12.txt
find . -name 'index_backup.php' > rem13.txt
find . -name '*.jpg' -exec grep -l 'eval(base64' {} \; > rfix_jpg.txt
Что нужно сделать:
  1. создайть файл find_shell.sh в директории сайта, скопируйте в него приведенный выше код
  2. зайти на хостинг по ssh, перейти в директорию сайта
  3. запустить скрипт командой sh find_shell.sh
  4. в результате будут созданы файлы вида remXX.txt. Пустые можно удалить (значит шелла с данной сигнатурой у вас нет), а в непустых замените "./" на "rm -f ./"
  5. проверьте список файлов в remXX.txt, может что-то из этого не стоит удалять? Например, вы могли разместить в каталоге "images" joomla какой-то свой скрипт, наподобие наложения watermark'а на фотографию
  6. выполните команды
    sh rem1.txt
    sh rem2.txt 
    ...
    
    для каждого оставшегося remXX.txt файла
  7. в файле rfix_jpg.txt будут JPG файлы, у которых в метаданных шелл. Их тоже надо почистить (либо через графический редактор, либо можно просто заменить в файле "eval" на "love" :)
  8. теперь проверьте сайт скриптом AI-BOLIT на оставшийся вредоносный код.
Кстати, если не работаете с ssh и командной строкой unix, есть альтернативный способ поиска шеллов через системные функции php system(), shell_exec() и т.п. (конечно, если они у вас разрешены на хостинге). Для этого нужно создать .php файл, в котором команды будут вызываться через эту функцию:
<?php
system("find . -name '*.php' -exec grep -l '$msg=@gzinflate(@base64_decode(@str_replace' {} \; > rem01.txt");
...
Чтобы удалить файлы, нужно списки из remXX.txt файлов
./mysite.org/docs/wp-conf.php
./mysite.org/docs/w16651143n.php
./mysite.org/docs/w16655549n.php
./mysite.org/docs/tmplist.php
...
превратить в
<?php
unlink('./mysite.org/docs/wp-conf.php');
unlink('./mysite.org/docs/w16651143n.php');
unlink('./mysite.org/docs/w16655549n.php');
unlink('./mysite.org/docs/tmplist.php');
...
переименовать расширение в .php и открыть в браузере.

А кто боится чистить сайт самостоятельно, обращайтесь к нам в Revisium, быстро вылечим сайт и поставим защиту. Потому что нужно не только чистить результаты взлома, но и закрывать уязвимости, через которые сайт был взломан.

Посмотреть другие статьи.

Закажите лечение сайта и защиту от взлома у специалистов

Обсуждаем!