Поймать нарушителя! Учимся детектировать инструменты атак на Windows

Атаки на 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

Функциональность Impacket весьма широка, начиная от разведки внутри AD и сбора данных с внутренних серверов MS SQL и заканчивая техниками для получения учетных данных: это и атака SMB Relay, и получение с контроллера домена файла ntds.dit, содержащего хеши паролей пользователей. Также Impacket удаленно выполняет команды четырьмя разными способами: через WMI, сервис для управления планировщиком Windows, DCOM и SMB. И для этого ему нужны учетные данные.

Secretsdump

В качестве цели для модуля 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, специфичным именам, командам и их порядку.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


"Антон Тюрин : Руководитель отдела экспертных сервисов PT Expert Security Center, Positive Technologies."

Комментарии (1)

  • А я помню еще время, когда ребята из vxlab.info писали в журнале inception о living off the land, встроенном Javascript и прочее. С того момента прошло много времени и то что вы говорите: хакеры все чаще используют стандартные средства, нет, не частно, а постоянно и на протяжении уже 6-8 лет.