Active Directory и типовые сервисы
Раздел 8.10, шаг 8 из 9. Предыдущий — эксплуатация; далее — pivot и отчёты.
Active Directory — модель угроз
Active Directory (AD) — служба каталогов Microsoft — пользователи, группы, компьютеры, Group Policy, Kerberos, LDAP. Компромисс AD часто означает компромисс всей организации (Domain Admin → все рабочие станции, файловые серверы, почта).
Ключевые сущности:
| Сущность | Роль |
|---|---|
| Domain | Граница аутентификации corp.local |
| DC (Domain Controller) | Хранит NTDS.dit, выдаёт TGT/TGS |
| OU | Организационные unit для GPO |
| SPN | Service Principal Name — привязка сервиса к учётке |
| Trust | Связь между доменами / лесами |
Пентест AD только в lab (GOAD, HackTheBox Pro Labs, собственный DC) или internal engagement с письменным scope.
Kerberos и NTLM — теория для пентестера
Kerberos (порт 88)
- AS-REQ — пользователь просит TGT у KDC.
- AS-REP — TGT зашифрован hash пароля пользователя.
- TGS-REQ — запрос билета на сервис (CIFS, HTTP).
- TGS-REP — service ticket.
Атаки (lab / scope):
| Атака | Суть |
|---|---|
| Kerberoasting | Запрос TGS для SPN с weak service account password → offline crack |
| AS-REP Roasting | User без pre-auth → hash offline |
| Golden Ticket | Подделка TGT при компромиссе krbtgt hash |
| Silver Ticket | Подделка TGS для одного сервиса |
| Pass-the-Ticket | Импорт украденного ticket |
Инструменты: Rubeus, Impacket (GetUserSPNs.py, ticketer.py).
NTLM
Challenge-response; hash NTLMv2 можно перехватить (Responder) или relay:
| Атака | Условие |
|---|---|
| Pass-the-Hash | Hash + SMB без plaintext |
| NTLM Relay | SMB signing off, no EPA |
| Coercing | PetitPotam, PrinterBug → auth на атакующего |
Защита — SMB signing, LDAP signing, EPA, отключение NTLM где возможно.
BloodHound и перечисление AD
BloodHound (SharpHound collector + Neo4j graph) визуализирует пути к Domain Admin:
# На Kali — ingest JSON с Windows host (lab)
bloodhound-python -u user -p 'Password1' -d corp.local -ns 192.168.56.10 -c All
В UI ищут Shortest Paths to Domain Admins. Типовые edges:
- GenericAll на user → reset password.
- WriteDACL → shadow credentials.
- MemberOf → nested groups.
- HasSession → creds на workstation admin.
BloodHound отвечает "куда идти дальше", не "авто-взлом".
Типовые сетевые сервисы
После recon и nmap пентестер встречает повторяющийся набор портов.
| Порт | Сервис | Что проверять |
|---|---|---|
| 22 | SSH | Weak keys, PermitRootLogin, known CVE |
| 23 | Telnet | Plaintext — critical finding |
| 25/587 | SMTP | VRFY, open relay |
| 53 | DNS | Zone transfer, cache snooping |
| 80/443 | HTTP(S) | Веб-пентест ст. 4 |
| 135/445 | SMB | Signing, null session, EternalBlue-class |
| 3389 | RDP | NLA, BlueKeep-class, brute |
| 5985/5986 | WinRM | Cred reuse |
| 1433 | MSSQL | sa empty, xp_cmdshell |
| 3306 | MySQL | weak root, UDF |
| 5432 | PostgreSQL | trust auth misconfig |
| 6379 | Redis | no auth → write cron |
| 27017 | MongoDB | no auth exposed |
| 9200 | Elasticsearch | open index |
SMB / Windows file sharing
enum4linux -a 192.168.56.101
smbclient -L //192.168.56.101 -N
crackmapexec smb 192.168.56.0/24 -u user -p pass --shares
CrackMapExec (CME / NetExec) — Swiss army knife для AD lab — spray passwords, exec, dump SAM.
SSH
ssh-audit 192.168.56.101
hydra -l root -P small.txt ssh://192.168.56.101 -t 4
Проверка — ключи вместо пароля, AllowUsers, fail2ban.
RDP
nmap -p3389 --script rdp-enum-encryption 192.168.56.101
hydra -l administrator -P pass.txt rdp://192.168.56.101
Blue Team — NLA, MFA (RD Gateway), ограничение по IP.
FTP / TFTP
Anonymous upload → webshell path; TFTP на Cisco — config leak.
Databases
Redis без auth:
redis-cli -h 192.168.56.101 INFO
# lab only — write cron for reverse shell
PostgreSQL trust в pg_hba.conf — подключение без пароля с "доверенной" сети.
Атаки на пароли в контексте сервисов
См. ст. 5 для hashcat/Hydra. Здесь — стратегия:
| Стратегия | Инструмент | Риск |
|---|---|---|
| Password spraying | CME, Spray | Lockout — 1–2 попытки на user |
| Credential stuffing | Утечки + Hydra | ToS breach sites |
| Default creds | Vendor docs | Low hanging fruit |
| Offline crack | hashcat NTDS, WPA | После dump |
Spraying — один пароль Winter2026! на всех users с паузой; не классический brute "aaa, aab".
Перед spraying на AD узнайте Account lockout threshold у заказчика. В ROE часто лимит 3 попытки на весь engagement.
Веб + AD — связка
Многие атаки начинаются с веба:
- ASPX ViewState с weak machine key → RCE.
- LDAP injection в login → bypass.
- NTLM relay через HTTP auth к SMB.
Internal web apps на *.corp.local без WAF — цель после foothold.
Linux vs Windows post-foothold (preview)
| Windows | Linux |
|---|---|
whoami /priv, systeminfo | id, uname -a |
net user /domain | /etc/passwd |
| Mimikatz / sekurlsa | /etc/shadow if root |
| Autoruns, services | cron, systemd |
Детали privesc — ст. 9.
Практическое задание
- Разверните GOAD или HTB "Active" machine (lab).
bloodhound-pythonили SharpHound → один path to DA в UI.- На Metasploitable — перечислите SMB, MySQL, SSH; один weak service.
- Password spray одним паролем на 3 учётных записи (lab) с документированием lockout policy.