DarkUniverse – загадочный APT-фреймворк #27

В апреле 2017 года хакерская группировка ShadowBrokers опубликовала свою пятую утечку «Lost in translation», которая, среди прочего, содержала интересный скрипт, проверяющий наличие следов других APT в скомпрометированной системе.

В 2018 году аналитики «Лаборатории Касперского» обнаружили APT, описанную 27-й функцией этого скрипта. Мы назвали эту APT «DarkUniverse», она была активна по крайней мере 8 лет — с 2009 по 2017 годы. Из-за наличия в ее коде уникальных пересечений мы со средней степенью достоверности можем говорить о том, что DarkUniverse является частью активности ItaDuke (эта APT и стоящая за ней хакерская группа известны с 2013 года; в ее атаках использовались PDF с эксплойтами для доставки зловредов и учетные записи Twitter для хранения адресов C2-серверов).

Технические детали

Вектор заражения

Для распространения DarkUniverse использовались фишинговые сообщения. Для каждой жертвы письмо специально подготавливалось так, чтобы привлечь ее внимание и побудить открыть вложенный документ Microsoft Office, содержащий зловред.

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

Встроенный в документы исполняемый файл извлекал из себя два вредоносных файла, updater.mod и glue30.dll и сохранял их в каталоге %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Reorder. После этого он копировал легальное приложение rundll32.exe в ту же папку и использовал его для старта библиотеки updater.mod.

Модуль updater.mod

Этот модуль реализован в виде динамической библиотеки с единственной экспортируемой функцией callme@16. Он отвечает за обеспечение связи с сервером C&C, реализацию механизмов закрепления и обеспечения целостности зловреда, а также за управление остальными вредоносными модулями.

Для закрепления в системе updater.mod размещает символьную ссылку в папке автозагрузки, что обеспечивает запуск вредоносной активности после перезагрузки. Если ссылка повреждается, updater.mod восстанавливает ее.

Взаимодействие с C&C

В данной кампании C&C-серверы кампании были в основном расположены в облачном хранилище на mydrive.ch. Для каждой жертвы операторы создавали там новую учетную запись, после чего загружали дополнительные вредоносные модули и файл конфигурации с командами для исполнения. Как только updater.mod запускался, он подключался к C&C и выполнял следующие действия:

  • скачивал конфигурационный файл с командами в свою рабочую директорию;
  • загружал файлы, собранные и подготовленные другими вредоносными модулями (при наличии) на управляющий сервер. Собранные файлы располагались в подпапке с названием ‘queue’ или ‘ntfsrecover’ в рабочей директории. Файлы в этой подпапке могли иметь одно из двух расширений – .d или .upd – в зависимости от того, были ли они уже загружены на сервер или нет.
  • скачивал дополнительные вредоносные модули:
    • dfrgntfs5.sqt – модуль для исполнения команд, поступающих с C&C;
    • msvcrt58.sqt – модуль для сбора учетных записей жертв и электронных писем;
    • zl4vq.sqt – легальная библиотека zlib, используемая модулем dfrgntfs5.sqt;
    • %victim_ID%.upe – опциональный плагин для dfrgntfs5.sqt. К сожалению, нам не удалось получить этот файл.

Все вредоносные модули были зашифрованы самописным алгоритмом:

Данные для авторизации на C&C помещались в настройки, сохраненные в реестре, но модуль updater.mod также содержал в себе копию в виде зашифрованной строки. Также настройками определялось, как часто updater.mod обращается к серверу C&C: поддерживались как активный, так и частично активный режимы.

Сохраненные в реестре настройки вредоносного ПО

Настройки вредоносного ПО сохранялись в реестре в ключе SOFTWARE\AppDataLow\GUI\LegacyP. Различные возможные значения настроек приведены в следующей таблице:

Имя Описание
C1 Домен C&C.
C2 Путь на сервере C&C.
C3 Имя учетной записи C&C.
C4 Пароль учетной записи C&C.
install Если зловред установлен, принимает значение 1.
TL1 DESACTIVAR | HABILITAR – определяет, активны ли модули msvcrt58 и glue.
TL2, TL3 Если значение TL1 отлично от NULL, определяют временные рамки, в которых применяется опция TL1.
«kl» Принимает значение 1, если модулю updater.mod требуется заново скачать модуль msvcrt58.sqt с C&C.
«re» Принимает значение 1, если модулю updater.mod требуется заново скачать модуль dfrgntfs5.sqt с C&C.
«de» Если значение отлично от 0, фреймворк должен удалить все свои компоненты из системы.
«cafe» REDBULL | SLOWCOW определяет, как часто updater.mod обращается к C&C.
«path» Путь к папке, из которой файлы отсылаются на C&C.

 

Модули glue30.dll и msvcrt58.sqt

Модуль glue30.dll представляет собой кейлоггер. С помощью WinAPI функции SetWindowsHookExW модуль updater.mod устанавливает клавиатурные хуки, после чего внедряет glue30.dll в процессы, получающие ввод с клавиатуры. После этого glue30.dll загружается и начинает перехватывать ввод в контексте каждого подключенного процесса.

Модуль msvcrt58.sqt перехватывает незашифрованный POP3-трафик для сбора учетных записей жертв и электронных писем. Этот модуль отслеживает трафик следующих процессов:

  • outlook.exe;
  • winmail.exe;
  • msimn.exe;
  • nlnotes.exe;
  • eudora.exe;
  • thunderbird.exe;
  • thunde~1.exe;
  • msmsgs.exe;
  • msnmsgr.exe.

Зловред разбирает перехваченный трафик и отправляет результат в основной модуль (updater.mod) для отправки на C&C. Перехват осуществляется с помощью установки хуков в следующих сетевых функциях WinAPI:

  • ws2_32.connect;
  • ws2_32.send;
  • ws2_32.recv;
  • ws2_32.WSARecv;
  • ws2_32.closesocket.

 

Модуль dfrgntfs5.sqt

Модуль dfrgntfs5.sqt представляет собой наиболее функциональный компонент фреймворка Dark Universe. Он отвечает за обработку длинного списка команд, приведенного в следующей таблице:

Команда Описание
VER Отправить на сервер версию вредоносного ПО.
DESINSTALAR Удалить фреймворк из системы.
PANTALLA Сделать снимок экрана и сохранить его в папке \queue.
CAN_TCP, CAN_HTTP, CAN_HTTPS Внедрить в Internet Explorer шеллкод, который устанавливает прямое соединение с C&C, скачивает дополнительный код, посылает информацию о результатах скачивания обратно на сервер и исполняет скачанный код.
MET_TCP, MET_HTTPS Также внедрить shell-код в IE. Единственное отличие от предыдущей команды состоит в том, что в данном случае shell-код не отправляет никакой дополнительной информации на сервер, он только устанавливает подключение, скачивает дополнительный код и исполняет его.
CAN_HTTP_LSASS Выполнить те же действия, что и в случае команды CAN_HTTP, но внедрение происходит в процесс LSASS.exe.
SCAN/STOPSCAN Начать/остановить сканирование сети. В процессе сканирования происходит сбор массы различной информации о локальной сети.
CREDSCAN Попытаться подключиться ко всем подряд хостам в локальной сети с определенными учетными данными.
ACTUALIZAR Обновить dfrgntfs5.sqt.
ACTUALIZARK Обновить msvcrt58.sqt.
SYSINFO Собрать полную информацию о системе.
REDBULL Установить значение 1 для флага «cafe» в реестре – активный режим.
SLOWCOW Установить значение 0 для флага «cafe» в реестре – медленный режим.
X Выполнить указанный процесс и собрать его вывод. Затем подготовить лог вывода к загрузке на C&C.
T Получить список файлов для определенной директории.
TAUTH Получить список файлов на удаленном сервере в случае, если учетные данные подходят.
G Отправить файл на C&C.
GAUTH Скачать указанный файл с общего ресурса в случае, если учетные данные подходят.
SPLIT Разбить файл на части по 400 KB и залить их на C&C.
FLUSH Отослать на C&C файл с данными, собранными всеми компонентами за целый день, после чего удалить этот файл.
C1 — C4 Обновить данные о конфигурации C&C в реестре (C1-C4).
TL1 — TL3 Обновить настройки активности модулей в реестре (T1-T3).
ONSTART Установить модуль, стартующий при каждом запуске.
CLEARONSTART Отменить предыдущую команду ONSTART.
ARP Запустить ARP-модуль (uncparse.dll – не удалось получить этот файл), который сохраняет данные в файле с именем arpSniff.pcap.
AUTO Автоматически проверять обновления определенных файлов.
MANUAL Осуществить в определенных директориях поиск файлов по маске *.upd, удалить все найденные файлы.
REGDUMP Собрать определенную информацию из реестра.
PWDDUMP Собрать и расшифровать учетные данные из Outlook Express, Outlook, Internet Explorer, Windows Mail и Windows Live Mail, Windows Live Messenger, а также из кэша Internet Cache;
LOGHASH Внедриться в процесс lsass.exe и начать процесс сбора и сохранения найденных хэшей паролей в файл checksums.bk.
SENDLOGHASH Отправить собранные с помощью предыдущей команды хэши на C&C.
PROXYINFO Проверить валидность учетных данных для прокси.
DHCP Установить локальные настройки DHCP.
DNS Установить локальные настройки DNS.
FAKESSL Начать перехват зашифрованного трафика (базовая функциональность MITM).

 

Найденные жертвы

Мы обнаружили около 20 жертв, расположенных в Сирии, Иране, Афганистане, Танзании, Эфиопии, Судане, России, Республике Беларусь и ОАЭ. Среди жертв были как гражданские, так и военные организации. Мы считаем, что число жертв в течение основного периода активности данной APT между 2009 и 2017 годами было намного больше.

Выводы

DarkUniverse представляет собой интересный пример полноценного фреймворка, используемого по крайней мере на протяжении восьми лет. Зловред содержит все необходимые модули для сбора всей возможной информации о пользователе и зараженной системе и, похоже, разработан полностью с нуля. Из-за уникальных пересечений в коде мы предполагаем со средней достоверностью, что создатели DarkUniverse’а были связаны с активностью ItaDuke. Злоумышленники были изобретательны и продолжали обновлять свои вредоносные программы в течение всего жизненного цикла своих операций, поэтому исследованные образцы 2017 года совершенно не похожи на первоначальные образцы 2009 года. Приостановка данной активности может быть связана с публикацией утечки «Lost in translation» или, возможно, злоумышленники просто решили перейти на более современные подходы и начать использовать более широко доступные артефакты для своих операций.

Приложение 1 – Индикаторы заражения

Хэши модулей

  • 1addee050504ba999eb9f9b1ee5b9f04
  • 4b71ec0b2d23204e560481f138833371
  • 4e24b26d76a37e493bb35b1a8c8be0f6
  • 405ef35506dc864301fada6f5f1d0711
  • 764a4582a02cc54eb1d5460d723ae3a5
  • c2edda7e766553a04b87f2816a83f563
  • 71d36436fe26fe570b876ad3441ea73c

Дополнительная информация о DarkUniverse, а также полный набор индикаторов заражения и YARA-правил предоставляется клиентам сервиса Kaspersky Intelligence Reporting по запросу на intelreports@kaspersky.com.

Публикации на схожие темы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *