Примерный список действий, которые необходимо выполнить. Предполагается что у вас есть доступ к сайту по ssh. В каждом пункте дано краткое описание того что нужно сделать и примеры команд. Для вычищения кода сайта необходимо найти и вручную проверить подозрительные файлы. Потом поискать на сайте все файлы, которые могут быть похожи на найденные. Когда файлы найдены нужно посмотреть время их изменения, посмотреть логи веб-сервера за указанное время, поискать подозрительную активность. Если что-то нашлось - посмотреть все запросы с этого же ip адреса, возможно выявятся какие-то новые, ранее не найденные дырки. Через такой анализ логов можно понять как сайт был заражен и лечить его местно. После проведения ручной чистки нужно удалить с сайта всё что не требуется для его работы - старые копии сайта, содержимое кэша (он создастся заново), файлы из временных папок. Если сайт на каком-то популярном движке - ПОСЛЕ вычищения всего вредоносного кода нужно обновить его до последней версии. [править] Проверить .htaccessПроверьте .htaccess на предмет наличия подозрительных записей. При проверке нужно включить в редакторе перенос длинных строк, т.к. часто злоумышленники добавляют в начало вредоносных строк много пробелов, чтобы при беглом взгляде вредоносный код был незаметен. Так же стоит просмотреть весь .htaccess а не только видимое начало - перед вредоносным блоком может быть много пустых строк. [править] Найти последние измененные файлыПосмотреть какие файлы менялись за последнее время (3 дня, неделю, месяц) find . -type f -mtime -3 find . -type f -mtime -7 find . -type f -mtime -30 find . -type f -mtime -30 -name="*.php" Файлы, которые были созданы в последний месяц find . -type f -ctime -30 Можно посмотреть файлы, которые менялись больше недели назад и меньше месяца назад find . -type f -mtime +7 -mtime -30 [править] Файлы, содержащие подозрительные командыgrep -Hn "eval.*base64" -r . --include="*.php"
grep -lHnz -E 'base64_decode.*eval\s*(' -r . --include="*.php"
grep -Hn 'shell_exec\s*(' -r . --include="*.php"
grep -Hn 'exec\s*(' -r . --include="*.php"
grep -Hn 'eval\s*(' -r . --include="*.php"
grep -Hn 'mail\s*(' -r . --include="*.php"
grep -Hn 'assert\s*(' -r . --include="*.php"
grep -Hn 'create_function\s*(' -r . --include="*.php"
grep -Hn 'gzuncompress\s*(' -r . --include="*.php"
grep -Hn 'gzinflate\s*(' -r . --include="*.php"
grep -Hn 'str_rot13\s*(' -r . --include="*.php"
grep -Hn 'preg_replace\s*(' -r . --include="*.php"
grep -Hn 'file_get_contents\s*(' -r . --include="*.php"
grep -Hn 'curl_exec\s*(' -r . --include="*.php"
grep -Hn 'move_uploaded_file\s*(' -r . --include="*.php"
[править] Файлы с подозрительно длинными строкамиgrep -Hn -E '[^\ ]{200,}' -r . --include="*.php"
[править] Файлы с расширением НЕ php, содержащие php кодgrep -lHnz -E '<\?(php)?[[:space:]].*\?>' -r . --exclude="*.php" [править] Файлы, которые лежат там, где лежать не должныНапример для joomla при взломе php код часто попадает в папку с картинками find http/images/ -type f -name "*.php" for j in `for i in images js css img javascript; do find . -type d -iname $i; done`; do find $j -iname '*.php'; done [править] Посмотреть точное время изменения файла для поиска по логамls --full-time 123.php [править] Поиск base64 и обфускации кода, в которые очень часто шифруется всякая дряньОдна команда найдет практически все факты заражения - но и много нормальных здоровых файлов, поэтому её следует использовать с осторожностью и повышенной внимательностью egrep -r '[a-zA-Z]+[0-9]+[a-zA-Z]+[0-9]+[a-zA-Z]+[0-9]+[a-zA-Z]+[0-9]+' .
|
|




