Translated ['src/windows-hardening/active-directory-methodology/adws-enu

This commit is contained in:
Translator 2025-07-28 12:12:53 +00:00
parent f685eaaf4b
commit 171f4b7440
3 changed files with 155 additions and 57 deletions

View File

@ -260,6 +260,7 @@
- [Ad Certificates](windows-hardening/active-directory-methodology/ad-certificates.md)
- [AD information in printers](windows-hardening/active-directory-methodology/ad-information-in-printers.md)
- [AD DNS Records](windows-hardening/active-directory-methodology/ad-dns-records.md)
- [Adws Enumeration](windows-hardening/active-directory-methodology/adws-enumeration.md)
- [ASREPRoast](windows-hardening/active-directory-methodology/asreproast.md)
- [BloodHound & Other AD Enum Tools](windows-hardening/active-directory-methodology/bloodhound.md)
- [Constrained Delegation](windows-hardening/active-directory-methodology/constrained-delegation.md)

View File

@ -0,0 +1,106 @@
# Aktiewe Katalogus Webdienste (ADWS) Enumerasie & Stealth Versameling
{{#include ../../banners/hacktricks-training.md}}
## Wat is ADWS?
Aktiewe Katalogus Webdienste (ADWS) is **standaard geaktiveer op elke Domeinbeheerder sedert Windows Server 2008 R2** en luister op TCP **9389**. Ten spyte van die naam, **is daar geen HTTP betrokke nie**. In plaas daarvan, stel die diens LDAP-styl data bloot deur 'n stapel van eiendoms .NET raamwerk protokolle:
* MC-NBFX → MC-NBFSE → MS-NNS → MC-NMF
Omdat die verkeer binne hierdie binêre SOAP rame ingekapsuleer is en oor 'n ongewone poort reis, **is enumerasie deur ADWS baie minder waarskynlik om ondersoek, gefiltreer of gesigel te word as klassieke LDAP/389 & 636 verkeer**. Vir operateurs beteken dit:
* Stealthier rekognisie Blou span konsentreer dikwels op LDAP vrae.
* Vryheid om te versamel van **nie-Windows gasheer (Linux, macOS)** deur 9389/TCP deur 'n SOCKS-proxy te tonnel.
* Dieselfde data wat jy via LDAP sou verkry (gebruikers, groepe, ACLs, skema, ens.) en die vermoë om **skrywe** uit te voer (bv. `msDs-AllowedToActOnBehalfOfOtherIdentity` vir **RBCD**).
> LET WEL: ADWS word ook deur baie RSAT GUI/PowerShell gereedskap gebruik, so verkeer mag meng met wettige administratiewe aktiwiteite.
## SoaPy Inheemse Python Kliënt
[SoaPy](https://github.com/logangoins/soapy) is 'n **volledige herimplementering van die ADWS protokol stapel in suiwer Python**. Dit vervaardig die NBFX/NBFSE/NNS/NMF rame byte-vir-byte, wat versameling van Unix-agtige stelsels moontlik maak sonder om die .NET runtime te raak.
### Sleutelkenmerke
* Ondersteun **proxying deur SOCKS** (nuttig vanaf C2 implante).
* Fyn-gegradeerde soekfilters identies aan LDAP `-q '(objectClass=user)'`.
* Opsionele **skryf** operasies ( `--set` / `--delete` ).
* **BOFHound uitvoermodus** vir direkte opname in BloodHound.
* `--parse` vlag om tydstempels / `userAccountControl` te verfraai wanneer menslike leesbaarheid vereis word.
### Installasie (operateur gasheer)
```bash
python3 -m pip install soapy-adws # or git clone && pip install -r requirements.txt
```
## Stealth AD Collection Workflow
Die volgende werksvloei toon hoe om **domein & ADCS-objekte** oor ADWS te enummer, dit na BloodHound JSON om te skakel en jag vir sertifikaat-gebaseerde aanvalspaaie alles vanaf Linux:
1. **Tunnel 9389/TCP** van die teiken netwerk na jou boks (bv. via Chisel, Meterpreter, SSH dinamiese poort-voorwaarts, ens.). Eksporteer `export HTTPS_PROXY=socks5://127.0.0.1:1080` of gebruik SoaPy se `--proxyHost/--proxyPort`.
2. **Versamel die worteldomein objek:**
```bash
soapy ludus.domain/jdoe:'P@ssw0rd'@10.2.10.10 \
-q '(objectClass=domain)' \
| tee data/domain.log
```
3. **Versamel ADCS-verwante objekte van die Konfigurasie NC:**
```bash
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
```
4. **Skakel oor na BloodHound:**
```bash
bofhound -i data --zip # produces BloodHound.zip
```
5. **Laai die ZIP** op in die BloodHound GUI en voer cypher navrae soos `MATCH (u:User)-[:Can_Enroll*1..]->(c:CertTemplate) RETURN u,c` uit om sertifikaat eskalasie paaie (ESC1, ESC8, ens.) te onthul.
### Skryf `msDs-AllowedToActOnBehalfOfOtherIdentity` (RBCD)
```bash
soapy ludus.domain/jdoe:'P@ssw0rd'@dc.ludus.domain \
--set 'CN=Victim,OU=Servers,DC=ludus,DC=domain' \
msDs-AllowedToActOnBehalfOfOtherIdentity 'B:32:01....'
```
Combineer dit met `s4u2proxy`/`Rubeus /getticket` vir 'n volledige **Hulpbron-gebaseerde Beperkte Afvaardiging** ketting.
## Opsporing & Versterking
### Verbose ADDS Logging
Aktiveer die volgende register sleutels op Domein Beheerders om duur / ondoeltreffende soektogte wat van ADWS (en LDAP) kom, te vertoon:
```powershell
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
```
Events sal verskyn onder **Directory-Service** met die volle LDAP-filter, selfs wanneer die navraag via ADWS aangekom het.
### SACL Canary Objects
1. Skep 'n dummy objek (bv. gedeaktiveerde gebruiker `CanaryUser`).
2. Voeg 'n **Audit** ACE by vir die _Everyone_ prinsiep, geoudit op **ReadProperty**.
3. Wanneer 'n aanvaller `(servicePrincipalName=*)`, `(objectClass=user)` ens. uitvoer, stuur die DC **Event 4662** wat die werklike gebruiker SID bevat selfs wanneer die versoek geproksieer of van ADWS afkomstig is.
Elastic voorafgeboude reël voorbeeld:
```kql
(event.code:4662 and not user.id:"S-1-5-18") and winlog.event_data.AccessMask:"0x10"
```
## Tooling Summary
| Doel | Gereedskap | Aantekeninge |
|------|------------|--------------|
| ADWS enumerasie | [SoaPy](https://github.com/logangoins/soapy) | Python, SOCKS, lees/schryf |
| BloodHound inname | [BOFHound](https://github.com/bohops/BOFHound) | Converteer SoaPy/ldapsearch logs |
| Sertifikaat kompromie | [Certipy](https://github.com/ly4k/Certipy) | Kan deur dieselfde SOCKS geproksie word |
## References
* [SpecterOps Make Sure to Use SOAP(y) An Operators Guide to Stealthy AD Collection Using ADWS](https://specterops.io/blog/2025/07/25/make-sure-to-use-soapy-an-operators-guide-to-stealthy-ad-collection-using-adws/)
* [SoaPy GitHub](https://github.com/logangoins/soapy)
* [BOFHound GitHub](https://github.com/bohops/BOFHound)
* [Microsoft MC-NBFX, MC-NBFSE, MS-NNS, MC-NMF specifications](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nbfx/)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -1,87 +1,78 @@
# BloodHound & Ander AD Enum Gereedskap
# BloodHound & Ander Aktiewe Gidsen van Directory
{{#include ../../banners/hacktricks-training.md}}
{{#ref}}
adws-enumeration.md
{{#endref}}
> LET WEL: Hierdie bladsy groepeer sommige van die nuttigste nutsmiddels om **te enumerate** en **te visualiseer** Aktiewe Directory verhoudings. Vir versameling oor die stealthy **Active Directory Web Services (ADWS)** kanaal, kyk na die verwysing hierbo.
---
## AD Explorer
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) is van die Sysinternal Suite:
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) (Sysinternals) is 'n gevorderde **AD kyker & redigeerder** wat toelaat:
> 'n Gevorderde Active Directory (AD) kyker en redigeerder. Jy kan AD Explorer gebruik om maklik deur 'n AD-databasis te navigeer, gunsteling plekke te definieer, objek eienskappe en attribuut te sien sonder om dialoogvensters te open, regte te redigeer, 'n objek se skema te sien, en gesofistikeerde soektogte uit te voer wat jy kan stoor en weer uitvoer.
* GUI-browsing van die gidsboom
* Redigering van objekattributen & sekuriteitsbeskrywings
* Snapshot skepping / vergelyking vir offline analise
### Snapshots
### Vinnige gebruik
AD Explorer kan snapshots van 'n AD skep sodat jy dit aflyn kan nagaan.\
Dit kan gebruik word om kwesbaarhede aflyn te ontdek, of om verskillende toestande van die AD DB oor tyd te vergelyk.
1. Begin die hulpmiddel en verbind met `dc01.corp.local` met enige domein akrediteer.
2. Skep 'n offline snapshot via `File ➜ Create Snapshot`.
3. Vergelyk twee snapshots met `File ➜ Compare` om toestemming verskille op te spoor.
Jy sal die gebruikersnaam, wagwoord, en rigting benodig om te verbind (enige AD-gebruiker is benodig).
Om 'n snapshot van AD te neem, gaan na `File` --> `Create Snapshot` en voer 'n naam vir die snapshot in.
---
## ADRecon
[**ADRecon**](https://github.com/adrecon/ADRecon) is 'n gereedskap wat verskeie artefakte uit 'n AD-omgewing onttrek en kombineer. Die inligting kan in 'n **spesiaal geformateerde** Microsoft Excel **verslag** aangebied word wat opsommingsoorsigte met metrieke insluit om analise te fasiliteer en 'n holistiese prentjie van die huidige toestand van die teiken AD-omgewing te bied.
```bash
# Run it
.\ADRecon.ps1
[ADRecon](https://github.com/adrecon/ADRecon) onttrek 'n groot stel artefakte uit 'n domein (ACLs, GPOs, trusts, CA templates …) en produseer 'n **Excel verslag**.
```powershell
# On a Windows host in the domain
PS C:\> .\ADRecon.ps1 -OutputDir C:\Temp\ADRecon
```
## BloodHound
---
From [https://github.com/BloodHoundAD/BloodHound](https://github.com/BloodHoundAD/BloodHound)
## BloodHound (graf visualisering)
> BloodHound is 'n enkele bladsy Javascript webtoepassing, gebou op [Linkurious](http://linkurio.us/), saamgestel met [Electron](http://electron.atom.io/), met 'n [Neo4j](https://neo4j.com/) databasis wat gevoed word deur 'n C# data versamelaar.
[BloodHound](https://github.com/BloodHoundAD/BloodHound) gebruik grafteorie + Neo4j om verborge privilige verhoudings binne op-prem AD & Azure AD te onthul.
BloodHound gebruik grafteorie om die versteekte en dikwels onbedoelde verhoudings binne 'n Active Directory of Azure omgewing te onthul. Aanvallers kan BloodHound gebruik om maklik hoogs komplekse aanvalspaaie te identifiseer wat andersins onmoontlik sou wees om vinnig te identifiseer. Verdedigers kan BloodHound gebruik om daardie selfde aanvalspaaie te identifiseer en te elimineer. Beide blou en rooi spanne kan BloodHound gebruik om maklik 'n dieper begrip van privilige verhoudings in 'n Active Directory of Azure omgewing te verkry.
So, [Bloodhound ](https://github.com/BloodHoundAD/BloodHound)is 'n wonderlike hulpmiddel wat 'n domein outomaties kan opnoem, al die inligting kan stoor, moontlike privilige eskalasiepaaie kan vind en al die inligting kan vertoon met behulp van grafieke.
Booldhound bestaan uit 2 hoofdele: **ingestors** en die **visualiseringstoepassing**.
Die **ingestors** word gebruik om **die domein op te noem en al die inligting te onttrek** in 'n formaat wat die visualiseringstoepassing sal verstaan.
Die **visualiseringstoepassing gebruik neo4j** om te wys hoe al die inligting verwant is en om verskillende maniere te wys om privilige in die domein te eskaleer.
### Installation
Na die skepping van BloodHound CE, is die hele projek opgedateer vir gebruiksgemak met Docker. Die maklikste manier om te begin is om sy vooraf-gekonfigureerde Docker Compose konfigurasie te gebruik.
1. Installeer Docker Compose. Dit behoort ingesluit te wees met die [Docker Desktop](https://www.docker.com/products/docker-desktop/) installasie.
2. Loop:
### Ontplooiing (Docker CE)
```bash
curl -L https://ghst.ly/getbhce | docker compose -f - up
# Web UI ➜ http://localhost:8080 (user: admin / password from logs)
```
3. Vind die ewekansig gegenereerde wagwoord in die terminaluitvoer van Docker Compose.
4. In 'n blaaier, navigeer na http://localhost:8080/ui/login. Meld aan met die gebruikersnaam **`admin`** en 'n **`ewekansig gegenereerde wagwoord`** wat jy in die logs van docker compose kan vind.
### Versamelaars
Na hierdie sal jy die ewekansig gegenereerde wagwoord moet verander en jy sal die nuwe koppelvlak gereed hê, waarvan jy direk die ingestors kan aflaai.
* `SharpHound.exe` / `Invoke-BloodHound` inheemse of PowerShell variasie
* `AzureHound` Azure AD enumerasie
* **SoaPy + BOFHound** ADWS versameling (sien skakel bo)
### SharpHound
#### Algemene SharpHound modi
```powershell
SharpHound.exe --CollectionMethods All # Full sweep (noisy)
SharpHound.exe --CollectionMethods Group,LocalAdmin,Session,Trusts,ACL
SharpHound.exe --Stealth --LDAP # Low noise LDAP only
```
Die versamelaars genereer JSON wat via die BloodHound GUI ingeneem word.
Hulle het verskeie opsies, maar as jy SharpHound vanaf 'n rekenaar wat by die domein aangesluit is, wil uitvoer, met jou huidige gebruiker en al die inligting wil onttrek, kan jy doen:
```
./SharpHound.exe --CollectionMethods All
Invoke-BloodHound -CollectionMethod All
```
> Jy kan meer lees oor **CollectionMethod** en lus sessie [hier](https://support.bloodhoundenterprise.io/hc/en-us/articles/17481375424795-All-SharpHound-Community-Edition-Flags-Explained)
As jy SharpHound met verskillende akrediteerbesonderhede wil uitvoer, kan jy 'n CMD netonly sessie skep en SharpHound van daar af uitvoer:
```
runas /netonly /user:domain\user "powershell.exe -exec bypass"
```
[**Leer meer oor Bloodhound in ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-with-bloodhound-on-kali-linux)
---
## Group3r
[**Group3r**](https://github.com/Group3r/Group3r) is 'n hulpmiddel om **kwesbaarhede** in Active Directory geassosieer met **Groep Beleid** te vind. \
Jy moet **group3r** vanaf 'n gasheer binne die domein gebruik met **enige domein gebruiker**.
[Group3r](https://github.com/Group3r/Group3r) evalueer **Group Policy Objects** en beklemtoon miskonfigurasies.
```bash
group3r.exe -f <filepath-name.log>
# -s sends results to stdin
# -f send results to file
# Execute inside the domain
Group3r.exe -f gpo.log # -s to stdout
```
---
## PingCastle
[**PingCastle**](https://www.pingcastle.com/documentation/) **evalueer die sekuriteitsposisie van 'n AD-omgewing** en bied 'n mooi **verslag** met grafieke.
Om dit te laat loop, kan jy die binêre `PingCastle.exe` uitvoer en dit sal 'n **interaktiewe sessie** begin wat 'n menu van opsies aanbied. Die standaardopsie om te gebruik is **`healthcheck`** wat 'n basislyn **oorsig** van die **domein** sal vestig, en **misconfigurasies** en **kwesbaarhede** sal vind.
[PingCastle](https://www.pingcastle.com/documentation/) voer 'n **gesondheidskontrole** van Active Directory uit en genereer 'n HTML-verslag met risiko telling.
```powershell
PingCastle.exe --healthcheck --server corp.local --user bob --password "P@ssw0rd!"
```
{{#include ../../banners/hacktricks-training.md}}