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
757be9fbec
commit
98ca613ad9
@ -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 क्या है?
|
||||
|
||||
Active Directory Web Services (ADWS) **Windows Server 2008 R2 से हर Domain Controller पर डिफ़ॉल्ट रूप से सक्षम है** और TCP **9389** पर सुनता है। नाम के बावजूद, **HTTP शामिल नहीं है**। इसके बजाय, यह सेवा LDAP-शैली के डेटा को एक प्रॉपराइटरी .NET फ्रेमिंग प्रोटोकॉल के स्टैक के माध्यम से उजागर करती है:
|
||||
|
||||
* MC-NBFX → MC-NBFSE → MS-NNS → MC-NMF
|
||||
|
||||
चूंकि ट्रैफ़िक इन बाइनरी SOAP फ्रेमों के अंदर संकुचित होता है और एक असामान्य पोर्ट पर यात्रा करता है, **ADWS के माध्यम से एन्यूमरेशन की संभावना कम होती है कि इसे निरीक्षण, फ़िल्टर या सिग्नेचर किया जाएगा, क्लासिक LDAP/389 & 636 ट्रैफ़िक की तुलना में**। ऑपरेटरों के लिए इसका मतलब है:
|
||||
|
||||
* अधिक छिपा हुआ पुनःसंशोधन – नीली टीमें अक्सर LDAP क्वेरी पर ध्यान केंद्रित करती हैं।
|
||||
* **गैर-Windows होस्ट (Linux, macOS)** से 9389/TCP को SOCKS प्रॉक्सी के माध्यम से टनलिंग करके संग्रह करने की स्वतंत्रता।
|
||||
* वही डेटा जो आप LDAP के माध्यम से प्राप्त करेंगे (उपयोगकर्ता, समूह, ACLs, स्कीमा, आदि) और **लिखने** की क्षमता (जैसे `msDs-AllowedToActOnBehalfOfOtherIdentity` के लिए **RBCD**)।
|
||||
|
||||
> नोट: ADWS का उपयोग कई RSAT GUI/PowerShell टूल द्वारा भी किया जाता है, इसलिए ट्रैफ़िक वैध प्रशासनिक गतिविधियों के साथ मिश्रित हो सकता है।
|
||||
|
||||
## SoaPy – नेटिव पायथन क्लाइंट
|
||||
|
||||
[SoaPy](https://github.com/logangoins/soapy) **शुद्ध पायथन में ADWS प्रोटोकॉल स्टैक का पूर्ण पुनः कार्यान्वयन** है। यह NBFX/NBFSE/NNS/NMF फ्रेमों को बाइट-फॉर-बाइट तैयार करता है, जिससे Unix-जैसे सिस्टम से बिना .NET रनटाइम को छुए संग्रह करना संभव होता है।
|
||||
|
||||
### मुख्य विशेषताएँ
|
||||
|
||||
* **SOCKS के माध्यम से प्रॉक्सीिंग का समर्थन** (C2 इम्प्लांट से उपयोगी)।
|
||||
* LDAP `-q '(objectClass=user)'` के समान बारीक खोज फ़िल्टर।
|
||||
* वैकल्पिक **लिखने** के संचालन ( `--set` / `--delete` )।
|
||||
* BloodHound में सीधे सेवन के लिए **BOFHound आउटपुट मोड**।
|
||||
* मानव पठनीयता की आवश्यकता होने पर टाइमस्टैम्प / `userAccountControl` को सुंदर बनाने के लिए `--parse` ध्वज।
|
||||
|
||||
### स्थापना (ऑपरेटर होस्ट)
|
||||
```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` या SoaPy’s `--proxyHost/--proxyPort` का उपयोग करें।
|
||||
|
||||
2. **रूट डोमेन ऑब्जेक्ट इकट्ठा करें:**
|
||||
```bash
|
||||
soapy ludus.domain/jdoe:'P@ssw0rd'@10.2.10.10 \
|
||||
-q '(objectClass=domain)' \
|
||||
| tee data/domain.log
|
||||
```
|
||||
3. **Configuration NC से ADCS-संबंधित ऑब्जेक्ट्स इकट्ठा करें:**
|
||||
```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 में परिवर्तित करें:**
|
||||
```bash
|
||||
bofhound -i data --zip # produces BloodHound.zip
|
||||
```
|
||||
5. **ZIP अपलोड करें** BloodHound GUI में और साइफर क्वेरीज़ चलाएँ जैसे `MATCH (u:User)-[:Can_Enroll*1..]->(c:CertTemplate) RETURN u,c` ताकि प्रमाणपत्र वृद्धि पथ (ESC1, ESC8, आदि) प्रकट हो सकें।
|
||||
|
||||
### `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....'
|
||||
```
|
||||
`s4u2proxy`/`Rubeus /getticket` के साथ इसे मिलाकर एक पूर्ण **Resource-Based Constrained Delegation** श्रृंखला बनाएं।
|
||||
|
||||
## Detection & Hardening
|
||||
|
||||
### Verbose ADDS Logging
|
||||
|
||||
Domain Controllers पर निम्नलिखित रजिस्ट्री कुंजियों को सक्षम करें ताकि ADWS (और 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
|
||||
```
|
||||
Events will appear under **Directory-Service** with the full LDAP filter, even when the query arrived via ADWS.
|
||||
|
||||
### SACL Canary Objects
|
||||
|
||||
1. एक डमी ऑब्जेक्ट बनाएं (जैसे कि निष्क्रिय उपयोगकर्ता `CanaryUser`)।
|
||||
2. _Everyone_ प्रिंसिपल के लिए एक **Audit** ACE जोड़ें, जो **ReadProperty** पर ऑडिट किया गया हो।
|
||||
3. जब भी एक हमलावर `(servicePrincipalName=*)`, `(objectClass=user)` आदि करता है, तो DC **Event 4662** उत्पन्न करता है जिसमें असली उपयोगकर्ता SID होता है - भले ही अनुरोध प्रॉक्सी किया गया हो या ADWS से उत्पन्न हुआ हो।
|
||||
|
||||
Elastic pre-built rule example:
|
||||
```kql
|
||||
(event.code:4662 and not user.id:"S-1-5-18") and winlog.event_data.AccessMask:"0x10"
|
||||
```
|
||||
## Tooling Summary
|
||||
|
||||
| Purpose | Tool | Notes |
|
||||
|---------|------|-------|
|
||||
| ADWS enumeration | [SoaPy](https://github.com/logangoins/soapy) | Python, SOCKS, पढ़ें/लिखें |
|
||||
| BloodHound ingest | [BOFHound](https://github.com/bohops/BOFHound) | SoaPy/ldapsearch लॉग को परिवर्तित करता है |
|
||||
| Cert compromise | [Certipy](https://github.com/ly4k/Certipy) | समान SOCKS के माध्यम से प्रॉक्सी किया जा सकता है |
|
||||
|
||||
## 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}}
|
@ -1,87 +1,78 @@
|
||||
# BloodHound & Other AD Enum Tools
|
||||
# BloodHound & अन्य Active Directory Enumeration Tools
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
{{#ref}}
|
||||
adws-enumeration.md
|
||||
{{#endref}}
|
||||
|
||||
> नोट: यह पृष्ठ कुछ सबसे उपयोगी उपयोगिताओं को **enumerate** और **visualise** Active Directory संबंधों के लिए समूहित करता है। चुपके से **Active Directory Web Services (ADWS)** चैनल के माध्यम से संग्रह के लिए ऊपर दिए गए संदर्भ की जांच करें।
|
||||
|
||||
---
|
||||
|
||||
## AD Explorer
|
||||
|
||||
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) Sysinternal Suite से है:
|
||||
[AD Explorer](https://docs.microsoft.com/en-us/sysinternals/downloads/adexplorer) (Sysinternals) एक उन्नत **AD viewer & editor** है जो अनुमति देता है:
|
||||
|
||||
> एक उन्नत Active Directory (AD) दर्शक और संपादक। आप AD Explorer का उपयोग AD डेटाबेस में आसानी से नेविगेट करने, पसंदीदा स्थानों को परिभाषित करने, ऑब्जेक्ट गुणों और विशेषताओं को बिना संवाद बॉक्स खोले देखने, अनुमतियों को संपादित करने, एक ऑब्जेक्ट का स्कीमा देखने, और जटिल खोजें करने के लिए कर सकते हैं जिन्हें आप सहेज सकते हैं और पुनः निष्पादित कर सकते हैं।
|
||||
* निर्देशिका पेड़ का GUI ब्राउज़िंग
|
||||
* ऑब्जेक्ट विशेषताओं और सुरक्षा विवरणों का संपादन
|
||||
* ऑफ़लाइन विश्लेषण के लिए स्नैपशॉट निर्माण / तुलना
|
||||
|
||||
### Snapshots
|
||||
### त्वरित उपयोग
|
||||
|
||||
AD Explorer एक AD के स्नैपशॉट बना सकता है ताकि आप इसे ऑफ़लाइन चेक कर सकें।\
|
||||
इसे ऑफ़लाइन कमजोरियों का पता लगाने के लिए या समय के साथ AD DB की विभिन्न अवस्थाओं की तुलना करने के लिए उपयोग किया जा सकता है।
|
||||
1. उपकरण शुरू करें और किसी भी डोमेन क्रेडेंशियल के साथ `dc01.corp.local` से कनेक्ट करें।
|
||||
2. `File ➜ Create Snapshot` के माध्यम से एक ऑफ़लाइन स्नैपशॉट बनाएं।
|
||||
3. अनुमति परिवर्तनों को देखने के लिए `File ➜ Compare` के साथ दो स्नैपशॉट की तुलना करें।
|
||||
|
||||
आपको कनेक्ट करने के लिए उपयोगकर्ता नाम, पासवर्ड, और दिशा की आवश्यकता होगी (किसी भी AD उपयोगकर्ता की आवश्यकता है)।
|
||||
|
||||
AD का स्नैपशॉट लेने के लिए, `File` --> `Create Snapshot` पर जाएं और स्नैपशॉट के लिए एक नाम दर्ज करें।
|
||||
---
|
||||
|
||||
## ADRecon
|
||||
|
||||
[**ADRecon**](https://github.com/adrecon/ADRecon) एक उपकरण है जो AD वातावरण से विभिन्न कलाकृतियों को निकालता और संयोजित करता है। जानकारी को एक **विशेष रूप से प्रारूपित** Microsoft Excel **रिपोर्ट** में प्रस्तुत किया जा सकता है जिसमें विश्लेषण को सुविधाजनक बनाने और लक्षित AD वातावरण की वर्तमान स्थिति का समग्र चित्र प्रदान करने के लिए मेट्रिक्स के साथ सारांश दृश्य शामिल होते हैं।
|
||||
```bash
|
||||
# Run it
|
||||
.\ADRecon.ps1
|
||||
[ADRecon](https://github.com/adrecon/ADRecon) एक डोमेन से एक बड़े सेट के आर्टिफैक्ट (ACLs, GPOs, trusts, CA templates …) को निकालता है और एक **Excel रिपोर्ट** उत्पन्न करता है।
|
||||
```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 (ग्राफ दृश्यांकन)
|
||||
|
||||
> BloodHound एक एकल पृष्ठ Javascript वेब एप्लिकेशन है, जो [Linkurious](http://linkurio.us/) के शीर्ष पर बनाया गया है, [Electron](http://electron.atom.io/) के साथ संकलित किया गया है, जिसमें एक [Neo4j](https://neo4j.com/) डेटाबेस है जिसे C# डेटा कलेक्टर द्वारा फीड किया गया है।
|
||||
[BloodHound](https://github.com/BloodHoundAD/BloodHound) ग्राफ सिद्धांत + Neo4j का उपयोग करके ऑन-प्रेम AD और Azure AD के भीतर छिपे हुए विशेषाधिकार संबंधों को प्रकट करता है।
|
||||
|
||||
BloodHound ग्राफ सिद्धांत का उपयोग करके Active Directory या Azure वातावरण के भीतर छिपे हुए और अक्सर अनपेक्षित संबंधों को प्रकट करता है। हमलावर BloodHound का उपयोग करके आसानी से अत्यधिक जटिल हमले के रास्तों की पहचान कर सकते हैं, जिन्हें अन्यथा जल्दी पहचानना असंभव होगा। रक्षक BloodHound का उपयोग करके उन ही हमले के रास्तों की पहचान और समाप्ति कर सकते हैं। दोनों नीली और लाल टीमें BloodHound का उपयोग करके Active Directory या Azure वातावरण में विशेषाधिकार संबंधों की गहरी समझ प्राप्त कर सकती हैं।
|
||||
|
||||
तो, [Bloodhound ](https://github.com/BloodHoundAD/BloodHound) एक अद्भुत उपकरण है जो स्वचालित रूप से एक डोमेन को सूचीबद्ध कर सकता है, सभी जानकारी को सहेज सकता है, संभावित विशेषाधिकार वृद्धि के रास्तों को खोज सकता है और सभी जानकारी को ग्राफ के माध्यम से दिखा सकता है।
|
||||
|
||||
Booldhound 2 मुख्य भागों से बना है: **ingestors** और **visualisation application**।
|
||||
|
||||
**ingestors** का उपयोग **डोमेन को सूचीबद्ध करने और सभी जानकारी को निकालने** के लिए किया जाता है, एक प्रारूप में जिसे विज़ुअलाइजेशन एप्लिकेशन समझेगा।
|
||||
|
||||
**visualisation application neo4j का उपयोग करता है** यह दिखाने के लिए कि सभी जानकारी कैसे संबंधित है और डोमेन में विशेषाधिकार बढ़ाने के विभिन्न तरीकों को दिखाने के लिए।
|
||||
|
||||
### Installation
|
||||
|
||||
BloodHound CE के निर्माण के बाद, पूरे प्रोजेक्ट को Docker के साथ उपयोग में आसानी के लिए अपडेट किया गया था। शुरू करने का सबसे आसान तरीका इसकी पूर्व-निर्धारित Docker Compose कॉन्फ़िगरेशन का उपयोग करना है।
|
||||
|
||||
1. Docker Compose स्थापित करें। यह [Docker Desktop](https://www.docker.com/products/docker-desktop/) स्थापना के साथ शामिल होना चाहिए।
|
||||
2. चलाएँ:
|
||||
### तैनाती (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 में यादृच्छिक रूप से उत्पन्न पासवर्ड को खोजें।
|
||||
4. एक ब्राउज़र में, http://localhost:8080/ui/login पर जाएं। उपयोगकर्ता नाम **`admin`** और एक **`यादृच्छिक रूप से उत्पन्न पासवर्ड`** के साथ लॉगिन करें जिसे आप docker compose के लॉग में पा सकते हैं।
|
||||
### Collectors
|
||||
|
||||
इसके बाद, आपको यादृच्छिक रूप से उत्पन्न पासवर्ड को बदलने की आवश्यकता होगी और आपके पास नया इंटरफ़ेस तैयार होगा, जिससे आप सीधे ingestors डाउनलोड कर सकते हैं।
|
||||
* `SharpHound.exe` / `Invoke-BloodHound` – मूल या PowerShell संस्करण
|
||||
* `AzureHound` – Azure AD गणना
|
||||
* **SoaPy + BOFHound** – ADWS संग्रह (ऊपर लिंक देखें)
|
||||
|
||||
### SharpHound
|
||||
#### सामान्य SharpHound मोड
|
||||
```powershell
|
||||
SharpHound.exe --CollectionMethods All # Full sweep (noisy)
|
||||
SharpHound.exe --CollectionMethods Group,LocalAdmin,Session,Trusts,ACL
|
||||
SharpHound.exe --Stealth --LDAP # Low noise LDAP only
|
||||
```
|
||||
कलेक्टर्स JSON उत्पन्न करते हैं जिसे BloodHound GUI के माध्यम से ग्रहण किया जाता है।
|
||||
|
||||
उनके पास कई विकल्प हैं लेकिन यदि आप डोमेन से जुड़े पीसी से SharpHound चलाना चाहते हैं, अपने वर्तमान उपयोगकर्ता का उपयोग करके और सभी जानकारी निकालना चाहते हैं, तो आप कर सकते हैं:
|
||||
```
|
||||
./SharpHound.exe --CollectionMethods All
|
||||
Invoke-BloodHound -CollectionMethod All
|
||||
```
|
||||
> आप **CollectionMethod** और लूप सत्र के बारे में अधिक पढ़ सकते हैं [यहाँ](https://support.bloodhoundenterprise.io/hc/en-us/articles/17481375424795-All-SharpHound-Community-Edition-Flags-Explained)
|
||||
|
||||
यदि आप विभिन्न क्रेडेंशियल का उपयोग करके SharpHound को निष्पादित करना चाहते हैं, तो आप एक CMD netonly सत्र बना सकते हैं और वहां से SharpHound चला सकते हैं:
|
||||
```
|
||||
runas /netonly /user:domain\user "powershell.exe -exec bypass"
|
||||
```
|
||||
[**Bloodhound के बारे में अधिक जानें 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) एक उपकरण है जो **Active Directory** से संबंधित **Group Policy** में **vulnerabilities** खोजने के लिए है। \
|
||||
आपको **group3r** को डोमेन के अंदर किसी भी **domain user** का उपयोग करके एक होस्ट से **चलाना** होगा।
|
||||
[Group3r](https://github.com/Group3r/Group3r) **Group Policy Objects** की गणना करता है और गलत कॉन्फ़िगरेशन को उजागर करता है।
|
||||
```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 वातावरण की सुरक्षा स्थिति का मूल्यांकन करता है** और **ग्राफ** के साथ एक अच्छा **रिपोर्ट** प्रदान करता है।
|
||||
|
||||
इसे चलाने के लिए, बाइनरी `PingCastle.exe` को निष्पादित कर सकते हैं और यह विकल्पों का एक मेनू प्रस्तुत करते हुए एक **इंटरएक्टिव सत्र** शुरू करेगा। उपयोग करने के लिए डिफ़ॉल्ट विकल्प **`healthcheck`** है जो **डोमेन** का एक बुनियादी **अवलोकन** स्थापित करेगा, और **गलत कॉन्फ़िगरेशन** और **कमजोरियों** को खोजेगा।
|
||||
|
||||
[PingCastle](https://www.pingcastle.com/documentation/) Active Directory का **स्वास्थ्य-चेक** करता है और जोखिम स्कोरिंग के साथ एक HTML रिपोर्ट उत्पन्न करता है।
|
||||
```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