22:06 Trojan.Win32.Miner.h: чем опасны P2P- сети | |
Нередко обнаружение ботнета становится нелегкой
задачей, особенно если запутаться в различных компонентах, таких как
дропперы, инфекторы и прочие неприятные вещи. Около двух недель назад
Хосе Назарио из Arbor Networks обратил внимание аналитиков "Лаборатории
Касперского" на новый образец зловреда, который к тому же оказалсяся еще
одним P2P-ботом. После исполнения программа устанавливает большое
количество всякой всячины, в том числе
Однако,
пока оставим этот вопрос в стороне и поговорим об архитектуре
ботнета, который на самом деле является всего лишь каналом для доставки
другого вредоносного программного обеспечения на зараженные машины.
Покопавшись в
установленных программах, эксперты наконец нашли сам бот, который
детектируется как Trojan.Win32.Miner.h. Файл защищен от анализа с
помощью
нескольких слоев обфускации, но в конце концов записывает исполняемый
файл, сжатый упаковщиком UPX, в секцию памяти, откуда может быть
восстановлен оригинальный код. Помимо прочего, сразу же привлекает внимание список из 1953 строк
IP-адресов, прописанных непосредственно в коде зловреда. Бот обращается к
этим адресам на стадии загрузки для присоединения к пиринговой сети.
Для проверки, является ли удаленный хост на самом деле частью ботнета, он сначала тестируется на порте 62999/tcp. После этого вся последующая коммуникация с этим хостом происходит через HTTP-соединения на порте 8080/tcp. Если бот пытается получить информацию от ботнета, он посылает GET-запрос на URL /search=[resource] другому пиру (ниже выделен красным цветом). Ответ (выделен синим) содержит требуемые данные. В примере, приведенном ниже, бот спрашивает, существует ли файл с названием ip_list_2. Connection: close Host: 67.230.63.171 HTTP/1.1 200 OK Server: nginx Date: Thu, 28 Jul 2011 1:46:30 PM GMT Content-Type: application/octet-stream Content-Length: 36 Last-Modified: Thu, 28 Jul 2011 1:46:30 PM GMT Connection: close Expires: Thu, 28 Jul 2011 1:46:30 PM GMT Cache-Control: no-cache Accept-Ranges: bytes 0|8E2105CC235624452CF4CA5ED5880636 Удаленный пир подтверждает существование файла, отослав обратно MD5 хэш-код содержимого. Несуществующий файл или другой недействительный запрос был бы показан как null. Для загрузки искомого файла в запросе оставлен суффикс .txt: Connection: close Host: 67.230.63.171 HTTP/1.1 200 OK Server: nginx Date: Thu, 28 Jul 2011 1:46:32 PM GMT Content-Type: application/octet-stream Content-Length: 11107 Last-Modified: Thu, 28 Jul 2011 1:46:32 PM GMT Connection: close Expires: Thu, 28 Jul 2011 1:46:32 PM GMT Cache-Control: no-cache Accept-Ranges: bytes 86.121.101.197 194.44.169.112 77.123.56.166 65.75.122.227 79.115.121.40 89.208.252.138 213.135.179.130 31.43.66.129 67.230.65.87 94.76.96.80 ... Ответ содержит список IP-адресов, принадлежащих другим пирам ботнета. Этой информации достаточно, чтобы рекуррентно опросить пиринговую сеть и узнать IP-адреса ее пиров, или, по крайней мере, той ее части, которая использует публичные IP-адреса. Мы исследовали часть сети и записали полученные IP-адреса. На графической схеме видна сеть с ярко выраженными внутренними связями. Через несколько секунд мы остановили наш алгоритм: при дальнейшей его работе схема стала бы слишком большой, и ее визуализация заняла бы слишком много времени. В результате некоторые узлы на схеме подсоединяются к «тупикам» — пирам, которые далее никуда не ведут. resulted in 9.141 hosts for ip_list and 28.675 hosts for ip_list_2 with only 57 hosts being present in both lists — a total of almost 38.000 different public IP addresses. Есть три отдельных списка хостов: ip_list, ip_list_2 и ip_list_3, однако во время тестов последний всегда был пуст. Те запуски алгоритма, в которых эксперты исследовали сети, соответствующие первым двум спискам, заняли семь часов. В результате экспертам удалось получить 9141 хостов для ip_list и 28675 хостов для ip_list_2, и только 57 хостов присутствовали в обоих списках — в общей сложности это почти 38.000 различных публичных IP-адресов. Учитывая, что сейчас большинство машин находятся за файерволами или шлюзами, реальное количество зараженных машин может быть на порядки выше. Бот может получить свой IP-адрес, используемый для общения в интернете, через /search=get_my_ip и проверить, можно ли к нему обратиться извне с помощью /search=listen_test. Еще один интересный момент – запрос /search=soft_list, возвращающий список исполняемых файлов: Connection: close Host: 91.124.141.114 HTTP/1.1 200 OK Server: nginx Date: Thu, 28 Jul 2011 21:54:04 GMT Content-Type: application/octet-stream Content-Length: 1235 Last-Modified: Thu, 28 Jul 2011 21:54:04 GMT Connection: close Expires: Thu, 28 Jul 2011 21:54:04 GMT Cache-Control: no-cache Accept-Ranges: bytes 1881|37055143655159895100072920[...]056290908384488867|iecheck12.exe|8|1 1864|74659789337208584676889842[...]363065321014216383|client_8.exe|24|0 1861|50130190106950587675951378[...]854716588011099242|w_distrib.exe|6|0 1859|17628191893358990544434624[...]934535221101899258|btc_server.exe|22|0 1855|70418953044346961647340893[...]411084368838550531|loader2.exe|2|0 1816|63902848972275419049312273[...]804891227296793639|loader_rezerv.exe|3|0 1714|71450190375046068004318922[...]621691365929209616|gbot_loader.exe|27|0 873|450976523626203858415918223[...]004413953350864628|resetsr.exe|14|0 Этот список содержит несколько файлов, которые бот загружает из пиринговой сети и запускает. Он также запрашивает их, посылая имя файла как параметр для запроса /search= request. У каждого файла есть уникальный идентификационное номер – число перед первым тире. Числовая строка в следующем поле была сокращена в примере выше для более удобного прочтения. Ее назначение еще неизвестно. Похоже, что у более новых файлов более высокие числа ID. К примеру, файлы client_3.exe, client_4.exe, client_6.exe и client_7.exe, которые отсутствуют в списке ПО, однако все же могут загружаться, имеют увеличивающиеся идентификационные номера:
Проверить, рассылается ли новое ПО по ботнету, несложно: нужно всего
лишь загрузить список ПО и найти новые идентификационные номера. Мы
продолжим мониторинг и будем добавлять сигнатуры для новых зловредов в
наше детектирование сразу же после их появления.
| |
|
Всего комментариев: 0 | |