Поиск web-шеллов на своих серверах


Tagged ,

Ищем файлы измененные с 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.

В общем то это не полный список мер, в дальнейшем постараюсь пополнять его.

Share:

No comments

RSS / trackback

Respond