Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Атаки на Windows в наше время одна из наиболее реальных угроз для компаний. При этом исходный код используемых хакерами инструментов открыт и доступен на GitHub. В этой статье мы поговорим о том, какие существуют средства развития атаки внутри инфраструктуры, и о том, как их эффективно детектировать.
В 2017–2018 годах группировки APT Dragonfly, APT28 и APT MuddyWater проводили атаки на правительственные и военные организации Европы, Северной Америки и Саудовской Аравии. И использовали для этого три инструмента — Impacket, CrackMapExec и Koadic.
Перечисленные средства применяются на разных стадиях атаки, которые следуют после преодоления периметра. На этих этапах детектировать малварь уже непросто. Для этого нужно либо выявлять следы компрометации в сетевом трафике, либо применять инструменты для обнаружения активных действий злоумышленника.
В Impacket, CrackMapExec и Koadic реализовано множество интересных функций — от передачи файлов до взаимодействия с реестром и выполнения команд на удаленной машине. Мы исследовали эти инструменты с целью определить их сетевую активность. Вот какие задачи мы перед собой ставили в рамках исследования.
Итак, что конкретно делают перечисленные инструменты? В случае с Impacket злоумышленники получают большую библиотеку модулей, которые можно использовать на разных стадиях атаки, следующих после преодоления периметра. Многие инструменты используют модули Impacket у себя внутри — например, Metasploit. В нем имеются утилиты dcomexec и wmiexec для удаленного выполнения команд, secretsdump для получения из памяти учетных записей, которые добавлены из Impacket. В итоге правильное обнаружение активности такой библиотеки обеспечит и обнаружение производных.
О CrackMapExec (или просто CME) создатели неслучайно написали Powered by Impacket. Помимо его функций, в CME входят средства для реализации популярных сценариев: это и Bloodhound, и Mimikatz для получения паролей или их хешей, и внедрение Meterpreter либо Empire agent для удаленного исполнения.
Третий выбранный нами инструмент — Koadic. Он достаточно свеж, был представлен на DEF CON 25 в 2017 году и отличается нестандартным подходом: работой через HTTP, JavaScript и VBScript. Такой подход называют living off the land: инструмент пользуется набором зависимостей и библиотек, встроенных в Windows. Создатели называют его COM Сommand & Сontrol, или С3.
Функциональность Impacket весьма широка, начиная от разведки внутри AD и сбора данных с внутренних серверов MS SQL и заканчивая техниками для получения учетных данных: это и атака SMB Relay, и получение с контроллера домена файла ntds.dit, содержащего хеши паролей пользователей. Также Impacket удаленно выполняет команды четырьмя разными способами: через WMI, сервис для управления планировщиком Windows, DCOM и SMB. И для этого ему нужны учетные данные.
В качестве цели для модуля secretsdump могут выступать как машины пользователей, так и контроллеры домена. С его помощью можно получать копии областей памяти LSA, SAM, SECURITY, NTDS.dit, поэтому его можно увидеть на разных стадиях атаки.
Первый шаг в работе этого модуля — аутентификация через SMB, для которой необходим либо пароль пользователя, либо его хеш для автоматического проведения атаки Pass the Hash. Далее идет запрос на открытие доступа к Service Control Manager (SCM) и получение доступа к реестру по протоколу winreg, используя который атакующий может узнать данные интересующих его веток и получить результаты через SMB.
На картинке ниже мы видим, как именно при использовании протокола winreg происходит получение доступа по ключу реестра с LSA. Для этого используется команда DCERPC с opcode 15 — OpenKey
.
Открытие ключа реестра по протоколу winreg
Далее, когда доступ по ключу получен, значения сохраняются командой SaveKey
с opcode 20. Impacket делает это весьма специфично. Он сохраняет значения в файл, имя которого — это строка из восьми случайных символов с добавлением .tmp
. Кроме того, дальнейшая выгрузка этого файла происходит через SMB из директории System32
.
Схема получения ключа реестра с удаленной машины
Выходит, обнаружить такую активность в сети можно по запросам к определенным веткам реестра по протоколу winreg, специфичным именам, командам и их порядку.
Также этот модуль оставляет следы в журнале событий Windows, благодаря которым он легко обнаруживается. Например, в результате выполнения команды
secretsdump.py -debug -system SYSTEM -sam SAM -ntds NTDS -security SECURITY -bootkey BOOTKEY -outputfile 1.txt -use-vss -exec-method mmcexec -user-status -dc-ip 192.168.202.100 -target-ip 192.168.202.100 contoso/Administrator:@DC
в журнале Windows Server 2016 увидим следующую ключевую последовательность событий.
Источник: xakep.ru