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

This commit is contained in:
Translator 2025-07-28 12:12:55 +00:00
parent 0a581d9212
commit 765ee7f30a
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}}
## Що таке ADWS?
Active Directory Web Services (ADWS) **включено за замовчуванням на кожному контролері домену з Windows Server 2008 R2** і слухає на TCP **9389**. Незважаючи на назву, **HTTP не використовується**. Натомість, служба відкриває дані в стилі LDAP через стек власних протоколів .NET:
* MC-NBFX → MC-NBFSE → MS-NNS → MC-NMF
Оскільки трафік інкапсульований всередині цих бінарних SOAP-рамок і проходить через незвичайний порт, **перерахування через ADWS значно менш імовірно, що буде перевірено, відфільтровано або підписано, ніж класичний трафік LDAP/389 та 636**. Для операторів це означає:
* Менш помітне розвідка команди Blue часто зосереджуються на запитах LDAP.
* Свобода збору з **не-Windows хостів (Linux, macOS)** шляхом тунелювання 9389/TCP через SOCKS-проксі.
* Ті ж дані, які ви отримали б через LDAP (користувачі, групи, ACL, схема тощо) та можливість виконувати **записи** (наприклад, `msDs-AllowedToActOnBehalfOfOtherIdentity` для **RBCD**).
> ПРИМІТКА: ADWS також використовується багатьма інструментами RSAT GUI/PowerShell, тому трафік може змішуватися з легітимною адміністративною діяльністю.
## SoaPy Нативний Python-клієнт
[SoaPy](https://github.com/logangoins/soapy) є **повною повторною реалізацією стеку протоколів ADWS на чистому Python**. Він створює рамки NBFX/NBFSE/NNS/NMF байт за байтом, що дозволяє збір даних з Unix-подібних систем без взаємодії з .NET runtime.
### Ключові особливості
* Підтримує **проксіювання через SOCKS** (корисно з C2 імплантами).
* Тонко налаштовані фільтри пошуку, ідентичні LDAP `-q '(objectClass=user)'`.
* Додаткові **операції запису** ( `--set` / `--delete` ).
* **Режим виводу BOFHound** для прямого споживання в BloodHound.
* Параметр `--parse` для форматування часових міток / `userAccountControl`, коли потрібна людська читабельність.
### Встановлення (хост оператора)
```bash
python3 -m pip install soapy-adws # or git clone && pip install -r requirements.txt
```
## Stealth AD Collection Workflow
Наступний робочий процес показує, як перерахувати **об'єкти домену та ADCS** через ADWS, конвертувати їх у BloodHound JSON та шукати шляхи атак на основі сертифікатів все це з Linux:
1. **Tunnel 9389/TCP** з цільової мережі на вашу машину (наприклад, через Chisel, Meterpreter, SSH динамічний порт-форвард тощо). Експортуйте `export HTTPS_PROXY=socks5://127.0.0.1:1080` або використовуйте SoaPys `--proxyHost/--proxyPort`.
2. **Зберіть об'єкт кореневого домену:**
```bash
soapy ludus.domain/jdoe:'P@ssw0rd'@10.2.10.10 \
-q '(objectClass=domain)' \
| tee data/domain.log
```
3. **Збирайте об'єкти, пов'язані з ADCS, з 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. **Перетворити на BloodHound:**
```bash
bofhound -i data --zip # produces BloodHound.zip
```
5. **Завантажте ZIP** в BloodHound GUI та виконайте запити cypher, такі як `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** ланцюга.
## Виявлення та зміцнення
### Докладне ведення журналів ADDS
Увімкніть наступні ключі реєстру на контролерах домену, щоб виявити дорогі / неефективні запити, що надходять з 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
```
Події з'являться під **Directory-Service** з повним LDAP-фільтром, навіть коли запит надійшов через ADWS.
### SACL Canary Objects
1. Створіть фіктивний об'єкт (наприклад, вимкнений користувач `CanaryUser`).
2. Додайте **Audit** ACE для принципала _Everyone_, аудиторія на **ReadProperty**.
3. Коли зловмисник виконує `(servicePrincipalName=*)`, `(objectClass=user)` тощо, DC генерує **Event 4662**, який містить реальний SID користувача навіть коли запит проксований або походить з ADWS.
Приклад попередньо створеного правила Elastic:
```kql
(event.code:4662 and not user.id:"S-1-5-18") and winlog.event_data.AccessMask:"0x10"
```
## Підсумок інструментів
| Мета | Інструмент | Примітки |
|------|------------|----------|
| Перерахунок ADWS | [SoaPy](https://github.com/logangoins/soapy) | Python, SOCKS, читання/запис |
| Імпорт BloodHound | [BOFHound](https://github.com/bohops/BOFHound) | Конвертує журнали SoaPy/ldapsearch |
| Компрометація сертифіката | [Certipy](https://github.com/ly4k/Certipy) | Може бути проксійований через той же SOCKS |
## Посилання
* [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: Ця сторінка об'єднує деякі з найкорисніших утиліт для **перерахунку** та **візуалізації** відносин 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**, який дозволяє:
> Розширений переглядач та редактор Active Directory (AD). Ви можете використовувати AD Explorer для легкого навігації в базі даних AD, визначення улюблених місць, перегляду властивостей об'єктів та атрибутів без відкриття діалогових вікон, редагування дозволів, перегляду схеми об'єкта та виконання складних пошуків, які ви можете зберегти та повторно виконати.
* Графічний перегляд дерева каталогу
* Редагування атрибутів об'єктів та дескрипторів безпеки
* Створення / порівняння знімків для офлайн-аналізу
### Snapshots
### Швидке використання
AD Explorer може створювати знімки AD, щоб ви могли перевірити його офлайн.\
Його можна використовувати для виявлення вразливостей офлайн або для порівняння різних станів бази даних AD з часом.
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) витягує великий набір артефактів з домену (ACL, GPO, довіри, шаблони CA …) і створює **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) - це чудовий інструмент, який може автоматично перераховувати домен, зберігати всю інформацію, знаходити можливі шляхи ескалації привілеїв і показувати всю інформацію за допомогою графіків.
BloodHound складається з 2 основних частин: **інгесторів** та **додатку візуалізації**.
**Інгестори** використовуються для **перерахунку домену та витягування всієї інформації** в форматі, який зрозуміє додаток візуалізації.
**Додаток візуалізації використовує 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.
### Збирачі
Після цього вам потрібно буде змінити випадково згенерований пароль, і у вас буде новий інтерфейс, з якого ви зможете безпосередньо завантажити 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, пов'язаних з **Груповою Політикою**. \
Вам потрібно **запустити group3r** з хоста всередині домену, використовуючи **будь-якого доменного користувача**.
[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}}