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

This commit is contained in:
Translator 2025-07-28 12:12:46 +00:00
parent 3f8a5221d1
commit bec35cbca2
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 @@
# Active Directory Web Services (ADWS) Enumeration & Stealth Collection
{{#include ../../banners/hacktricks-training.md}}
## Šta je ADWS?
Active Directory Web Services (ADWS) je **omogućen po defaultu na svakom Domain Controller-u od Windows Server 2008 R2** i sluša na TCP **9389**. I pored imena, **nema HTTP-a**. Umesto toga, usluga izlaže LDAP-stil podatke kroz skup proprietarnih .NET protokola:
* MC-NBFX → MC-NBFSE → MS-NNS → MC-NMF
Pošto je saobraćaj enkapsuliran unutar ovih binarnih SOAP okvira i putuje preko neobičnog porta, **enumeracija kroz ADWS je daleko manje verovatna da će biti inspekcija, filtrirana ili potpisana nego klasični LDAP/389 & 636 saobraćaj**. Za operatore to znači:
* Diskretnija recon Plave ekipe često se fokusiraju na LDAP upite.
* Sloboda prikupljanja sa **ne-Windows hostova (Linux, macOS)** tunelovanjem 9389/TCP kroz SOCKS proxy.
* Isti podaci koje biste dobili putem LDAP-a (korisnici, grupe, ACL-ovi, šema, itd.) i mogućnost izvođenja **upisa** (npr. `msDs-AllowedToActOnBehalfOfOtherIdentity` za **RBCD**).
> NAPOMENA: ADWS se takođe koristi od strane mnogih RSAT GUI/PowerShell alata, tako da saobraćaj može da se meša sa legitimnom administrativnom aktivnošću.
## SoaPy Nativni Python Klijent
[SoaPy](https://github.com/logangoins/soapy) je **potpuna re-implementacija ADWS protokolskog staka u čistom Python-u**. Kreira NBFX/NBFSE/NNS/NMF okvire bajt po bajt, omogućavajući prikupljanje sa Unix-sličnih sistema bez dodirivanja .NET runtime-a.
### Ključne Karakteristike
* Podržava **proxy kroz SOCKS** (korisno iz C2 implantata).
* Fino podešeni pretraživački filteri identični LDAP `-q '(objectClass=user)'`.
* Opcione **write** operacije ( `--set` / `--delete` ).
* **BOFHound izlazni režim** za direktnu ingestiju u BloodHound.
* `--parse` zastavica za formatiranje vremenskih oznaka / `userAccountControl` kada je potrebna ljudska čitljivost.
### Instalacija (operaterski host)
```bash
python3 -m pip install soapy-adws # or git clone && pip install -r requirements.txt
```
## Stealth AD Collection Workflow
The following workflow shows how to enumerate **domain & ADCS objects** over ADWS, convert them to BloodHound JSON and hunt for certificate-based attack paths all from Linux:
1. **Tunnel 9389/TCP** from the target network to your box (e.g. via Chisel, Meterpreter, SSH dynamic port-forward, etc.). Export `export HTTPS_PROXY=socks5://127.0.0.1:1080` or use SoaPys `--proxyHost/--proxyPort`.
2. **Sakupite objekat glavne domene:**
```bash
soapy ludus.domain/jdoe:'P@ssw0rd'@10.2.10.10 \
-q '(objectClass=domain)' \
| tee data/domain.log
```
3. **Sakupite ADCS povezane objekte iz Configuration 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. **Konvertuj u BloodHound:**
```bash
bofhound -i data --zip # produces BloodHound.zip
```
5. **Otpremite ZIP** u BloodHound GUI i pokrenite cypher upite kao što su `MATCH (u:User)-[:Can_Enroll*1..]->(c:CertTemplate) RETURN u,c` da otkrijete puteve eskalacije sertifikata (ESC1, ESC8, itd.).
### Pisanje `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....'
```
Kombinujte ovo sa `s4u2proxy`/`Rubeus /getticket` za kompletnu **Delegaciju zasnovanu na resursima**.
## Detekcija i Ojačavanje
### Detaljno ADDS Logovanje
Omogućite sledeće registry ključeve na Kontrolerima domena kako biste prikazali skupe / neefikasne pretrage koje dolaze iz ADWS (i LDAP):
```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
```
Događaji će se pojaviti pod **Directory-Service** sa punim LDAP filtrima, čak i kada je upit stigao putem ADWS.
### SACL Canary Objects
1. Kreirajte lažni objekat (npr. onemogućeni korisnik `CanaryUser`).
2. Dodajte **Audit** ACE za _Everyone_ princip, koji se prati na **ReadProperty**.
3. Kada god napadač izvrši `(servicePrincipalName=*)`, `(objectClass=user)` itd., DC emituje **Event 4662** koji sadrži pravi SID korisnika čak i kada je zahtev posredovan ili potiče iz ADWS.
Primer unapred definisane pravila za Elastic:
```kql
(event.code:4662 and not user.id:"S-1-5-18") and winlog.event_data.AccessMask:"0x10"
```
## Rezime alata
| Svrha | Alat | Napomene |
|-------|------|----------|
| ADWS enumeracija | [SoaPy](https://github.com/logangoins/soapy) | Python, SOCKS, čitanje/pisanje |
| BloodHound unos | [BOFHound](https://github.com/bohops/BOFHound) | Konvertuje SoaPy/ldapsearch logove |
| Kompromitacija sertifikata | [Certipy](https://github.com/ly4k/Certipy) | Može se proksirati kroz isti SOCKS |
## Reference
* [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 & Other AD Enum Tools
# BloodHound & Other Active Directory Enumeration Tools
{{#include ../../banners/hacktricks-training.md}}
{{#ref}}
adws-enumeration.md
{{#endref}}
> NOTE: Ova stranica grupiše neke od najkorisnijih alata za **enumeraciju** i **vizualizaciju** odnosa u Active Directory-ju. Za prikupljanje preko stealthy **Active Directory Web Services (ADWS)** kanala, pogledajte referencu iznad.
---
## AD Explorer
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) je iz Sysinternal Suite:
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) (Sysinternals) je napredni **AD preglednik i uređivač** koji omogućava:
> Napredni preglednik i uređivač Active Directory (AD). Možete koristiti AD Explorer za lako navigiranje AD bazi podataka, definisanje omiljenih lokacija, pregled svojstava objekata i atributa bez otvaranja dijaloga, uređivanje dozvola, pregled šeme objekta i izvršavanje složenih pretraga koje možete sačuvati i ponovo izvršiti.
* GUI pretraživanje stabla direktorijuma
* Uređivanje atributa objekata i sigurnosnih deskriptora
* Kreiranje / poređenje snimaka za analizu van mreže
### Snapshots
### Brza upotreba
AD Explorer može kreirati snimke AD-a kako biste mogli da ga proverite offline.\
Može se koristiti za otkrivanje ranjivosti offline, ili za upoređivanje različitih stanja AD DB-a tokom vremena.
1. Pokrenite alat i povežite se na `dc01.corp.local` sa bilo kojim domena kredencijalima.
2. Kreirajte offline snimak putem `File ➜ Create Snapshot`.
3. Poređajte dva snimka sa `File ➜ Compare` da biste uočili promene u dozvolama.
Biće vam potrebni korisničko ime, lozinka i pravac za povezivanje (bilo koji AD korisnik je potreban).
Da biste napravili snimak AD-a, idite na `File` --> `Create Snapshot` i unesite ime za snimak.
---
## ADRecon
[**ADRecon**](https://github.com/adrecon/ADRecon) je alat koji izvlači i kombinuje razne artefakte iz AD okruženja. Informacije se mogu predstaviti u **posebno formatiranom** Microsoft Excel **izveštaju** koji uključuje sažetke sa metrikama kako bi olakšao analizu i pružio celovitu sliku trenutnog stanja ciljnog AD okruženja.
```bash
# Run it
.\ADRecon.ps1
[ADRecon](https://github.com/adrecon/ADRecon) izvlači veliki set artefakata iz domena (ACL-ovi, GPO-ovi, poverenja, CA šabloni …) i proizvodi **Excel izveštaj**.
```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 (grafička vizualizacija)
> BloodHound je jednostavna Javascript web aplikacija, izgrađena na [Linkurious](http://linkurio.us/), kompajlirana sa [Electron](http://electron.atom.io/), sa [Neo4j](https://neo4j.com/) bazom podataka koju napaja C# sakupljač podataka.
[BloodHound](https://github.com/BloodHoundAD/BloodHound) koristi teoriju grafova + Neo4j da otkrije skrivene privilegije unutar on-prem AD i Azure AD.
BloodHound koristi teoriju grafova da otkrije skrivene i često nenamerne odnose unutar Active Directory ili Azure okruženja. Napadači mogu koristiti BloodHound da lako identifikuju veoma složene puteve napada koji bi inače bili nemogući za brzo identifikovanje. Branitelji mogu koristiti BloodHound da identifikuju i eliminišu iste te puteve napada. I plave i crvene ekipe mogu koristiti BloodHound da lako steknu dublje razumevanje odnosa privilegija u Active Directory ili Azure okruženju.
Dakle, [Bloodhound ](https://github.com/BloodHoundAD/BloodHound)je neverovatan alat koji može automatski enumerisati domen, sačuvati sve informacije, pronaći moguće puteve za eskalaciju privilegija i prikazati sve informacije koristeći grafove.
BloodHound se sastoji od 2 glavna dela: **ingestors** i **aplikacija za vizualizaciju**.
**Ingestors** se koriste za **enumerisanje domena i ekstrakciju svih informacija** u formatu koji aplikacija za vizualizaciju može razumeti.
**Aplikacija za vizualizaciju koristi neo4j** da prikaže kako su sve informacije povezane i da pokaže različite načine za eskalaciju privilegija u domenu.
### Instalacija
Nakon kreiranja BloodHound CE, ceo projekat je ažuriran radi lakšeg korišćenja sa Docker-om. Najlakši način da se započne je korišćenje njegove unapred konfigurirane Docker Compose konfiguracije.
1. Instalirajte Docker Compose. Ovo bi trebalo da bude uključeno u [Docker Desktop](https://www.docker.com/products/docker-desktop/) instalaciju.
2. Pokrenite:
### Implementacija (Docker CE)
```bash
curl -L https://ghst.ly/getbhce | docker compose -f - up
# Web UI ➜ http://localhost:8080 (user: admin / password from logs)
```
3. Pronađite nasumično generisanu lozinku u izlazu terminala Docker Compose.
4. U pretraživaču idite na http://localhost:8080/ui/login. Prijavite se sa korisničkim imenom **`admin`** i **`nasumično generisanom lozinkom`** koju možete pronaći u logovima docker compose.
### Collectors
Nakon toga, biće potrebno da promenite nasumično generisanu lozinku i bićete spremni sa novim interfejsom, iz kojeg možete direktno preuzeti ingestor-e.
* `SharpHound.exe` / `Invoke-BloodHound` nativna ili PowerShell varijanta
* `AzureHound` Azure AD enumeracija
* **SoaPy + BOFHound** ADWS kolekcija (vidi link na vrhu)
### SharpHound
#### Uobičajeni SharpHound režimi
```powershell
SharpHound.exe --CollectionMethods All # Full sweep (noisy)
SharpHound.exe --CollectionMethods Group,LocalAdmin,Session,Trusts,ACL
SharpHound.exe --Stealth --LDAP # Low noise LDAP only
```
Kolektori generišu JSON koji se unosi putem BloodHound GUI-a.
Imaju nekoliko opcija, ali ako želite da pokrenete SharpHound sa PC-a koji je pridružen domeni, koristeći vaš trenutni korisnički nalog i izvučete sve informacije, možete uraditi:
```
./SharpHound.exe --CollectionMethods All
Invoke-BloodHound -CollectionMethod All
```
> Možete pročitati više o **CollectionMethod** i loop sesiji [ovde](https://support.bloodhoundenterprise.io/hc/en-us/articles/17481375424795-All-SharpHound-Community-Edition-Flags-Explained)
Ako želite da izvršite SharpHound koristeći različite akreditive, možete kreirati CMD netonly sesiju i pokrenuti SharpHound odatle:
```
runas /netonly /user:domain\user "powershell.exe -exec bypass"
```
[**Saznajte više o Bloodhound-u na 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) je alat za pronalaženje **ranjivosti** u Active Directory-ju povezanih sa **Group Policy**. \
Morate **pokrenuti group3r** sa hosta unutar domena koristeći **bilo kog korisnika domena**.
[Group3r](https://github.com/Group3r/Group3r) enumeriše **Group Policy Objects** i ističe pogrešne konfiguracije.
```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/) **procena sigurnosnog stanja AD okruženja** i pruža lep **izveštaj** sa grafikonima.
Da biste ga pokrenuli, možete izvršiti binarni fajl `PingCastle.exe` i započeće **interaktivnu sesiju** koja prikazuje meni opcija. Podrazumevana opcija koju treba koristiti je **`healthcheck`** koja će uspostaviti osnovnu **pregled** **domena**, i pronaći **pogrešne konfiguracije** i **ranjivosti**.
[PingCastle](https://www.pingcastle.com/documentation/) vrši **proveru zdravlja** Active Directory i generiše HTML izveštaj sa ocenom rizika.
```powershell
PingCastle.exe --healthcheck --server corp.local --user bob --password "P@ssw0rd!"
```
{{#include ../../banners/hacktricks-training.md}}