Перейти к содержимому
AD Academy
Инструменты
Продвинутый20 мин.Обновлено: Тема 4 из 4

Чтение графа BloodHound — от пользователя до Domain Admin

Читаем путь атаки шаг за шагом — и используем тот же инструмент для защиты.

Не прочитано

Что вы узнаете

  • Что такое Edge и какие типы связей важно знать
  • Как собрать граф с помощью SharpHound / bloodhound-python
  • Как читать путь атаки шаг за шагом

Перед этой темой стоит прочитать:GOAD — Game of Active Directory

Теория

собирает данные из (кто в группе, кто подключён к какому компьютеру, к какому ACL есть доступ) и строит граф отношений. Атака больше не «где есть слабая учётка» — а поиск пути в графе от точки, которой вы управляете, до группы Admins.

Edges, которые нужно знать

  • MemberOf — принадлежность к группе.
  • AdminTo — пользователь/группа являются админами на компьютере.
  • HasSession — пользователь сейчас подключён к компьютеру (возможность украсть учётные данные из памяти).
  • CanRDP / CanPSRemote — удалённый доступ к компьютеру.
  • — право репликации на домене — главный приз.
  • WriteDacl / AddMember / AddKeyCredentialLink — права для «самоапгрейда» в цепочке.

Цепочка: bob, HasSession, WORKSTATION1, AdminTo, svc_helpdesk, CanRDP, SRV-APP1, MemberOf, G-Deploy, DCSync, CORP.LOCAL. Каждая стрелка — Edge (отношение). Защита: запустить тот же запрос и разорвать каждый путь до злоумышленника.

Коротко и понятно

  • Каждая стрелка в графе — Edge, отношение между двумя объектами AD.
  • HasSession = учётные данные в памяти; AdminTo = извлечение хэша; DCSync = захват домена.
  • Защита: запустите тот же запрос до атакующего и разорвите каждый путь.
  • После исправления — запустите снова и убедитесь, что путь исчез.

Пример из практикиbob подключён к WORKSTATION1 через HasSession. Атакующий крадёт учётные данные svc_helpdesk из памяти, поднимается на SRV-APP1 через RDP и доходит до DCSync через G-Deploy.

Практика — сбор графа

# SharpHound из Windows
SharpHound.exe -c All --zipfilename corp_collection
powershell
# bloodhound-python из Linux
bloodhound-python -u attacker -p 'Password123' \
  -d corp.local -dc dc01.corp.local -c All
bash

Импортируйте zip в и проверьте: Pre-built Analytics → «Find Shortest Paths to Admins».

Чтение пути шаг за шагом

Пример пути: bob → HasSession → WORKSTATION1 → AdminTo → svc_helpdesk → CanRDP → SRV-APP1 → MemberOf → G-Deploy → → CORP.LOCAL.

  • 1. bob подключён к WORKSTATION1 (HasSession) — если контролируем bob, в памяти компьютера есть дополнительные учётные данные для кражи.
  • 2. svc_helpdesk — админ на WORKSTATION1 (AdminTo) — с правами на компьютер извлекаем хэш svc_helpdesk из SAM/.
  • 3. svc_helpdesk может RDP на SRV-APP1 (CanRDP) и он там подключён — дополнительные учётные данные в памяти.
  • 4. Тот, кто подключён к SRV-APP1, принадлежит G-Deploy, у которой есть на домене.
  • 5. = захват домена — извлекаем все хэши через репликацию.

Полезные Cypher-запросы

// Кратчайший путь от пользователя к администраторам домена
MATCH p=shortestPath(
  (u:User {name:'BOB@CORP.LOCAL'})-[*1..]->
  (g:Group {name:'DOMAIN ADMINS@CORP.LOCAL'})
) RETURN p

// Кто владеет DCSync в домене
MATCH (n)-[:DCSync]->(d:Domain {name:'CORP.LOCAL'}) RETURN n

// Цели для AS-REP Roasting
MATCH (u:User {dontreqpreauth: true}) RETURN u

// Компьютеры с неограниченным делегированием
MATCH (c:Computer {unconstraineddelegation: true}) RETURN c

// Администраторы на компьютере, где есть сессия администратора домена
MATCH (da:Group {name:'DOMAIN ADMINS@CORP.LOCAL'})<-[:MemberOf*1..]-(u1:User)
      -[:HasSession]->(c:Computer)<-[:AdminTo]-(u2:User)
RETURN DISTINCT u2.name, c.name
cypher

Обнаружение и защита — BloodHound это и защитный инструмент

  • Запустите «Shortest Paths to Admins» до атакующего — разрыв каждого пути (удаление AdminTo, смена пароля, закрытие лишних session) — настоящая митигация.
  • Найдите в логах именно эти связи: какой svc_helpdesk входит RDP на серверы (4624 Type 10), кто делает без причины.

Митигация

  • Чините связи: убирайте лишние AdminTo, отключайте лишнее delegation, малое число держателей .
  • Для каждой сервисной учётки с высокими правами — принцип минимума, PAW для управления и мониторинг каждого использования.
  • Вернитесь к графу после исправления и проверьте, что путь исчез — доказательство, что митигация сработала.

Проверь себя

Что такое Edge в BloodHound?

Какая связь отмечает главный «приз» в графе?

В пути u1 → HasSession → WS1 → AdminTo → svc1, какова логика атаки?

Почему запуск «Shortest Paths to Domain Admins» — это и защитное действие?

Эта страница вам помогла?