Этот документ был разработан как полезный информационный ресурс для тех, кто хочет понять конкретные тактики, техники и процедуры (TTP), используемые злоумышленниками для компрометации Active Directory, а также руководство по смягчению последствий, обнаружению и предотвращению. А также понять Active Directory Kill Chain Attack и современную активность противников при постэксплуатации.
BadSuccessor - Этот репозиторий содержит инструменты, связанные с атакой BadSuccessor — новой техникой повышения привилегий в Active Directory, использующей уязвимость в функции, появившейся в Windows Server 2025.
AD_Miner - AD Miner — это инструмент аудита Active Directory, который использует запросы Cypher для обработки данных из графовой базы данных Bloodhound с целью выявления уязвимостей безопасности.
Certify - Certify — это инструмент на C# для обнаружения и эксплуатации неправильных конфигураций в службах сертификации Active Directory (AD CS).
PSPKIAudit - Набор инструментов PowerShell для аудита служб сертификации Active Directory (AD CS).
PowerView - Фреймворк PowerShell для ситуационной осведомленности.
BloodHound - Шесть степеней администратора домена.
Impacket - Impacket — это набор классов Python для работы с сетевыми протоколами.
aclpwn.py - Эксплуатация ACL Active Directory с помощью BloodHound.
CrackMapExec - Швейцарский армейский нож для тестирования сетей на проникновение.
ADACLScanner - Инструмент с графическим или командным интерфейсом для создания отчетов о списках управления доступом (DACL) и системных списках управления доступом (SACL) в Active Directory.
zBang - zBang — это инструмент оценки рисков, который обнаруживает потенциальные угрозы привилегированных учетных записей.
SafetyKatz - SafetyKatz — это комбинация слегка измененной версии проекта Mimikatz от @gentilkiwi и загрузчика .NET PE от @subTee.
SharpDump - SharpDump — это порт функциональности Out-Minidump.ps1 из PowerSploit на C#.
PowerUpSQL - Набор инструментов PowerShell для атак на SQL Server.
Rubeus - Rubeus — это набор инструментов на C# для прямого взаимодействия с Kerberos и его эксплуатации.
ADRecon - Инструмент, который собирает информацию об Active Directory и генерирует отчет, позволяющий получить целостную картину текущего состояния целевой среды AD.
Mimikatz - Утилита для извлечения паролей в открытом виде, хешей, PIN-кодов и билетов Kerberos из памяти, а также для выполнения pass-the-hash, pass-the-ticket или создания Golden Tickets.
Grouper - Скрипт PowerShell для поиска уязвимых настроек в групповых политиках AD.
Powermad - Инструменты PowerShell для эксплуатации MachineAccountQuota и DNS.
RACE - RACE — это модуль PowerShell для выполнения атак ACL на цели Windows.
DomainPasswordSpray - DomainPasswordSpray — это инструмент, написанный на PowerShell, для выполнения атаки перебором паролей (password spray) по пользователям домена.
MailSniper - MailSniper — это инструмент для тестирования на проникновение, предназначенный для поиска в электронной почте в среде Microsoft Exchange определенных терминов (паролей, внутренней информации, данных о сетевой архитектуре и т.д.).
LAPSToolkit - Инструмент для аудита и атак на среды LAPS.
CredDefense - Защита учетных данных и средств Red Teaming для сред Windows.
ldapdomaindump - Дамп информации об Active Directory через LDAP.
SpoolSample - PoC-инструмент для принуждения узлов Windows к аутентификации на других машинах через интерфейс RPC MS-RPRN.
adconnectdump - Извлечение паролей из Azure AD Connect.
o365recon - Скрипт для получения информации через O365 с действительными учетными данными.
ROADtools - ROADtools — это фреймворк для взаимодействия с Azure AD.
Stormspotter - Stormspotter создает «граф атак» ресурсов в подписке Azure.
AADInternals - AADInternals — это модуль PowerShell для администрирования Azure AD и Office 365.
sam-the-admin - Эксплуатация CVE-2021-42278 и CVE-2021-42287 для выдачи себя за администратора домена от имени обычного пользователя домена.
CVE-2021-42287/CVE-2021-42278 Сканер и эксплойт. - Сканер и эксплойт для CVE-2021-42287/CVE-2021-42278. Ещё один легковесный эксплойт для повышения прав от пользователя домена до администратора домена.
ADModule - Подписанный Microsoft модуль PowerShell для Active Directory.
ImproHound - Определение путей атак в BloodHound, нарушающих вашу многоуровневую архитектуру AD.
ADExplorerSnapshot.py - ADExplorerSnapshot.py — это средство импорта снимков AD Explorer для BloodHound.
orpheus - Обход обнаружений Kerberoast с помощью модифицированных опций KDC и типов шифрования.
Invoke-TrimarcADChecks - PowerShell-скрипт Invoke-TrimarcADChecks.ps1 предназначен для сбора данных из одного домена AD в лесу для проведения оценки безопасности Active Directory (ADSA).
Create-Tiers in AD - Проект под названием "Active Directory Auto Deployment of Tiers in any environment" (Автоматическое развертывание уровней Active Directory в любой среде)
SAMRi10 - Укрепление удаленного доступа SAM в Windows 10/Server 2016
Net Cease - Укрепление механизма перечисления сессий Net
PingCastle - Инструмент для быстрой оценки уровня безопасности Active Directory на основе методологии оценки рисков и модели зрелости
Reset the krbtgt account password/keys - Этот скрипт позволяет сбросить пароль и связанные ключи учетной записи krbtgt, минимизируя вероятность проблем с аутентификацией Kerberos
RiskySPN - RiskySPNs — это набор PowerShell-скриптов, нацеленных на обнаружение и эксплуатацию учетных записей, связанных с SPN (Имя субъекта службы).
Deploy-Deception - PowerShell-модуль для развертывания объектов-ловушек в Active Directory
SpoolerScanner - Проверка доступности MS-RPRN удаленно с помощью PowerShell/C#
dcept - Инструмент для развертывания и обнаружения использования honeytoken в Active Directory
LogonTracer - Расследование вредоносных входов в Windows путем визуализации и анализа журнала событий Windows
DCSYNCMonitor - Мониторинг атак DCSYNC и DCSHADOW с созданием пользовательских событий Windows
Sigma - Универсальный формат сигнатур для SIEM-систем
Sysmon - System Monitor (Sysmon) — это системная служба Windows и драйвер устройства, который после установки остается активным после перезагрузки системы для мониторинга и записи системной активности в журнал событий Windows.
SysmonSearch - Расследование подозрительной активности путем визуализации журнала событий Sysmon
ClrGuard - ClrGuard — это концептуальный проект для исследования инструментирования Common Language Runtime (CLR) в целях безопасности.
Get-InjectedThread - Get-InjectedThread проверяет каждый выполняющийся поток на предмет того, является ли он результатом инъекции в память.
SilkETW - SilkETW и SilkService — это гибкие обертки на C# для ETW, предназначенные для абстрагирования от сложностей ETW и предоставления простого интерфейса для исследований и ретроспективного анализа.
WatchAD - Система обнаружения вторжений в безопасность AD
Sparrow - Sparrow.ps1 был создан группой облачной криминалистики CISA для помощи в обнаружении возможных скомпрометированных учетных записей и приложений в среде Azure/M365.
DFIR-O365RC - PowerShell-модуль DFIR-O365RC содержит набор функций, позволяющих аналитику DFIR собирать журналы, релевантные для расследований компрометации деловой почты Office 365.
ADTimeline - Скрипт ADTimeline формирует временную шкалу на основе метаданных репликации Active Directory для объектов, представляющих интерес.
Locksmith - Небольшой инструмент для поиска и исправления распространенных ошибок конфигурации в службах сертификации Active Directory.
FalconHound - FalconHound — это многофункциональный инструмент для синей команды. Он позволяет использовать и расширять возможности BloodHound в более автоматизированном режиме. Разработан для работы совместно с SIEM или другими инструментами агрегации журналов.
PlumHound - Bloodhound для синих и фиолетовых команд.
Конфигурация Sysmon
sysmon-modular - Репозиторий конфигураций Sysmon для индивидуальной настройки
sysmon-dfir - Источники, конфигурация и способы обнаружения вредоносной активности с помощью Microsoft Sysmon.
sysmon-config - Шаблон файла конфигурации Sysmon с качественной трассировкой событий по умолчанию
Проверки безопасности Active Directory (автор: Sean Metcalf - @Pyrotek3)
Общие рекомендации
Управление локальными паролями администраторов (LAPS).
Внедрить режим RDP Restricted Admin (при необходимости).
Удалить неподдерживаемые ОС из сети.
Мониторинг запланированных задач на чувствительных системах (DC и т.д.).
Обеспечить регулярную смену и безопасное хранение паролей OOB (DSRM).
Использовать SMB v2/v3+
Пароли учетных записей по умолчанию: администратора домена и KRBTGT — менять ежегодно, а также при увольнении администратора AD.
Удалить ненужные доверительные отношения и включить фильтрацию SID по мере необходимости.
Для всех аутентификаций в домене (по возможности) установить: "Отправлять только ответ NTLMv2, отказывать LM и NTLM".
Заблокировать доступ в интернет для DC, серверов и всех административных систем.
Защита учетных данных администраторов
Никакие учетные записи пользователей или компьютеров не должны входить в группы администраторов.
Убедиться, что все административные учетные записи являются "чувствительными и не могут быть делегированы".
Добавить административные учетные записи в группу "Protected Users" (требуются контроллеры домена Windows Server 2012 R2, уровень функциональности домена 2012R2 для защиты домена).
Отключить все неактивные административные учетные записи и удалить их из привилегированных групп.
Защита учетных данных администраторов AD
Ограничить членство в группах администраторов AD (DA, EA, Schema Admins и т.д.) и использовать только пользовательские группы делегирования.
«Многоуровневое» администрирование, снижающее последствия кражи учетных данных.
Обеспечить вход администраторов только на утвержденные административные рабочие станции и серверы.
Использовать временное членство в группах для всех административных учетных записей.
Защита учетных данных служебных учетных записей
Ограничить доступ системами того же уровня безопасности.
Использовать "(Group) Managed Service Accounts" (или пароль длиной более 20 символов) для снижения риска кражи учетных данных (kerberoast).
Внедрить FGPP (уровень функциональности домена >=2008) для повышения требований к паролям для служебных учетных записей и администраторов.
Ограничения входа — предотвратить интерактивный вход и ограничить возможность входа только на определенные компьютеры.
Отключить неактивные служебные учетные записи и удалить их из привилегированных групп.
Защита ресурсов
Сегментировать сеть для защиты административных и критически важных систем.
Развернуть IDS для мониторинга внутренней корпоративной сети.
Сетевые устройства и OOB-управление должны находиться в отдельной сети.
Защита контроллеров домена
Запускать только программное обеспечение и службы, необходимые для поддержки AD.
Минимальное количество групп (и пользователей) с правами администратора/входа на DC.
Убедиться, что исправления применяются до запуска DCPromo (особенно MS14-068 и другие критические обновления).
Проверять запланированные задачи и скрипты.
Защита рабочих станций (и серверов)
Быстрое установка исправлений, особенно для уязвимостей повышения привилегий.
Развернуть пакет обратного портирования безопасности (KB2871997).
Установить значение реестра Wdigest равным 0 (KB2871997/Windows 8.1/2012R2+): HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Wdigest
Развернуть механизм белых списков на рабочих станциях (Microsoft AppLocker) для блокировки выполнения кода в пользовательских папках — домашнем каталоге и пути профиля.
Развернуть технологию изоляции приложений на рабочих станциях (EMET) для снижения риска эксплуатации уязвимостей памяти приложений (0-day).
Журналирование
Включить расширенное аудирование
"Аудит: принудительно переопределять параметры подкатегорий политики аудита (Windows Vista или более поздняя версия) для переопределения параметров категорий политики аудита"
Включить журналирование модулей PowerShell ("*") и пересылать журналы на центральный сервер журналов (WEF или другой метод).
Включить журналирование процессов CMD и его расширение (KB3004375), а также пересылку журналов на центральный сервер.
Использовать SIEM или эквивалентную систему для централизации как можно большего объема данных журналов.
Система анализа поведения пользователей для углубленного понимания активности пользователей (например, Microsoft ATA).
Проверки для специалистов по безопасности
Определить, кто имеет права администратора AD (домен/лес).
Определить, кто может входить на контроллеры домена (и иметь права администратора в виртуальной среде, размещающей виртуальные DC).
Сканировать домены Active Directory, подразделения, AdminSDHolder и групповые политики на наличие неподобающих пользовательских разрешений.
Убедиться, что администраторы AD (например, Domain Admins) защищают свои учетные данные, не входя в ненадежные системы (рабочие станции).
Ограничить права служебных учетных записей, которые в настоящее время имеют права DA (или эквивалентные).
Важные обновления безопасности
CVE
Название
Описание
Ссылка
CVE-2020-1472
Уязвимость повышения привилегий в Netlogon
Уязвимость повышения привилегий возникает, когда злоумышленник устанавливает уязвимое защищенное канальное соединение Netlogon с контроллером домена, используя протокол Netlogon Remote Protocol (MS-NRPC). Злоумышленник, успешно воспользовавшийся уязвимостью, может запустить специально созданное приложение на устройстве в сети.
Уязвимость подмены существует в Microsoft Windows, когда злоумышленник, действующий по схеме "человек посередине", может успешно обойти защиту MIC (Message Integrity Check) NTLM. Также известна как "Уязвимость подмены NTLM в Windows".
Уязвимость повышения привилегий в Active Directory
Уязвимость повышения привилегий существует в доверительных отношениях лесов Active Directory из-за настройки по умолчанию, которая позволяет злоумышленнику в доверяющем лесу запросить делегирование TGT для учетной записи из доверенного леса. Также известна как "Уязвимость повышения привилегий в Active Directory".
Уязвимость удаленного выполнения кода в службах удаленных рабочих столов
Уязвимость удаленного выполнения кода существует в службах Remote Desktop Services (ранее называвшихся Terminal Services), когда неаутентифицированный злоумышленник подключается к целевой системе с помощью RDP и отправляет специально созданные запросы. Также известна как "Уязвимость удаленного выполнения кода в службах удаленных рабочих столов".
4624: Вход учетной записи 4634: Выход из системы учетной записи 4672: Вход администратора
Golden Ticket
4624: Вход учетной записи 4672: Вход администратора
PowerShell
4103: Журналирование блоков скриптов 400: Жизненный цикл обработчика 403: Жизненный цикл обработчика 4103: Журналирование модулей 600: Жизненный цикл поставщика
DCShadow
4742: Учетная запись компьютера была изменена 5137: Был создан объект службы каталогов 5141: Был удален объект службы каталогов 4929: Был удален контекст именования исходного реплики Active Directory
Skeleton Keys
4673: Была вызвана привилегированная служба 4611: Доверенный процесс входа был зарегистрирован в Local Security Authority 4688: Был создан новый процесс 4689: Был завершен новый процесс
4688: Был создан новый процесс 4689: Процесс был завершен 4624: Учетная запись успешно вошла в систему 4625: Учетной записи не удалось войти в систему
DNSAdmin
770: DLL-плагин DNS-сервера был загружен 541: Параметр serverlevelplugindll в области . был установлен на <путь к dll> 150: DNS-сервер не смог загрузить или инициализировать DLL-плагин
DCSync
4662: Над объектом была выполнена операция
Подбор паролей
4625: Учетной записи не удалось войти в систему 4771: Предварительная аутентификация Kerberos не удалась 4648: Была предпринята попытка входа с использованием явных учетных данных
Уязвимость удаленного выполнения кода в Windows SMB
Сервер SMBv1 в Microsoft Windows Vista SP2; Windows Server 2008 SP2 и R2 SP1; Windows 7 SP1; Windows 8.1; Windows Server 2012 Gold и R2; Windows RT 8.1; Windows 10 Gold, 1511 и 1607; Windows Server 2016 позволяет удаленным злоумышленникам выполнять произвольный код через специально созданные пакеты. Также известна как "Уязвимость удаленного выполнения кода в Windows SMB". Эта уязвимость отличается от описанных в CVE-2017-0144, CVE-2017-0145, CVE-2017-0146 и CVE-2017-0148.
Уязвимость понижения протокола SAM и LSAD в Windows
Реализации протоколов SAM и LSAD в Microsoft Windows Vista SP2, Windows Server 2008 SP2 и R2 SP1, Windows 7 SP1, Windows 8.1, Windows Server 2012 Gold и R2, Windows RT 8.1, Windows 10 Gold и 1511 не должным образом устанавливают канал RPC, что позволяет злоумышленникам, работающим по схеме "человек посередине", выполнять атаки понижения протокола и выдавать себя за пользователей, изменяя поток данных между клиентом и сервером. Также известна как "Уязвимость понижения протокола SAM и LSAD в Windows" или "BADLOCK".
Уязвимость в Kerberos, позволяющая повысить привилегии (3011780)
Центр распространения ключей Kerberos (KDC) в Microsoft Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2 и R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold и R2 позволяет удаленным аутентифицированным пользователям домена получать права администратора домена через поддельную подпись в билете; данная уязвимость активно эксплуатировалась в ноябре 2014 года. Также известна как "Уязвимость контрольной суммы Kerberos".
Уязвимость в параметрах групповой политики, позволяющая повысить привилегии
Реализация групповой политики в Microsoft Windows Vista SP2, Windows Server 2008 SP2 и R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold и R2 не должным образом обрабатывает распространение паролей, что позволяет удаленным аутентифицированным пользователям получать конфиденциальные учетные данные и, как следствие, получать привилегии, используя доступ к общей папке SYSVOL. Данная уязвимость активно эксплуатировалась в мае 2014 года. Также известна как "Уязвимость повышения привилегий через пароль в параметрах групповой политики".