
Всем привет!
Меня зовут Гузель Хисматуллина, я руководитель группы аналитиков в Центре противодействия киберугрозам Innostage CyberART и глобального SOC на кибербитве Standoff.
В мае этого года наша команда судила 11-й Standoff, на котором этичные хакеры продемонстрировали свои навыки и буквально не давали выдохнуть командам защитников и организаторам кибербитвы. На этой битве красные, наконец-то, пробили промышленную инфраструктуру, а также реализовали несколько атак в банковском сегменте. Противостояние выдалось очень насыщенным и интересным.
В этой статье на примере одной из атак на сталелитейный завод «МеталлиКО» я поделюсь некоторыми инструментами команд атакующих и защитников. Статья будет полезна для начинающих специалистов по обе стороны баррикад. Видеоверсию данного разбора можно посмотреть тут (спасибо моим коллегам – Борисову Александру и Малышеву Михаилу – за помощь в подготовке материала).
Что было в мае
Прежде чем приступить к разбору атаки, кратко пройдусь по результатам Standoff 11.
В отличие от ноябрьской кибербитвы 2022 года, о которой я рассказывала здесь, к шести отраслям экономики добавилась еще одна – атомная промышленность с АЭС и заводом по обогащению урана. К слову, она сразу вошла в четверку популярных среди красных команд целей для атак.
Помимо этого, в инфраструктуре появились новые сервисы для клиники пластической хирургии, онлайн-школы английского языка, управления сервером платежей и др. Соответственно появились и новые сценарии атак и недопустимые события (НС).
Стоит отметить количество и качество команд этичных хакеров на майском Standoff, которые смогли реализовать 204 успешные атаки всего за четыре дня.

Наша команда судей просто тонула в отчетах от команд участников. Бывало, что процесс настолько затягивал и не отпускал, что мы проверяли отчеты до трех часов ночи, а утром снова возвращались к ним. Тут хочу сказать большое спасибо нашей команде Innostage CyberART, которая не сдавалась и сохраняла оптимизм на протяжении всей битвы.
Разбор атаки
Отрасль: металлургия
Задание: остановить работу машины непрерывного литья заготовок (МНЛЗ)
Примечание. Напомню, что все средства защиты на полигоне и даже сами защитники работали в режиме обнаружения, без активного блокирования атак.
1. Подготовка ресурсов & Первоначальный доступ (Resource Development & Initial Access)
T1587.001. Develop Capabilities: Malware, T1566.001. Phishing: Spearphishing Attachment
1.1. Действия атакующих
Атакующие направили фишинговое письмо с адреса dsharp@apps.stf на адреса HR-пользователей K_Workman@metall.stf и J_May@metall.stf, полученных с сайта-визитки landing.metall.stf (10.126.13.134). PT Sandbox в письме обнаружил несколько вредоносных вложений в письме, но документ, с которого все началось – Book2.xls:
Поведенческий анализ показал нам, что при открытии вложения порождается процесс powershell.exe с закодированной командой для запуска, а также предоставил вердикты:
Открытие письма с вложенным файлом Book2.xls, содержащим в себе вредоносный макрос, привело к загрузке инструментария Cobalt Strike 2.exe с командного центра атакующих 35.207.107[.]211:80 на доменном хосте HR-пользователя K_Workman: kworkman.metall.stf (10.156.33.137). Это можно увидеть по логам ОС, собираемых в MaxPatrol SIEM:
1.2. Инструменты атакующих
Для того, чтобы сгенерировать полезную нагрузку, команды атакующих использовали готовые инструменты с GitHub, применяли MSFVenom, а кто-то использовал Cobalt Strike для генерации зловредных макросов и дальнейшего использования в инфраструктуре.
Примеры инструментов:
-
Macro Reverse Shell (https://github.com/glowbase/macro_reverse_shell)
-
Reverse Shell Generator (https://www.revshells.com)
-
MSFVenom
-
Cobalt Strike
1.3. Методы обнаружения
Успешный фишинг на хосте можно обнаружить путем отслеживания запуска процессов (н-р, интерактивных интерпретаторов) от пакета Microsoft Office (winword.exe, excel.exe, powerpnt.exe, visio.exe, mspub.exe, eqnedt32.exe, outlook.exe, fltldr.exe, msaccess.exe).
2. Выполнение (Execution)
T1059.001. Command and Scripting Interpreter: PowerShell, T1204.002. User Execution: Malicious File
2.1. Действия атакующих
Процессом 2.exe, в свою очередь, на хост HR загружаются команды с С2-сервера p3mtl.b0t[.]me (167.99.138[.]88).
Дерево порождаемых процессов после открытия Book2.xls:
SiemMonkey – плагин к браузеру Google Chrome для эффективной работы с MaxPatrol SIEM от коллег из Экспертного центра безопасности Positive Technologies (PT ESC).
Запуск закодированной в Base64 команды через PowerShell, порожденный XLS-документом:
Запрос на создание сокета для установки соединения с C2-сервером (обратное соединение), обнаруженный после декодинга команды:
Факт запуска команды на создание сокета, выявленный правилом Dangerous_Command_Usage:
Загрузка бэкдора с C2-сервера и сохранение его локально под именем 2.exe:
Трансфер этого файла зафиксировал PT Network Attack Discovery (PT NAD), а сам файл благодаря интеграции с PT Sandbox был проанализирован в песочнице методом поведенческого анализа.
Процессом 2.exe, в свою очередь, загружаются дополнительные файлы с C2-сервера, а именно, файл aaa. Ниже на скрине в правой части можно увидеть, как сработал механизм обогащения событий цепочкой процессов в MaxPatrol SIEM, а в левой – загрузку файла через PowerShell:
Сессия, в которой происходит загрузка файла, PT NAD детектирует как шелл CobaltStrike:
Файл содержит PowerShell-команду с вызовом класса MemoryStream, который декодирует переданный в Base64-код и выполнит его непосредственно в памяти ОС:
В ОС видно выполнение обфусцированного PowerShell-кода:
В результате выполнения загружаются дополнительные инструменты, которые сохраняются локально в папку c:\zabbix\:
2.2. Методы обнаружения
На данном этапе можно отслеживать:
-
обфусцированные PowerShell-коды (Base64, ASCII, BXOR, Escape, Concat, Reverse и др.). Некоторые инструменты, которые используются для генерации полезной нагрузки, имеют обфускацию «под капотом», поэтому варианты обфусцированного кода на Standoff встречались (чаще всего в Base64);
-
использование потенциально опасных классов (н-р, MemoryStream может являться признаком бесфайловой атаки) или архивированных потоков данных внутри кода PowerShell.
3. Повышение привилегий (Privilege Escalation)
T1134.002. Access Token Manipulation: Create Process with Token
3.1. Действия атакующих
Повышение привилегий до привилегий УЗ system через эксплуатацию уязвимости в ОС Windows, связанной с привилегией SEImpersonatePrivilege («Олицетворение клиента после проверки подлинности»), имеющейся у HR-пользователя K_Workman (c:\users\public\documents\printspoofer.exe – загруженный на хост эксплойт PrintSpoofer): PrintSpoofer.exe -i -c cmd.exe.
Проверка привилегий на хосте с помощью команды whoami:
3.2. Инструменты атакующих

Атакующие часто использовали «картошку» для повышения привилегий. История Potato насчитывает уже несколько лет, и каждый год появляется несколько связанных уязвимостей. PrintSpoofer с Potato связан мало, но любая локальная уязвимость, которая использует его, так или иначе имеет отношение к «картошкам». И не важно, с чем работала использованная Potato, она в любом случае повышала привилегии до системы.
-
2016 год. Hot Potato
-
2016 год. RottenPotato
-
2017 год. LonelyPotato
-
2017 год. RottenPotatoNG
-
2018 год. JuicyPotato
-
2019 год. GhostPotato
-
2020 год. SweetPotato (все еще работает)
-
2020 год. PrintSpoofer (все еще работает)
-
2020 год. RoguePotato (все еще работает)
-
2021 год. GenericPotato (все еще работает)
-
2021 год. RemotePotato (! без Impersonate, запатчен 10.2022)
-
2022 год JuicyPotatoNG (все еще работает)
-
2022 год. CertPotato (техника, а не эксплойт)
-
2023 год. LocalPotato (! без Impersonate, запатчен 01.2023)
На Standoff некоторые атакующие подходили к повышению привилегий «академически». Они загружали WinPEAS (инструмент для поиска путей повышения привилегий), собирали и анализировали информацию об уязвимостях и мисконфигурациях на хосте, после чего адресно приносили на него либо Potato, либо эксплойты для найденных CVE (н-р, Win32k Elevation of Privilege Vulnerability – CVE-2020-1054). Другие команды поступали проще для экономии времени: загружали на хост несколько исполняемых файлов эксплойтов и по очереди запускали каждый из них.
Еще один способ повышения привилегий – команды атакующих при помощи adPEAS, PowerUP (PowerSploit) или других инструментов находили каталоги, в которые они могли записывать файлы от лица текущего пользователя и обращали внимание на сервисы, которые работают с этим каталогом. Если сервис работал или вызывался по расписанию, то они могли заменить исполняемый файл и через некоторое время получали сессию с правами того пользователя, от которого сервис был запущен. В данном случае, хакеры подменяли оригинальный исполняемый файл агента Zabbix (c:\zabbix\bin\zabbix_agentd.exe), запущенного с правами локального администратора.
3.3. Методы обнаружения
Повышение привилегий не самый тривиальный процесс, но есть признаки, которые говорят о том, что происходит что-то нелегитимное:
-
маркеры разведки: после повышения привилегий хакеры попытаются проверить, удалось ли им это. Поэтому исполнение команд разведки (н-р, whoami) от системных учетных записей должно вызывать подозрения;
-
запуск утилит из списка анализа средств защищенности, в т.ч. косвенные признаки их использования;
-
запуск неподписанных (без метаинформации) исполняемых файлов, а также открытие от них сетевых соединений или попытки внедрения в легитимный процесс;
-
создание специфичных для конкретных хакерских утилит именованных каналов (named pipes);
-
запуск процессов (event ID 4688 или 1, Sysmon) сразу после доступа к специфичным именованным каналам (event ID 5145).
4. Получение учетных данных (Credential Access)
T1134.002. Access Token Manipulation: Create Process with Token
4.1. Действия атакующих
Получение NT-хэша пароля HR-пользователя K_Workman и администратора рабочих станций b_gibbs_admin через дамп памяти процесса LSASS на хосте kworkman.metall.stf (10.156.33.137) утилитой mimikatz (c:\zabbix\bin\mimikatz.exe) и с последующим успешным подбором пароля.
4.2. Инструменты атакующих
После получения сессии обычного пользователя атакующие собирали как можно больше информации о том, какая роль у хоста и какие еще учетные данные и доступы есть на хосте. Одним из шагов может являться попытка дампа памяти процесса LSASS. В первую очередь в качестве инструмента использовался Mimikatz, чаще всего встроенный в Cobalt Strike. Помимо Mimikatz использовались:
-
nanodamp (https://github.com/fortra/nanodump)
-
LaZagne (https://github.com/AlessandroZ/LaZagne)
-
Secretsdump.py (https://github.com/fortra/impacket/blob/master/examples/secretsdump.py)
-
Cain & Abel (https://www.securitylab.ru/software/232833.php)
-
ProcDump (https://learn.microsoft.com/en-us/sysinternals/downloads/procdump)
4.3. Методы обнаружения
Техник для выполнения дампа памяти процесса LSASS множество. Примеры событий, которые нужно отслеживать:
-
Доступ к памяти процесса lsass.exe под специфическими масками доступа: 0x1fffff, 0x1410, 0x1f3fff, 0x1f1fff, 0x10147a, 0x143a, 0x1438, 0x1010, 0x1038) — логируется с помощью Sysmon и расширенного аудита ОС Windows (Event ID 4656, A handle to an object was requested).
-
Признаки удаленного дампа: доступ к именованным каналам SAMR, WINREG, SVCCTL и к каталогу C:\Windows (ADMIN$) после проверки подлинности пользователя для вывода данных через временные (.tmp) файлы. Н-р, так работает утилита SecretsDump из фреймворка Impacket.
-
Дамп памяти процесса LSASS с помощью диспетчера задач ОС Windows (taskmgr.exe).
-
Обнаружение запросов к файлам реестра, которые хранят локальные и закэшированные доменные учетные записи (SAM, SECURITY, SYSTEM), с помощью командной строки либо PowerShell.
5. Перемещение внутри периметра (Lateral Movement)
T1021.001. Remote Services: Remote Desktop Protocol
5.1. Действия атакующих
Подключение к RDG-серверу rdg.metall.stf (10.156.32.144) по протоколу RDP с узла kworkman.metall.stf (10.156.33.137) под УЗ K_Workman и загрузка инструментов с C2-сервера, в т.ч. утилиты для проксирования трафика updaters.exe:
Подключение к АРМ SCADA-инженера M_Barber, mbarber.metall.stf (10.156.34.38), по протоколу RDP с узла rdg.metall.stf (10.156.32.144) под УЗ K_Workman и b_gibbs_admin.
5.2. Инструменты атакующих
На данном этапе использовались встроенные механизмы взаимодействия с Windows-инфраструктурой, т.к. атакующие уже получили учетные записи с необходимыми правами. Примеры механизмов:
-
RDP
-
PowerShell через WinRM
-
WMI
-
SMB
Для удобства дополняли и своими утилитами:
-
инструменты из пакета Impacket;
-
PsExec из пакета Sysinternals;
5.3. Методы обнаружения
Примеры того, что можно отследить при боковом перемещении:
-
перехват RDP-сеансов с помощью утилиты ОС Windows –
tscon.exe; -
косвенные признаки: запуск процессов от
wsmprovhost.exe(WinRM),winrshost.exe(WinRS),wmiprvse.exe(WMI); -
отслеживание паттернов работы утилит. Например, для старых версий утилиты smbexec (из пакета Impacket):
cmd.exe /Q /c netstat -tulpn 1> \\127.0.0.1\ADMIN$\__1684419606.8165085 2>&1 или %COMSPEC% /Q /c echo net users /domain ^> \\127.0.0.1\C$\CEfJMQ 2— для новых версий вместо адреса127.0.0.1будет указано конкретное имя хоста, на котором выполняется команда; -
сетевая доставка исполняемых файлов. Н-р, создание запланированных заданий при помощи встроенной утилиты Windows ATSvc (Microsoft AT-Scheduler Service).
6. Сбор данных (Collection)
T1005. Data from Local System
6.1. Действия атакующих
Нахождение на mbarber.metall.stf (10.15sc6.34.38) информации о PLC-устройствах в документе Network Switch Replacement act.docx (c:\users\m_barber\downloads\).
6.2. Инструменты атакующих
Атакующие собирали информацию об инфраструктуре автоматически с помощью WinPEAS или PowerShell onleaner, а также руками копались в каталогах, которые на вид могли содержать интересные данные.
6.3. Методы обнаружения
При анализе событий обращать внимание на артефакты запуска инструментов атакующих и исполняемых команд разведки локального окружения. Очень часто злоумышленники не пользуются какими-то особенными инструментами, тем более что детектировать эти инструменты очень трудно, поскольку трафик их легитимный. Тем не менее, пытаться определить эту активность можно, в том числе при помощи инструментов для анализа средств защищенности.
7. Перемещение внутри периметра (Command and Control)
T1021.001. Remote Services: Remote Desktop Protocol
7.1. Действия атакующих
Загрузка утилиты для проксирования трафика lsysnetworkrestricted.exe на mbarber.metall.stf (10.156.34.38) с C2-сервера:
7.2. Инструменты атакующих
Примеры встречаемых утилит в инфраструктуре Standoff:
-
SharpSocks (https://github.com/nettitude/SharpSocks)
-
Chisel – его как всегда было очень много (https://github.com/jpillora/chisel)
-
Ligolo (https://github.com/sysdream/ligolo)
-
PoshC2 (https://github.com/nettitude/PoshC2)
-
Sliver C2 (https://github.com/BishopFox/sliver)
-
Stowaway (https://github.com/ph4ntonn/Stowaway/blob/master/README_EN.md)
-
CobaltStrike – Proxy Pivots
7.3. Методы обнаружения
-
детектировать инструменты атакующих C2-класса можно по артефактам, которые они оставляют;
-
через анализ сетевых запросов на нестандартные порты внешних сервисов (Sysmon, 3);
-
через поиск характерных для утилит сигнатур в сетевом пакете в решениях класса NTA (Network traffic analysis). Данный способ является самым эффективным с точки зрения обнаружения утилит данной тактики.
8. Деструктивное воздействие (Impact)
T1489. Service Stop
8.1. Действия атакующих
Реализация атаки: отключение промышленного контроллера 10.156.35.135 (PLC S7-314), отвечающего за работу МНЛЗ через модифицированный общедоступный эксплойт (https://github.com/ibaiape/s7_exploits):
Отправку команды PLC Stop на 10.156.35.135 (МНЛЗ) можно наблюдать в PT ISIM:
Заключение
Прошедший Standoff 11 запомнился:
-
тяжелыми атаками на технологическую и банковскую инфраструктуру. Тут мы, однозначно, все получили большой опыт;
-
командами атакующих с творческим подходом – ваши следы в инфраструктуре поднимали нам настроение. Отдельное спасибо за домены inostage[.]ru, standoff-365[.]ru, а также за «бархатные тяги»;
Рисунок 35. MaxPatrol SIEM: запланированные задачи
Рисунок 36. PT NAD: домены атакующих -
сильными защитниками, которые всего за четыре дня справлялись с атрибуцией 22 команд атакующих, расследованием атак, а также успевали желать нам хорошего дня:
Рисунок 37. И Вам Того Же 🙂
А пока до следующего Standoff в ноябре еще есть время, мы не даем профессиональному сообществу скучать. 20-21 сентября пройдет Всероссийская студенческая кибербитва в рамках форума Kazan Digital Week 2023.
Всероссийская студенческая кибербитва – это открытое соревнование между командами атакующих, состоящими из студентов высших учебных заведений России с опытом участия в CTF-соревнованиях, и командами защитников, состоящими из выпускников Межвузовского студенческого провайдера услуг кибербезопасности (MSSP SOC), который работает на базе четырех вузов Республики Татарстан.
Мы, Innostage, являемся организаторами данной битвы и предоставляем участникам учебный киберполигон, имитирующий объекты коммерческих предприятий и государственных структур. Для дополнительной визуализации происходящего мы совместно c командой Positive Technologies, которая является соорганизатором кибербитвы, впервые развернем в Казани физический макет киберполигона Standoff, который позволит наблюдать за реализацией красными командами сценариев атак, приводящих к таким событиям, как нарушение работы городских светофоров, отключение уличного освещения, показ нежелательного контента на билбордах города и многих других.
Ждем вас на Kazan Digital Week 2023!
ссылка на оригинал статьи https://habr.com/ru/articles/759384/
Добавить комментарий