# Модульный троян для скрытого доступа к компьютеру **[cys-centrum.com/ru/news/module_trojan_for_unauthorized_access](https://cys-centrum.com/ru/news/module_trojan_for_unauthorized_access)** ## Как показывает практика, получить скрытый удаленный доступ к вашему компьютеру, заполучить пароли, записать видео или звук уже не является тяжело решаемой задачей. И в принципе, кроме персональной осведомленности в вопросах информационной безопасности, иного действенного средства не придумаешь. В данной статье предлагаем ознакомиться с базовым анализом многомодульной троянской программы и немного сблизиться с актуальными в нынешнее время техниками и средствами, используемыми злоумышленниками. Совсем недавно мы наткнулись на два интересных образца вредоносных программ. Наряду с тем, что вредоносы распространялись в виде документов MS Word с эксплойтом «на борту», их структура предполагала модульность, а степень выявления антивирусными продуктами была невысока в связи с достаточно высоким уровнем обфускации [1] за счет многоразового шифрования. Мы решили взяться за изучение этого malware, а результат изложить в этой статье. ----- Так выглядели два файла, попавшие в наше поле зрения: **Reported for TRMSCD3L Licence expired.doc** **Police report remit expired Licence.doc** Очень часто, исходя из названия, можно дедуктивно догадаться, «кем» и кому предназначен тот или иной вредоносный файл (к примеру: «Договор.doc», «Рахунок на оплату.doc» – для бухгалтеров, «Приказ НБУ №159.doc» – банкам, «Списки захопл. в зоні АТО.doc» – военным, и т.д.). В нашем случае мы можем только догадываться, так как: - слово «Licence» – написано с ошибкой; - слова «Licence expired» и «expired Licence» говорят о том, что тематика может касаться срока действия какой-то лицензии; - строка «TRMSCD3L», если поискать в Google, вообще ассоциируется со SWIFT CODE банка TRUST MERCHANT BANK SARL, находящегося в Демократической республике Конго (г. Лубумбаши). В общем, в данном случае понять трудно. Видимо, атакующий очень хорошо знал жертву, так как при именовании вредоносных файлов указал целый набор едва связных посылов. Как правило, изучение вредоносных программ осуществляется с помощью динамического (если возможно) и статического анализа. В статье опишем результаты изучения файла «Reported for TRMSCD3L Licence expired.doc». **Базовый динамический анализ** При открытии файла с помощью MS Word происходит эксплуатация уязвимости (если Вы на своем ПК не обновляли MS Word с 2012 года) и на компьютере создается файл c произвольным именем: ``` Path: C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\ FileName: yoymbgp.exe Md5: 11b6a2ea17d18c09cc274731f05e89b5 ``` Помимо этого, с целью обеспечения выживаемости, файл добавляется в автозагрузку (рис. 1), для чего в реестр вносятся соответствующие изменения (имя значения также является произвольным): ``` RegKey Data: C:\Users\%USERNAME% \AppData\Local\Microsoft\Windows\ yoymbgp.exe RegKey Data Type: REG_SZ RegKey Value Name: atk17n5rAA RegKey Name: HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run ``` ----- Рис. 1 Хоть это и примитивно, но мы советуем посматривать в автозагрузку вашего ПК и не допускать присутствия там неведомых вам программ. Чтобы проверить автозагрузку можно воспользоваться как штатным функционалом вашей операционной системы (в командной строке: regedit, msconfig), так и сторонним программным обеспечением. На следующем этапе вредоносная программа запускает легитимные процессы svchost.exe и внедряет в них вредоносный код, с целью его последующей расшифровки. Эта процедура повторяется несколько раз (вначале статьи мы упоминали о многоразовом шифровании). Также, на этом этапе осуществляется взаимодействие между зараженным компьютером и сервером управления, откуда вредонос скачивает модули. Пример такого сетевого взаимодействия: ``` HTTP GET-запросы: hxxp:// 95.211.204.14:80/m/228131.zip hxxp:// 95.211.204.14:80/m/721118.zip hxxp:// 95.211.204.14:80/m/958232.zip hxxp:// 95.211.204.14:80/m/855787.zip hxxp:// 95.211.204.14:80/m/5594516.zip HTTP POST-запросы: hxxp://95.211.204.14:443/$rdgate?ACTION=HELLO hxxp://95.211.204.14:443/$rdgate?ACTION=START&ID=877A74B0199241848C931A962ADC55EB hxxp://95.211.204.14:80/test.php hxxp://95.211.204.14:80/f9S52tseWPcDGvbEY+EbYJ4RhUnZm=AUM9a6oYAcOAV1yFsXJvsCWAbvctbESC ``` **Статический анализ** ----- Данный образец вредоносной программы был изрядно запакован – прежде чем приступить к его детальному изучению нам пришлось снять три «слоя» обфускации: ``` [binary_layer1.exe][6197736aec27686efb6f63e75cac0a6d] [binary_layer2.exe][6c7441ec1b630fd299d8196367aefeea] [binary_layer3.exe][9347cb20a1ec90c61e1ff8ded379fc81] ``` Последующее изучение проводилось в отношении распакованного образца «binary_layer3.exe». При запуске вредоносной программы первым делом она осуществляет проверку на предмет наличия на зараженном ПК необходимых модулей («check_payload_plugin»), и, при отсутствии, инициирует их скачивание с сети Интернет. Специально для скачивания создается отдельный поток по адресу 0x00419A60 (мы его назвали «create_thread_3»). Рис. 2 Условием выполнение потока 2 («create_thread_2») является наличие в реестре скачанных и записанных в реестр модулей вредоносной программы (рис. 3-4): ``` RagKey Name: HKCU\Software\Google\Update\network\secure ``` ----- Рис. 3 Рис. 4 Пример состояния реестра после скачивания необходимых модулей приведен на рис. 5. Все скачанные модули хранятся в реестре в зашифрованном виде. Имена ключей в реестре также являются произвольными. Рис. 5 Некоторые артефакты сетевого взаимодействия зараженного ПК и сервера управления (IP-адрес сервера управления, а также URL, используемый для отправки HTTPзапроса): ----- Рис. 6 Рассмотрим более детально последовательность действий, выполняемых потоком 2, так как именно он играет ключевую роль в расшифровке вредоносных модулей. Потоком 2 последовательно осуществляется составление списка модулей (рис. 7), расшифровка и проверка их имен (рис. 8). Ключ для расшифровки каждого модуля уникален и является изменяемым значением (рис. 9). Рис. 7 ----- Рис. 8 Рис. 9 После успешной расшифровки данных, записанных под непонятными именами в реестр, получаем читаемый и говорящий сам за себя список модулей. **Bot_Engine.bin** **PONY_STEALER.bin** **REMOTE_DESKTOP_SERVICE.bin** **SECURITY.bin** **VNC_HIDE_DESKTOP.bin** Алгоритм расшифровки модулей может быть описан таким псевдокодом: _Переменные:_ ``` enc_byte зашифрованный байт dec_byte расшифрованный байт HIBYTE извлекает старший байт из данного 16-разрядного значения LOBYTE извлекает младший байт из данного 16-разрядного значения HIWORD извлекает старшое слово из данного 32-разрядного значения LOWORD извлекает младшее слово из данного 32-разрядного значения _DWORD двойное слово (4 байта) _WORD слово (2 байта) key ключ, состоящий из 6 байт size размер зашифрованного массива ``` _Псевдокод:_ ----- ``` v0 : (_DWORD ) key; v1 := *(_WORD*) (key + 4); for (i := 0; i < size; i++) { dec_byte := enc_byte ^ HIBYTE(v1); v1 := HIWORD(v0) + LOWORD(v0) * (uint8)(LOBYTE(v1) + dec_byte); ++enc_byte; ++dec_byte; --size; } ``` Рассмотрим полученные модули по порядку. **Bot_Engine.bin** Этот модуль должен быть запущен под названием svchost.exe или explorer.exe, иначе он заблаговременно закончит свое исполнение. Пример проверки имени процесса представлен на рис. 10. Рис. 10-1 Рис. 10-2 Основным предназначением модуля является запуск других модулей. Пример создания потоков для других модулей отображен на рис. 11. ----- Рис. 11 **PONY_STEALER.bin** Этот модуль представляет собою не что иное, как одноименную вредоносную программу Pony, функционал которой предусматривает хищение логинов, паролей, кошельков криптовалют. На момент исследования административная панель сервера управления Pony находилась по адресу: http://95.211.204.14/test.php **REMOTE_DESKTOP_SERVICE.bin** Модуль, обеспечивающий скрытый удаленный доступ к компьютеру жертвы посредством протокола RDP и создания обратного соединения (back-connect). Адрес для обратного соединения: 95.211.204.14:443 **SECURITY.bin** Данный модуль обеспечивал проверку фактов присутствия на компьютере антивирусного программного обеспечения и других, обеспечивающих безопасность компьютера, программ (рис. 12). ----- Рис. 12 **VNC_HIDE_DESKTOP.bin** Модуль, обеспечивающий скрытый удаленный доступ к компьютеру жертвы посредством протокола VNC и создания обратного соединения (back-connect). Адрес для обратного соединения: 95.211.204.14:8098 Вместо заключения. Данная статья создавалась с целью демонстрации, на примере актуальных атак, возможностей, тактик и техник заинтересованных лиц по получению скрытого доступа к компьютеру исследуемого объекта, а также для повышения уровня всеобщей осведомленности в вопросах информационной безопасности. Рассмотренная в статье атака была зафиксирована в первой декаде октября, исходя из чего, мы допускаем, что актуальность приведенных индикаторов компрометации (IPадреса, в частности) может быть под вопросом. Следует отметить, что согласно данным Passive DNS (грубо говоря – истории соответствия доменных имен и IP-адресов) в первом квартале 2014 года IP-адрес 95.211.204.14 соответствовал доменному имени severodvinsk-bux.ru, которое принадлежит веб-сайту, специализирующемуся на рекламе. Это может означать ровным счетом ничего (так как прошло больше года, да и сайт сей меняет «айпишники» как перчатки), но, для полноты картины, мы добавили эту частичку информации. **Отдел реагирования на инциденты CyS Centrum** Использованные материалы: [1] https://ru.wikipedia.org/wiki/Обфускация ----- © ООО "САЙБЕР СЕКЬЮРИТИ ЦЕНТРУМ", 2015 - 2021 Создано компанией [CyS Centrum](https://cys-centrum.com/) -----