Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ImproHound — Определите пути атак в BloodHound, нарушающие вашу иерархию AD | Kitploit
Инструменты/GitHubGitHub/improsec/improhound
Повышение привилегийАнализ уязвимостейСбор информацииТестирование на Проникновение
GitHubimprosec/improhound

ImproHound

Определите пути атак в BloodHound, нарушающие вашу иерархию AD

Репозиторий
3283683 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

GitHub release (latest SemVer) GitHub all releases

ImproHound

Определите пути атак в BloodHound, нарушающие вашу многоуровневую структуру AD

ImproHound — это автономный dotnet исполняемый файл для Windows x64 с графическим интерфейсом. Для использования ImproHound необходимо запустить SharpHound для сбора необходимых данных из AD. Затем загрузите эти данные в вашу установку BloodHound. ImproHound подключается к базе данных Neo4j, используемой BloodHound. В ImproHound вы распределяете объекты AD по уровням через структуру подразделений (OU), а ImproHound выявляет связи в AD, которые позволяют объектам AD скомпрометировать объекты более высокого (ближе к нулевому) уровня. Нарушения tiering сохраняются в CSV-файл.

Статья в блоге об ImproHound

Демонстрационное видео ImproHound

Презентация ImproHound на DEF CON Adversary Village

Содержание
  • Установка
  • Использование
  • Рекомендации по распределению объектов AD по уровням
  • Последние протестированные версии зависимостей

Установка

1. Настройте базу данных BloodHound

  1. Установите BloodHound

  2. Соберите данные BloodHound с помощью SharpHound в вашем AD

    Примечание: это вызовет шум в вашем антивирусе, SIEM и т.д.

    Пример: Запустите SharpHound.exe из командной строки, соберите все (да, GPOLocalGroup не включена в All):

    SharpHound.exe --CollectionMethods All,GPOLocalGroup
    

    Совет 1: Используйте параметр Domain для сбора данных из других доменов леса.

    Совет 2: Для получения ещё большего объёма данных используйте Метод сбора сессий в цикле

  3. Загрузите данные BloodHound в графический интерфейс BloodHound

    В BloodHound есть ошибка, из-за которой файл JSON домена иногда пропускается при загрузке ZIP-архива с данными BloodHound. Проверьте статистику БД в BloodHound после загрузки данных и убедитесь, что объекты домена существуют.

2. Установите плагин Neo4j APOC (обеспечивает необходимые нам мощные операции с графами)

  1. Скачайте APOC версии, соответствующей вашей версии Neo4j (файл apoc-x.x.x.x-all.jar).

    Найдите версию APOC, соответствующую вашей версии Neo4j, в матрице совместимости версий.

  2. Постарайтесь вспомнить, куда вы установили Neo4j, и поместите JAR-файл APOC по следующему пути: $NEO4J_HOME/plugins/

    • $NEO4J_HOME в Linux: /var/lib/neo4j/
    • $NEO4J_HOME в Windows: Проверьте службу Neo4j. Она покажет расположение.
  3. Отредактируйте neo4j.conf в вашем любимом текстовом редакторе, чтобы разрешить неограниченный доступ APOC, заменив строку: #dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.* на dbms.security.procedures.unrestricted=apoc.*

    • neo4j.conf в Linux: /etc/neo4j/neo4j.conf
    • neo4j.conf в Windows: $NEO4J_HOME/conf/neo4j.conf

    Если вы хотите запускать ImproHound на одном хосте, а BloodHound на другом, вам нужно разрешить удалённые подключения к базе данных Neo4j на хосте BloodHound. Для этого удалите # из строки #dbms.default_listen_address=0.0.0.0 в файле neo4j.conf.

  4. Перезапустите Neo4j

    • Linux: systemctl restart neo4j
    • Windows (cmd): net stop neo4j && net start neo4j (PowerShell: net stop neo4j; net start neo4j)

3. Скачайте и запустите последнюю версию ImproHound.exe в Windows (x64)

    Убедитесь, что вы можете войти в БД BloodHound с теми же учётными данными, которые используете в графическом интерфейсе BloodHound.

Использование

Подключение к базе данных

alt text

Введите учётные данные базы данных и установите соединение. Это те же учётные данные, которые вы используете в графическом интерфейсе BloodHound.

Продолжить или начать заново

alt text

ImproHound создаёт метку 'TierX' на узлах в базе данных BloodHound. Если вы уже использовали ImproHound с этой базой данных BloodHound, вам будет предложено продолжить с уже созданной tiering-структурой или начать заново.

Стандартная tiering-структура или все в Tier 2

alt text

ImproHound предлагает вам возможность установить «Стандартную tiering-структуру», которая поместит Domain Admins в Tier 0, Domain Users в Tier 2 и т.д., или поместить все объекты в Tier 2.

Структура подразделений (OU)

alt text

Это страница, на которой вы будете распределять объекты AD по уровням. Окно отображает структуру OU. Каждый объект AD имеет значение уровня, которое можно увеличивать и уменьшать с помощью стрелок.

Установить уровень дочерним объектам

Если вы выберете домен или контейнер AD, вы можете нажать «Установить уровень дочерним объектам», чтобы установить всем дочерним объектам (рекурсивно) уровень выбранного домена/контейнера.

Установить уровень участникам

Если вы выберете группу, вы можете нажать «Установить уровень участникам», чтобы установить всем участникам (рекурсивно) уровень выбранной группы.

Установить уровень для GPO

Если вы нажмёте «Установить уровень для GPO», каждой GPO будет присвоен уровень, соответствующий уровню OU с самым высоким уровнем (ближайшим к нулю), к которой привязана эта GPO. GPO, не привязанные к OU, не изменят свой уровень.

Получить нарушения tiering

Найти все связи в базе данных BloodHound, где объект AD имеет контроль над объектом AD более высокого уровня (ближе к нулю).

Создаются два CSV-файла:

  • adobjects-[timestamp].csv: Все объекты AD и их уровни.

  • tiering-violations-[timestamp].csv: Нарушения tiering.

Пример записей в CSV с нарушениями:

SourceTierSourceTypeSourceNameSourceDistinguishednameRelationIsInheritedTargetTierTargetTypeTargetNameTargetDistinguishedname
Tier1User[email protected]CN=svc-monitor,CN=Users,DC=hot,DC=localForceChangePasswordTrueTier0User[email protected]CN=T0_JBK,CN=Users,DC=hot,DC=local
Tier2Group[email protected]CN=Wrk-Admins,CN=Groups,DC=hot,DC=localGenericWriteTier0GPO[email protected]CN={6AC1786C-016F-11D2-945F-00C04fB984F9},CN=Policies,CN=System,DC=hot,DC=local
Скачать инструмент