Лечение скриптов сайта от чужого кода
Столкнулся с проблемой на сайте (вернее более 10 сайтов клиента) появился левый - вредоносный код тоисть вирус, который заключается в том что на сайте на всех страницах присутствуют левые ссылки на чужие сайты. Обычно это проблемой не было, пробежался по скриптам почистил код, но как оказалось заражены все пхп скрипты .
Первое канечно поменять все фтп доступы, второе заставить тех у кого есть доступ к сайту провериться на вирусы.
Второе сделайте резервную копию сайта перед лечением !!!.
Пример анализа только одного сайта
= Всего проверено файлов: 1917
= Из них, возможно, заражены и требуют ручной проверки: 1155
Долго придется руками чистить :( .
Если есть бекапы то можно ими воспользоваться (но как всегда давно не делались, и после было много доработок)
Чтоб не изобретать велосипед немного погуглив нашел пару вариантов упростить задачу.
один Вирус на сайте? Как его найти и удалить, но он только для того чтоб определить ущерб по поисковым фразам и по фтп править найденое, нужно или дорабатывать или второй вариант спасибо гуглу и Тушову Леониду за его вариант решения проблемы.
Единственное у Леонида нужно руками лечить найденный код вируса в скриптах (тоже правильно чтоб не напортачить), а руками лечить более 12 000 скриптов – тоисть кликов, долговато.
По быстрому, так как проблема может (возможно) отразится на позициях сайтов в инете, немного переделал его скрипт (может не совсем красивый код , но проблему решил и быстро ). Добавил ссылку чтоб сразу исправляла найденые комбинации, и поиск идет по всем пхп файлам (не только содержащие index) , соответственно добавил в исключение сам скрипт антивируса .
Найденный код вируса выглядит :
<?php
$md5 = "….";
$wp_salt = array(….);
$wp_add_filter = create_function('…');
?>
Причем значение пременных во всех скриптах разное. Тоесть первый вариант скрипта , может помочь нам для поиска самих переменных (но он тоже пригодится ).
В варианте Леонида, составив свою регуляру: '|(<\?php.*?\$md5.*?\$wp_add_filter.*?\?>\n)|si'
Почти все было найдено.
В моем варианте, проверив что из скриптов удалятся только последствия работы робота–вируса, можно воспользоваться ссылкой «удалить все».
Потом как выяснилось с помощью первого скрипта удалилось не все, в регулярке мне нужно было, чтобы удалялся перенос «\n» (в пхп скриптах тогда не остается пустой первой строки, что вызывало ошибки заголовка страниц) ,а если не использовать перенос то срипты (когдато пустышки) не будут найдены так как в них нет переноса. Соответственно нужно или каждый раз менять регулярку или руками дочистить остатки вируса.
Также было замечено что етот вирус почемуто в плагин tiny-mce (редактор использующийся в админке сайта) "tiny_mce/plugins/inlinepopups/skins/clearlooks2/img" было пару левых скриптов с кодом вируса 14b.php, 1b74.php и более 3000 подобных файлов «___a frame log home design» с разными названиями 0 bytes и не только (в них также был текст с левыми ссылками, которые были и в вирусе) которые пришлось удалять руками.
Мои рабочие варианты лечения скриптов
Не забудте после подобного заражения сменить доступы к сайту (обычно достаточно ФТП), желательно сменить права на скрипты (если канечно вам их не приходится часто редактировать как в моем случае). И всетаки бекапы лучшее средство лечения :) .
Возможно позже выложу более функциональный и красивый код скрипта - антивируса для лечения сайта.