
При проведении пентеста Active Directory мы часто сталкиваемся с задачей наглядно показать заказчику, какие именно цепочки атаки использовались от исходной точки до администратора домена. BloodHound отлично визуализирует граф атак, но по умолчанию не даёт возможности «запомнить» конкретные ребра, которые мы использовали в своей атаке. А ведь именно эти ребра — ключевые шаги, которые мы хотим продемонстрировать в отчете: чтобы заказчик видел не просто абстрактные пути, а реальную цепочку действий, которую мы воспроизвели.

Добавление меток (label) или определенных свойств узлам позволяют группировать узлы по общему признаку и использовать их в запросах Cypher вместо общего перечисления. Так, например, для всех рабочих станций можно добавить метку "Workstation", а для всех серверов "Server" и в зависимости от потребностей использовать эти метки в запросах.

В статье мы определили, что есть проходимые и непроходимые связи. Ребра локальных групп LocalToComputer и MemberOfLocalGroup являются непроходимыми. Исключая их мы можем потерять интересные маршруты. Исправим эту ситуацию.

Специалисты, которые самостоятельно пишут Cypher запросы для коротких путей, знают, что в некоторых случаях neo4j выдает не те графы, которые хочется увидеть. Особенно, когда строятся короткие пути от общих групп до группы доменных администраторов. Часто рисуются графы, связанные с шаблонами сертификатов и членством в локальных группах и не только в привилегированных. Эти графы практически невозможно преобразовать в цепочку атаки.