Как jAntivirus обнаружил бэкдор на сайте

5.1.2015 - 1600 просмотров ;)

Все мои сайты сидят под jAntivirus. Ежедневно происходят проверки всех сайтов на предмет новых внешних ссылок.

И вот сегодня приехал отчет о том что на одном из сайтов обнаружена новая внешняя сылка на сайт www.habitale.ru

Что за ерунда — подумал я.. вроде там Говноссылок не продаю. Пошел проверил говнобиржи и точно, не продаю. А значит это четкий сигнал к проверке.

В шаблоне WordPress пусто. WordPress обновил 5 дней назад до 4.1. Перед этим был бэкап.

Пошел и снял лог с хостера в логе увидел:

46.4.90.199 - - [04/Jan/2015:17:19:21 +0300] "POST /wp-admin/maned_UHJ.php HTTP/1.0" 200 56291 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"
46.4.90.199 - - [04/Jan/2015:17:19:41 +0300] "POST /wp-admin/maned_UHJ.php HTTP/1.0" 200 10371 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"
46.4.90.199 - - [04/Jan/2015:17:19:50 +0300] "POST /wp-admin/maned_UHJ.php HTTP/1.0" 200 53200 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"

ЧЕЗА ???

подумал снова я.

Посмотрел файлик и стало ясно, сайт взломан !

Все обфусцировано:

...
$XV7Wrn = $Imagnce($imagies[11]);
$owning = $imagies[2]($ilmaned, $unformes47);
while ($Returncing != $Imagnce($imagies[5]))
{
if ($imagies[2]($Returncing, 2) != $Imagnce($imagies[9]))
$XV7Wrn = $imagies[2]($imagies[14]($XV7Wrn, $owning), $unformes47);
$owning = $imagies[2]($imagies[14]($owning, $owning), $unformes47);
$Returncing = $imagies[8]($Returncing, 2);
}
return $XV7Wrn;
...

Рабирать код — долго и тупо, ясно что итак меня уже поимели, а куда и как — уже не узнать, ибо POST данные в логах не лежат. А по логу четко видно что меня крупно поимели и выкачали пол-интернета у меня. =)

Поискав еще я сел..

Все сайты были заражены..В случайных местах, случайные названия, разные размеры одного и того же бэкдора около 10кб. Хотя нет, я нашел еще вторую разновидность около 30кб.

Стало ясно что мне заливают что попало и запускают куда попало всякую шмаль, и осмелели настолько что стали проставлять ссылки.

Не убрав ссылку яначал вычищать хостинг сделал еще один бэкап. Но руками убрать это дело крайне утомительно да и смысла нет, в любой момент приедут снова.

Удалив самое явное, я закрыл папки wp-admin на всех блогах от всех IP, ибо эта зараза сидела именно в wp-admin у WordPress. Но бэкдор валялся не только в wp-admin, он валялся в папках с картинками, в пустых папках и других местах, так что все это опять же фуфло.

А как же грузиться ссылка в WordPress ?

Поменяв шаблон ничего не изменилось, начал с index.php и нашел заразу в той же папке wp-admin:

@include_once(‘..wp-admin/Ircalle.php’);

Вот уроды. Это 40кб какого-то дерьма, которое даже не зашифровано и вызывается при каждом запуске.

Но ссылка не исчезла, поискав /Ircalle.php на всем блоге.. нашел 3 вызова:

wp-settings.php
wp-blog-header.php
wp-includes\functions.php

Гады.. переименовав файл /Ircalle.php ссылка пропадает. Удалив вызовы из трех файлов — ссылка пропала.

Но хостинг еще не вылечен. Сигнатуры четкой нет и профилактические меры не разработаны, но уже намечены.

Раз в месяц придется сравнивать дампы хостингов на предмет подозрений, а сам jAntivirus я давно хочу переписать на Perl что и приходит пора делать.

Вот такие пироги.

Статьи из раздела, Видеочат рулетка