mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/windows-hardening/active-directory-methodology/adws-enu
This commit is contained in:
parent
3f8a5221d1
commit
bec35cbca2
@ -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)
|
||||
|
@ -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 SoaPy’s `--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}}
|
@ -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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user