
A Python based ingestor for BloodHound
BloodHound.py — это загрузчик данных на Python для BloodHound, основанный на Impacket.
Код в этой ветке совместим только с BloodHound 4.2 и 4.3. Для BloodHound CE используйте ветку bloodhound-ce branch.
Существуют разные способы установки для BloodHound Community Edition (CE) и BloodHound Legacy. Вы можете установить одновременно только один из двух инструментов, если только не используете виртуальное окружение для обоих инструментов или менеджер пакетов, например pipx, который автоматически настраивает такие окружения.
Доступны следующие способы установки:
pip install bloodhoundpipx install bloodhoundgit clone https://github.com/dirkjanm/BloodHound.py и выполнив pip install . из каталога проекта.Установка BloodHound.py Legacy добавит инструмент командной строки bloodhound-python в ваш PATH.
Доступны следующие способы установки:
pip install bloodhound-cepipx install bloodhound-cegit clone https://github.com/dirkjanm/BloodHound.py, переключившись на ветку CE git checkout bloodhound-ce и выполнив pip install . из каталога проекта.Загрузчик данных BloodHound.py CE добавит инструмент командной строки bloodhound-ce-python в ваш PATH.
Для использования загрузчика данных вам как минимум потребуются учётные данные домена, в который вы входите. Учётные данные могут быть указаны как имя пользователя + пароль, NT-хеш или AES-ключи, либо Kerberos TGT в ccache-файле.
Вам необходимо указать опцию -u с именем пользователя этого домена (или username@domain для пользователя в доверенном домене). Если ваш DNS настроен правильно и домен AD находится в списке поиска DNS, BloodHound.py автоматически определит домен за вас. Если нет, вам придётся указать его вручную с помощью опции -d.
По умолчанию BloodHound.py запрашивает LDAP и отдельные компьютеры домена для перечисления пользователей, компьютеров, групп, доверительных отношений, сеансов и локальных администраторов.
Если вы хотите ограничить сбор, укажите параметр --collectionmethod, который поддерживает следующие опции (аналогично SharpHound):
Несколько методов сбора следует разделять запятыми, например: -c Group,LocalAdmin
Вы можете переопределить некоторые параметры автоматического обнаружения, например имя основного контроллера домена, если хотите использовать другой контроллер домена, с помощью -dc, или указать собственный глобальный каталог с помощью -gc.
В настоящее время BloodHound.py имеет следующие ограничения:
docker build -t bloodhound .docker run -v ${PWD}:/bloodhound-data -it bloodhoundbloodhound-python внутри контейнера; все данные будут сохранены в пути, из которого вы запускаете контейнер.BloodHound.py изначально был написан Дирк-яном Моллемой, Эдвином ван Влитом и Маттейсом Гиленом из Fox-IT (NCC Group). В настоящее время BloodHound.py поддерживается Дирк-яном Моллемой из Outsider Security. Реализация и модель данных основаны на оригинальном инструменте от SpecterOps. Большое спасибо всем, кто внёс вклад, тестируя, отправляя проблемы и запросы на включение изменений на протяжении многих лет.