2009-05-05

Чистка файлов на хостинге от сторонних включений с помощью связки grep+sed

Вот уже который раз на хостинге наблюдаю работу некоего зловреда, который включает в файлы сайтов, в названии которых есть слова "main", "index" и "default" сторонний код, подгружающий на компьютеры посетителей зараженные файлы с использованием iframe. Пользователей Linux это не касается, поэтому они могут спать спокойно, для них этот код означает просто очень долгую загрузку страницы, связанную с загрузкой в кэш зараженного файла. Зато пользователи Windows, особенно бороздящие просторы интернета с помощью (если это так можно назвать) IE, подвергаются атаке по полной программе. Я об этой заразе узнал от такого пользователя. Много файлов, много строк, поди найди там всё!
Приступим к решению!
1) Подключаемся к серверу по протоколу ssh и получаем командную строку.
2) Проверяем наличие бяк в файлах php и html, получив список файлов с внедренным кодом (одной строкой):
find . -name '*.php' -o -name '*.html' -exec grep -l -E '^<iframe src=.+></iframe>$' '{}' \;
3) Массово заменим эти включения на пустоту (одной строкой):
find . -name '*.php' -o -name '*.html' -print0 | xargs -0 sed -i -e 's/^<iframe src=.*><\/iframe>$//g'
Конечно, это все временное решение, но хотя бы до следующей атаки пользователи не будут страдать.
Если у кого-то на хостинге случилось подобное, расскажите как боролись!

2 комментария:

Анонимный комментирует...

Обычно такие вещи происходят кода пользователь сохраняет пароли от FTP, например в TotalComander, ну и собственно получается что утянув пароль, злоумышленники своим скриптом пихают зловредный код во все вхождения index, main и прочее. Бороться с этим можно лишь сменив пароль на FTP ну и собственно предупреждать пользователей о том чтобы не сохраняли пароли в ПО которое хранит их в открытом виде.

Kawaikunee комментирует...

Согласен, в тот раз так и было, уплыли пароли.