Сегодня мы расскажем об очень любопытном и опасном методе распространения вредоносного кода с заражённых веб-сайтов.
Впервые он был зафиксирован, когда антивирусная система Яндекса обнаружила в конце 2010 года редирект на вредоносный ресурс вида hxxp://nrho.org.in/index.
Представляющий опасность код – вредоносный редиректор – выдаётся не всегда, а только при соблюдении нескольких условий, так что получить его для анализа довольно сложно. Cудя по тому, что заражённые сайты сгруппированы по серверам и хостингам, заражение происходит на уровне хостинговой платформы. Это значит, что обычный вебмастер, контролирующий только директорию своего сайта, не может его устранить.
Домен 3-го уровня (nrho для nrho.org.in), на который происходит редирект, представляет собой случайный набор алфавитных символов и меняется не реже одного раза в день.
Редирект использует следующие GET-параметры:
- src – идентификатор источника редиректа. связан с ip-адресом сайта-жертвы (когда несколько различных сайтов используют один ip-адрес по схеме shared-хостинга src для обоих будет одинаков);
- surl – доменное имя сайта-жертвы;
- sport – используемый порт сайта-жертвы;
- suri – путь к скрипту на сайте-жертве, с которого был осуществлен редирект.
Чтобы сайт на заражённом сервере выдал данный вредоносный редирект нелегко, необходимо выполнение сразу всех приведённых ниже условий:
- Уникальный ip-адрес (редирект не сработает при повторном визите на зараженный сайт).
- Переход на зараженный ресурс со страницы поисковой выдачи.
- Браузер Internet Explorer ниже 8 версии.
- Некоторые дополнительные условия. Например, заданный или случайный временной промежуток.
Несмотря на длительное наблюдение за этим видом заражения, нам так и не удалось получить образец серверного кода, осуществляющего описанный редирект.
Мы предполагаем, что данный редирект происходит на стороне хостинг-провайдеров, о чем говорят следующие факты:
- Заражённые сайты не похожи друг на друга ни по каким техническим критериям – зараженные сайты используют различные CMS, ОС, программные компоненты веб-сервера.
- По данным, которые мы получили от веб-мастеров зараженных ресурсов, они используют самые разные реализации услуги хостинга – от арендуемых физических серверов, до shared-хостинга, в случае которого веб-мастера не имеют root-привилегий на сервере и не могут редактировать бинарные компоненты веб-сервера.
- Передача GET запросом в явном виде информации о сайте источнике, вероятно, обусловлена выполнением редиректа вне контекста конкретного веб-приложения (возможно, на одном из промежуточных серверов или интернет-шлюзе).
- Многократные попытки найти подозрительный код, или хотя бы что-либо общее, на сайтах-жертвах не увенчались успехом.
- Большинство зараженных сайтов используют услуги одних и тех же хостинг-провайдеров.
Приблизительно половина всех регистрируемых случаев описанного вредоносного редиректа происходит с сайтов, обслуживаемых одним украинским хостинг-провайдером, название которого мы не разглашаем. Заметим, что первые случаи характерного редиректа были замечены также на сайтах этого хостинга, о чем свидетельствует значение параметра src в запросах к вредоносному ресурсу.
Администраторы хостинга прислали нам бинарные сборки используемых на зараженных сайтах веб-серверов. Анализ присланных файлов не выявил присутствия постороннего кода. После этого, по заверениям представителя данной хостинг-компании, веб-серверы были обновлены из официальных репозиториев, что, однако, не помогло остановить вредоносные редиректы.
Если значение переменной src действительно отражает количество уникальных ip-адресов зараженных серверов, то было заражено по меньшей мере 174 сервера, на каждом из которых может размещаться сразу несколько различных сайтов.
Вредоносный и обратный редирект
В случае соблюдения условий, приведённых выше, сайт на заражённом хостинге выдаёт пользователю вредоносный редирект.
GET http://victim-site.ru/ HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */*
Accept-Language: ru
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
Host: victim-site.ru
Proxy-Connection: Keep-Alive
Referer: http://yandex.ru/yandsearch?text=%D0%A1%D0%BF%D0%B0%D1%81%D0%B8%D0%B1%D0%BE+%D0%B7%D0%B0+%D0%B2%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D0%B5+%D0%BA+%D0%B1%D0%BB%D0%BE%D0%B3%D1%83+%D0%AF%D0%BD%D0%B4%D0%B5%D0%BA%D1%81.%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D1%8B%D0%B9+%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%21&lr=213
HTTP/1.1 302 Found
Date: Mon, 12 Mar 2012 16:32:25 GMT
Server: Apache/2
Location: http://nrho.org.in/index.php?src=74&surl=victim-site.ru&sport=80&suri=/
Content-Length: 335
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<title>302 Found
</head>
<h1>Found
<p>The document has moved here.
<hr>
<address>Apache/2 Server at victim-site.ru Port 80
</body>
При этом, в ряде случаев происходит редирект обратно на страницу сайта-жертвы. Таким образом злоумышленник реализует технику периодического прерывания цепочки заражения. Эта техника используется для того, чтобы избежать скорой реакции антивирусного ПО и разметки сайта как заражённого в результатах поиска.
GET http://nrho.org.in/index.php?src=74&surl=victim-site.ru&sport=80&suri=/ HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */*
Accept-Language: ru
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
Host: nrho.org.in
Proxy-Connection: Keep-Alive
Referer: http://yandex.ru/yandsearch?text=%D0%A1%D0%BF%D0%B0%D1%81%D0%B8%D0%B1%D0%BE+%D0%B7%D0%B0+%D0%B2%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D0%B5+%D0%BA+%D0%B1%D0%BB%D0%BE%D0%B3%D1%83+%D0%AF%D0%BD%D0%B4%D0%B5%D0%BA%D1%81.%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D1%8B%D0%B9+%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%21&lr=213
HTTP/1.1 302 Found
Server: nginx/0.8.54
Date: Mon, 12 Mar 2012 16:40:37 GMT
Content-Type: text/html
Connection: close
Cache-Control: no-store, no-cache, must-revalidate
Expires: Mon, 12 Mar 2012 16:40:37 +0000
Location: http://victim-site.ru/
Vary: Accept-Encoding
Content-Length: 0
Цепочка заражения
В случае обратного редиректа браузер производит такую последовательность запросов:
В остальных случаях, вместо редиректа на сайт-источник, пользователю выдается html-файл, содержащий вредоносный JS-код, и последовательность имеет вид:
Рассмотрим цепочку заражения подробнее.
Шаг 1. JS-редирект (index.php)
В результате серверного редиректа браузер направляется на страницу с вредоносным JavaScript-редиректом, index.php. Этот js-код детектируется антивирусом Sophos как Troj/JSRedir-DM. Именно этот вердикт обычно видят в панели Яндекс.Вебмастера администраторы зараженных ресурсов.
JS-редирект (index.php) в обфусцированном виде:
Алгоритм деобфускации привязан к браузеру посетителя. Код генерируется таким образом, что деобфускация произойдет неверно в случае несовпадения значений navigator.userAgent и HTTP-заголовка User-Agent. В результате цепочка заражения будет прервана, что, безусловно, также призвано затруднить детектирование вредоносного кода.
JS-редирект (index.php) после деобфускации:
Шаг 2. Заражение (для Microsoft Internet Explorer 6)
JS-редирект из index.php ведёт пользователя на index2.php.
Партнерская реклама + перенаправление на эксплоит-пак index2.php:
index2.php открывает в браузере пользователя новое окно с URL hxxp://dating-portal.net/aff.php?tt=0&t=onunload и перенаправляет пользователя на эксплойт-пак index5.php.
Эксплоит-пак (index5.php):
Эксплоит-пак (index5.php) после деобфускации:
Эксплойт-пак загружает в браузер пользователя эксплойт (index6.php).
Экплоит (index6.php):
Экплоит (index6.php) после деобфускации
Шаг 3. Действия в системе пользователя
После запуска на компьютере позльзователя файл svcgost.exe (MD5 6d7b145ef5dd0ab8471500b638975727).
копирует себя в системный каталог с именем FIX_KB111952.exe.
Эта вредоносная программа обладает поведением trojan-downloader (предназначена для загрузки других вредоносных программ из удаленных источников). Тело трояна упаковано и использует противодействие динамическому анализу. Данная вредоносная программа обращается к ресурсу bober.org.in и загружает с него:
- Троянскую программу Trojan.Win32.Smardf.tbx по классификации Лаборатории Касперского, MD5 0c2c4a7cc380ffa2f17b44749a1cceff, широко известную антивирусам, работающим на virustotal.com. Данная программа регистрируется в качестве расширения (BHO) к браузеру Internet Explorer c именем fastsrch.dll. Описание похожей вредоносной программы можно найти здесь.
- Троянскую программу семейства Carberp, MD5 3d4e1acd2372b19bcd3bd3403c07f4a5, подробнее можно прочитать здесь.Основная цель этой программы – реквизиты для доступа к банковским и платежным системам. Она также вполне известна.
- Кроме того, на зараженной тестовой системе была замечена массированная рассылка почтовых спам-сообщений и сканирование компьютеров локальной сети.
В случае, если вы обнаружили на своём сайте признаки описанного заражения, рекомендуем вам сделать следующее:
- Обратитесь в поддержку Яндекс.Вебмастера за консультацией.
- Попытайтесь воспроизвести заражение в безопасных условиях ( при использовании виртуальной среды ), следуя указаниям из статьи.
- Напишите в техническую поддержку своего хостинг-провайдера с подробным описанием проблемы и ссылкой на эту статью для детального расследования инцидента.
Команда Безопасного поиска Яндекса будет крайне признательна за любую информацию об этом виде заражения. Подозрительный код, конфигурационные файлы, а также журнальные файлы присылайте на анализ по адресу virus-samples@yandex-team.ru.
Команда Безопасного Поиска