Ищем файлы измененные с 01.01.2012 по текущую дату:
# touch -t 01010000 /tmp/timestamp
# find /path/to/sites -newer /tmp/timestamp
Удаляем, либо зачищаем подозрительные файлы.
Далее ищем подозрительные функции в наших файлах:
# grep -Rni "(passthru|shell_exec|system|phpinfo|base64_decode|chmod|mkdir|eval|preg_replace) {0,1}(" /path/to/sites > /tmp/carantin
Потом неспеша просматриваем файл /tmp/carantin.
Достаточно хорошим способом вычислить изменения является слежение за изменениями контрольных сумм файлов.
С чистой файловой структуры (например бэкапа) снимаем контрольные суммы всех файлов командой:
# cd /var/backup/sites
# touch /tmp/checksum.md5
# find ./ -type f -exec openssl md5 {} >> /tmp/checksum.md5;
Копируем файл checksum.md5 на предположительно зараженный сервер и проверяем контрольные суммы файлов:
# cd /path/to/sites
# md5sum -c /tmp/checksum.md5 | grep FAILED
Выведется список файлов, контрольная сумма которого не совпадает с шаблонной. Среди всяческих файлов кэширования и других временных файлов, возможно найдутся и зараженные шелом файлы.
Утилита md5sum нативно есть только в Linux, в BSD ее нет, но у меня например установлен эмулятор Linux и в нем есть эта утилита. Думаю если что, можно написать небольшой скриптик, который бы парсил файлы и сверял контрольные суммы.
Ну и конечно нужно смотреть лог файлы ftp, ssh, apache.
В общем то это не полный список мер, в дальнейшем постараюсь пополнять его.
No comments
RSS / trackback