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
4a36ae0c7d
commit
98977824e2
@ -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}}
|
||||
|
||||
## ADWS Nedir?
|
||||
|
||||
Active Directory Web Services (ADWS), **Windows Server 2008 R2'den itibaren her Domain Controller'da varsayılan olarak etkinleştirilmiştir** ve TCP **9389** üzerinde dinler. İsimden dolayı, **HTTP kullanılmamaktadır**. Bunun yerine, hizmet, özel .NET çerçeve protokolleri yığını aracılığıyla LDAP tarzı verileri açığa çıkarır:
|
||||
|
||||
* MC-NBFX → MC-NBFSE → MS-NNS → MC-NMF
|
||||
|
||||
Trafik bu ikili SOAP çerçeveleri içinde kapsüllenmiş olduğundan ve alışılmadık bir port üzerinden seyahat ettiğinden, **ADWS üzerinden yapılan enumeration, klasik LDAP/389 & 636 trafiğine göre çok daha az muhtemel olarak incelenecek, filtrelenecek veya imzalanacaktır**. Operatörler için bu, şunları ifade eder:
|
||||
|
||||
* Daha gizli keşif – Mavi takımlar genellikle LDAP sorgularına odaklanır.
|
||||
* **Windows dışı hostlardan (Linux, macOS)** 9389/TCP'yi bir SOCKS proxy üzerinden tünelleme özgürlüğü.
|
||||
* LDAP üzerinden elde edeceğiniz aynı veriler (kullanıcılar, gruplar, ACL'ler, şema vb.) ve **yazma** yeteneği (örneğin, **RBCD** için `msDs-AllowedToActOnBehalfOfOtherIdentity`).
|
||||
|
||||
> NOT: ADWS, birçok RSAT GUI/PowerShell aracı tarafından da kullanıldığından, trafik meşru yönetici etkinliği ile karışabilir.
|
||||
|
||||
## SoaPy – Yerel Python İstemcisi
|
||||
|
||||
[SoaPy](https://github.com/logangoins/soapy), **ADWS protokol yığınının saf Python'da tam yeniden uygulanmasıdır**. NBFX/NBFSE/NNS/NMF çerçevelerini byte byte oluşturur, böylece Unix benzeri sistemlerden .NET çalışma zamanına dokunmadan veri toplayabilirsiniz.
|
||||
|
||||
### Ana Özellikler
|
||||
|
||||
* **SOCKS üzerinden proxy desteği** (C2 implantlarından faydalı).
|
||||
* LDAP `-q '(objectClass=user)'` ile aynı ince ayar arama filtreleri.
|
||||
* Opsiyonel **yazma** işlemleri (`--set` / `--delete`).
|
||||
* BloodHound'a doğrudan alım için **BOFHound çıktı modu**.
|
||||
* İnsan okunabilirliği gerektiğinde zaman damgalarını / `userAccountControl`'ü güzelleştirmek için `--parse` bayrağı.
|
||||
|
||||
### Kurulum (operatör host)
|
||||
```bash
|
||||
python3 -m pip install soapy-adws # or git clone && pip install -r requirements.txt
|
||||
```
|
||||
## Stealth AD Collection Workflow
|
||||
|
||||
Aşağıdaki iş akışı, **domain & ADCS nesnelerini** ADWS üzerinden nasıl listeleyeceğinizi, bunları BloodHound JSON formatına dönüştüreceğinizi ve sertifika tabanlı saldırı yollarını nasıl avlayacağınızı göstermektedir – tüm bunlar Linux'tan:
|
||||
|
||||
1. **Hedef ağdan kutunuza 9389/TCP tüneli açın** (örneğin Chisel, Meterpreter, SSH dinamik port yönlendirmesi vb. aracılığıyla). `export HTTPS_PROXY=socks5://127.0.0.1:1080` veya SoaPy’nin `--proxyHost/--proxyPort` seçeneğini kullanın.
|
||||
|
||||
2. **Kök alan nesnesini toplayın:**
|
||||
```bash
|
||||
soapy ludus.domain/jdoe:'P@ssw0rd'@10.2.10.10 \
|
||||
-q '(objectClass=domain)' \
|
||||
| tee data/domain.log
|
||||
```
|
||||
3. **Yapılandırma NC'den ADCS ile ilgili nesneleri toplayın:**
|
||||
```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. **BloodHound'a Dönüştür:**
|
||||
```bash
|
||||
bofhound -i data --zip # produces BloodHound.zip
|
||||
```
|
||||
5. **ZIP'i** BloodHound GUI'sine yükleyin ve `MATCH (u:User)-[:Can_Enroll*1..]->(c:CertTemplate) RETURN u,c` gibi cypher sorguları çalıştırarak sertifika yükseltme yollarını (ESC1, ESC8, vb.) ortaya çıkarın.
|
||||
|
||||
### `msDs-AllowedToActOnBehalfOfOtherIdentity` (RBCD) Yazma
|
||||
```bash
|
||||
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` ile birleştirerek tam bir **Kaynak Tabanlı Kısıtlı Delegasyon** zinciri oluşturun.
|
||||
|
||||
## Tespit ve Güçlendirme
|
||||
|
||||
### Ayrıntılı ADDS Günlüğü
|
||||
|
||||
ADWS (ve LDAP) kaynaklı pahalı / verimsiz aramaları ortaya çıkarmak için Alan Denetleyicileri üzerinde aşağıdaki kayıt defteri anahtarlarını etkinleştirin:
|
||||
```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
|
||||
```
|
||||
Olaylar **Directory-Service** altında tam LDAP filtresi ile görünecektir, sorgu ADWS üzerinden gelse bile.
|
||||
|
||||
### SACL Canary Nesneleri
|
||||
|
||||
1. Bir sahte nesne oluşturun (örneğin, devre dışı kullanıcı `CanaryUser`).
|
||||
2. _Everyone_ ilkesi için **Audit** ACE'si ekleyin, **ReadProperty** üzerinde denetlendi.
|
||||
3. Bir saldırgan `(servicePrincipalName=*)`, `(objectClass=user)` vb. işlemleri gerçekleştirdiğinde, DC gerçek kullanıcı SID'sini içeren **Event 4662**'yi yayar – istek proxy üzerinden gelse veya ADWS'den kaynaklansa bile.
|
||||
|
||||
Elastic önceden oluşturulmuş kural örneği:
|
||||
```kql
|
||||
(event.code:4662 and not user.id:"S-1-5-18") and winlog.event_data.AccessMask:"0x10"
|
||||
```
|
||||
## Araç Özeti
|
||||
|
||||
| Amaç | Araç | Notlar |
|
||||
|------|------|--------|
|
||||
| ADWS enumeration | [SoaPy](https://github.com/logangoins/soapy) | Python, SOCKS, okuma/yazma |
|
||||
| BloodHound ingest | [BOFHound](https://github.com/bohops/BOFHound) | SoaPy/ldapsearch günlüklerini dönüştürür |
|
||||
| Sertifika ihlali | [Certipy](https://github.com/ly4k/Certipy) | Aynı SOCKS üzerinden proxy yapılabilir |
|
||||
|
||||
## Referanslar
|
||||
|
||||
* [SpecterOps – SOAP(y) Kullanmayı Unutmayın – ADWS Kullanarak Gizli AD Toplama için Bir Operatör Rehberi](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 spesifikasyonları](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nbfx/)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
@ -1,87 +1,78 @@
|
||||
# BloodHound & Diğer AD Enum Araçları
|
||||
# BloodHound & Diğer Active Directory Enumeration Araçları
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
{{#ref}}
|
||||
adws-enumeration.md
|
||||
{{#endref}}
|
||||
|
||||
> NOT: Bu sayfa, Active Directory ilişkilerini **enumerate** ve **visualise** etmek için en kullanışlı araçlardan bazılarını gruplar. Gizli **Active Directory Web Services (ADWS)** kanalı üzerinden toplama için yukarıdaki referansa bakın.
|
||||
|
||||
---
|
||||
|
||||
## AD Explorer
|
||||
|
||||
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) Sysinternal Suite'ten gelmektedir:
|
||||
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) (Sysinternals), aşağıdakileri sağlayan gelişmiş bir **AD görüntüleyici ve editör**'dür:
|
||||
|
||||
> Gelişmiş bir Active Directory (AD) görüntüleyici ve düzenleyicisidir. AD Explorer'ı, bir AD veritabanında kolayca gezinmek, favori konumları tanımlamak, nesne özelliklerini ve niteliklerini diyalog kutuları açmadan görüntülemek, izinleri düzenlemek, bir nesnenin şemasını görüntülemek ve kaydedip yeniden çalıştırabileceğiniz karmaşık aramalar gerçekleştirmek için kullanabilirsiniz.
|
||||
* Dizin ağacının GUI taraması
|
||||
* Nesne özniteliklerinin ve güvenlik tanımlarının düzenlenmesi
|
||||
* Çevrimdışı analiz için anlık görüntü oluşturma / karşılaştırma
|
||||
|
||||
### Anlık Görüntüler
|
||||
### Hızlı kullanım
|
||||
|
||||
AD Explorer, AD'nin anlık görüntülerini oluşturabilir, böylece çevrimdışı kontrol edebilirsiniz.\
|
||||
Çevrimdışı olarak zafiyetleri keşfetmek veya AD DB'nin farklı durumlarını zaman içinde karşılaştırmak için kullanılabilir.
|
||||
1. Aracı başlatın ve herhangi bir alan kimlik bilgisi ile `dc01.corp.local`'a bağlanın.
|
||||
2. `File ➜ Create Snapshot` ile çevrimdışı bir anlık görüntü oluşturun.
|
||||
3. İzin farklılıklarını tespit etmek için `File ➜ Compare` ile iki anlık görüntüyü karşılaştırın.
|
||||
|
||||
Bağlanmak için kullanıcı adı, şifre ve yön gerekecektir (herhangi bir AD kullanıcısı gereklidir).
|
||||
|
||||
AD'nin anlık görüntüsünü almak için `File` --> `Create Snapshot` yolunu izleyin ve anlık görüntü için bir isim girin.
|
||||
---
|
||||
|
||||
## ADRecon
|
||||
|
||||
[**ADRecon**](https://github.com/adrecon/ADRecon) bir AD ortamından çeşitli artefaktları çıkaran ve birleştiren bir araçtır. Bilgiler, analiz kolaylığı sağlamak ve hedef AD ortamının mevcut durumu hakkında bütünsel bir resim sunmak için metriklerle birlikte özet görünümler içeren **özel formatlanmış** Microsoft Excel **raporu** şeklinde sunulabilir.
|
||||
```bash
|
||||
# Run it
|
||||
.\ADRecon.ps1
|
||||
[ADRecon](https://github.com/adrecon/ADRecon), bir alan (ACL'ler, GPO'lar, güvenler, CA şablonları ...) üzerinden büyük bir artefakt seti çıkarır ve bir **Excel raporu** üretir.
|
||||
```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 (grafik görselleştirme)
|
||||
|
||||
> BloodHound, [Linkurious](http://linkurio.us/) üzerine inşa edilmiş, [Electron](http://electron.atom.io/) ile derlenmiş, C# veri toplayıcı tarafından beslenen bir [Neo4j](https://neo4j.com/) veritabanına sahip tek sayfa Javascript web uygulamasıdır.
|
||||
[BloodHound](https://github.com/BloodHoundAD/BloodHound), yerel AD ve Azure AD içindeki gizli ayrıcalık ilişkilerini ortaya çıkarmak için grafik teorisi + Neo4j kullanır.
|
||||
|
||||
BloodHound, bir Active Directory veya Azure ortamındaki gizli ve genellikle istenmeyen ilişkileri ortaya çıkarmak için grafik teorisini kullanır. Saldırganlar, BloodHound'u kullanarak, aksi takdirde hızlı bir şekilde tanımlanması imkansız olan son derece karmaşık saldırı yollarını kolayca belirleyebilirler. Savunucular, BloodHound'u kullanarak aynı saldırı yollarını tanımlayıp ortadan kaldırabilirler. Hem mavi hem de kırmızı takımlar, BloodHound'u kullanarak bir Active Directory veya Azure ortamındaki ayrıcalık ilişkilerini daha derinlemesine anlamak için kolayca faydalanabilirler.
|
||||
|
||||
Bu nedenle, [Bloodhound ](https://github.com/BloodHoundAD/BloodHound) otomatik olarak bir alanı listeleyebilen, tüm bilgileri kaydedebilen, olası ayrıcalık yükseltme yollarını bulabilen ve tüm bilgileri grafikler kullanarak gösteren harika bir araçtır.
|
||||
|
||||
BloodHound, 2 ana bölümden oluşur: **ingestors** ve **görselleştirme uygulaması**.
|
||||
|
||||
**Ingestors**, **alanı listelemek ve tüm bilgileri** görselleştirme uygulamasının anlayacağı bir formatta çıkarmak için kullanılır.
|
||||
|
||||
**Görselleştirme uygulaması, neo4j** kullanarak tüm bilgilerin nasıl ilişkili olduğunu gösterir ve alandaki ayrıcalıkları yükseltmenin farklı yollarını sergiler.
|
||||
|
||||
### Kurulum
|
||||
|
||||
BloodHound CE'nin oluşturulmasından sonra, tüm proje Docker ile kullanım kolaylığı için güncellendi. Başlamak için en kolay yol, önceden yapılandırılmış Docker Compose yapılandırmasını kullanmaktır.
|
||||
|
||||
1. Docker Compose'u kurun. Bu, [Docker Desktop](https://www.docker.com/products/docker-desktop/) kurulumuyla birlikte gelmelidir.
|
||||
2. Çalıştırın:
|
||||
### Dağıtım (Docker CE)
|
||||
```bash
|
||||
curl -L https://ghst.ly/getbhce | docker compose -f - up
|
||||
# Web UI ➜ http://localhost:8080 (user: admin / password from logs)
|
||||
```
|
||||
3. Docker Compose'un terminal çıktısında rastgele oluşturulmuş şifreyi bulun.
|
||||
4. Bir tarayıcıda, http://localhost:8080/ui/login adresine gidin. **`admin`** kullanıcı adı ve docker compose günlüklerinde bulabileceğiniz **`rastgele oluşturulmuş şifre`** ile giriş yapın.
|
||||
### Toplayıcılar
|
||||
|
||||
Bundan sonra rastgele oluşturulmuş şifreyi değiştirmeniz gerekecek ve doğrudan ingestorları indirebileceğiniz yeni arayüz hazır olacak.
|
||||
* `SharpHound.exe` / `Invoke-BloodHound` – yerel veya PowerShell varyantı
|
||||
* `AzureHound` – Azure AD sayımı
|
||||
* **SoaPy + BOFHound** – ADWS toplama (üstteki bağlantıya bakın)
|
||||
|
||||
### SharpHound
|
||||
#### Yaygın SharpHound modları
|
||||
```powershell
|
||||
SharpHound.exe --CollectionMethods All # Full sweep (noisy)
|
||||
SharpHound.exe --CollectionMethods Group,LocalAdmin,Session,Trusts,ACL
|
||||
SharpHound.exe --Stealth --LDAP # Low noise LDAP only
|
||||
```
|
||||
Toplayıcılar, BloodHound GUI aracılığıyla alınan JSON'lar üretir.
|
||||
|
||||
Birçok seçeneği var ama eğer alan adına katılmış bir PC'den SharpHound'u çalıştırmak ve mevcut kullanıcıyı kullanarak tüm bilgileri çıkarmak istiyorsanız, şunları yapabilirsiniz:
|
||||
```
|
||||
./SharpHound.exe --CollectionMethods All
|
||||
Invoke-BloodHound -CollectionMethod All
|
||||
```
|
||||
> **CollectionMethod** ve döngü oturumu hakkında daha fazla bilgiye [buradan](https://support.bloodhoundenterprise.io/hc/en-us/articles/17481375424795-All-SharpHound-Community-Edition-Flags-Explained) ulaşabilirsiniz.
|
||||
|
||||
Farklı kimlik bilgileri kullanarak SharpHound'u çalıştırmak isterseniz, bir CMD netonly oturumu oluşturabilir ve oradan SharpHound'u çalıştırabilirsiniz:
|
||||
```
|
||||
runas /netonly /user:domain\user "powershell.exe -exec bypass"
|
||||
```
|
||||
[**Bloodhound hakkında daha fazla bilgi edinin ired.team'de.**](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) Active Directory ile ilişkili **Group Policy**'deki **açıkları** bulmak için bir araçtır. \
|
||||
**group3r'ı** herhangi bir **domain kullanıcısı** kullanarak, alan içindeki bir hosttan **çalıştırmanız** gerekir.
|
||||
[Group3r](https://github.com/Group3r/Group3r), **Group Policy Objects**'ı listeleyerek yanlış yapılandırmaları vurgular.
|
||||
```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/) **AD ortamının güvenlik durumunu değerlendirir** ve grafiklerle güzel bir **rapor** sunar.
|
||||
|
||||
Çalıştırmak için, `PingCastle.exe` ikili dosyasını çalıştırabilir ve seçeneklerin bir menüsünü sunan bir **etkileşimli oturum** başlatır. Kullanılacak varsayılan seçenek **`healthcheck`** olup, **alan** hakkında bir temel **genel bakış** oluşturacak ve **yanlış yapılandırmaları** ve **zayıflıkları** bulacaktır.
|
||||
|
||||
[PingCastle](https://www.pingcastle.com/documentation/) Active Directory'nin **sağlık kontrolünü** gerçekleştirir ve risk puanlaması ile bir HTML raporu oluşturur.
|
||||
```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