пятница, 21 ноября 2008 г.

Siberia2

Имя файла попавшего ко мне 0001.exe, размером 22,5 Кб.
Virustotal выдал следующие:
http://www.virustotal.com/ru/analisis/0c5e24a5385b0d9c32c860e75ab9cefc
AVG -- Agent.AEXC
DrWeb -- BackDoor.Bulknet.237
Kaspersky -- Trojan.Win32.Pakes.kya
Microsoft -- TrojanDropper:Win32/Cutwail.AL
Symantec -- Trojan.Pandex
При ближайшем рассмотрении выявился первый слой, а именно – простенький “криптор” основанный на xor, далее выполнение передается на код, который предваряет надпись Caliban (вероятно название навесного “криптора”):

После как обычно идет поиск базы Kernal.dll с последующем поиском нужных API функций по заложенным хешам, операция уже ставшая стандартом. В данном случае выбираются функции для работы с кучей, затем с их помощью выделяется память и из тела программы расшифровывается основная программа, настраивается импорт и далее переход на точку входа этой программы.
В этом месте появляются интересные данные, а именно оставленная метка автора (авторов):
d:\programs\siberia2\umloader\objfre_wxp_x86\i386\UMLoader.pdb

Программа копирует себя в системную папку (System32) под именем rs32net.exe и банально прописывает свой автозапуск в реестре 'Software\Microsoft\Windows\CurrentVersion\Run' затем новый файл запускается на выполнение, а этот экземпляр удаляется.
Во вновь запущенном процессе идет проверка не установлен ли уже драйвер, а именно проверяется можно ли открыть устройство “\\.\Prot3”. Если драйвера нет, запускается новый поток, который занимается тем что, запускает достоверный процесс svchost.exe с помощью функции NtCreateProcess с флагом SUSPENDED. С помощью функций NtWriteVirtualMemory и WriteProcessMemory в процесс копируется из тела программы очередная программа (28 Кб) и затем в новом потоке запускается на исполнение.
Здесь опять появляется метки автора:
d:\programs\siberia2\loader\objfre_wxp_x86\i386\Loader.pdb

Как не трудно догадаться запущенная с помощью процесса зомби программа является лоадером, она пытается скачать из Интернета (195.2.253.199 madet.net) очередную свою часть, а именно драйвер, с помощью которого и регистрируется устройство "\\.\Prot3".
Теперь собственно самое интересное - драйвер, все экземпляры, которые попадали ко мне, имели имя вида Mrw05.sys (первые три буквы далее 2 цифры). Размер 31,5 Кб. Результаты Virustotal:
http://www.virustotal.com/ru/analisis/77a4c4225eb4fd1defb21ebcc3358cd7
AVG -- Rootkit-Agent.AV
DrWeb -- BackDoor.Bulknet.232
Kaspersky -- Rootkit.Win32.Agent.cmo
NOD32 -- Win32/Wigon.ER
Symantec -- Trojan.Pandex
Первый слой, как и ранее, расшифровывает основную часть драйвера.
Там, как и полагается, есть очередная метка авторства:
d:\programs\siberia2\innerdrv\objfre_wxp_x86\i386\InnerDrv.pdb

Драйвер прописывает себя в автозапуск во всех возможных вариантах загрузки. Кроме того, драйвер хитрым способом защищает себя от удаления. Регистрирует прием уведомлений о загрузки новых процессов с помощью PsSetCreateProcessNotifyRoutine, с помощью этой ловушки руткит следит за загрузкой процессов и копирует модуль, расшифрованный из своего тела.
Как ни странно, но это очередной загрузчик, но размер этого всего 10,5 Кб:
d:\programs\siberia2\loader\objfre_wxp_x86\i386\Loader.pdb

В итоге на машине жертвы установлен бот стучащий на адрес
195.2.253.199
скачивающий и запускающий файлы под прикрытием процесса svchost.exe. Все это безобразие прикрывает драйвер следящий и восстанавливающий бота в случаи удаления. В свою очередь имя драйвера меняется при каждой загрузке, загрузка драйвера происходит при любом варианте загрузки ОС, файл драйвера не удалить обычными методами.

2008, GMax
e_gmax@mail.ru

3 комментария:

AirWorm комментирует...

Хорошо проделанная работа, но как все же удалить эту заразу с машины?

SLESH комментирует...

очень полезный блок.
Сам когда-то занимался подобными вещами. И также попадался этот бот, в частности понравилась защита драйвера и механизм обнаружения адреса загрузку ядра.

Хочу сделать поправочку:
d:\programs\siberia2\loader\objfre_wxp_x86\i386\Loader.pdb
это не авторская отметка. Это путь к отладочной информации. Он сохраняется потому что прога/драйвер линковались с включенной опцией отладки.

GMax комментирует...

Про отладочную информацию я в курсе.
Просто немного странно, что при достаточно высоком уровне руткита автор оставил отладочную информацию в релиз версии бота. Как мне кажется автор хотел что бы бот имел "правильное" название, а это можно назвать меткой автора.