
Инструмент на Python для приёма данных в BloodHound
Мне понадобился BloodHound с поддержкой Kerberos, и я нашёл этот комментарий. Оказалось, что ветка с поддержкой Kerberos-аутентификации существовала всё это время! Я позволил себе слить эту ветку в master, чтобы получить те самые экспортные данные BloodHound 4.2+. Вся заслуга принадлежит людям, которые, собственно, и написали код:)
Как отметил сам Dirkjan, этому «нужно больше работы и тестирования». Возможно, это не будет работать во всех случаях, поэтому, пожалуйста, сообщайте о любых проблемах, с которыми вы столкнётесь, — и мы попробуем их исправить. Может быть, когда-нибудь мы сможем отправить это как PR в основной репозиторий.
$ python3 /opt/BloodHound.py/bloodhound.py -u redacted -k -d absolute.htb -dc dc.absolute.htb -ns 10.129.202.227 --dns-tcp --zip -no-pass -c All
INFO: Found AD domain: absolute.htb
INFO: Using TGT from cache
INFO: Found TGT with correct principal in ccache file.
INFO: Connecting to LDAP server: dc.absolute.htb
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 1 computers
INFO: Connecting to LDAP server: dc.absolute.htb
INFO: Found 18 users
INFO: Found 55 groups
INFO: Found 0 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer: dc.absolute.htb
INFO: Ignoring host dc.absolute.htb since its reported name does not match
INFO: Done in 00M 02S
INFO: Compressing output into 20220926135518_bloodhound.zip
Если вы получаете ошибки DNS, можно попробовать указать DNS на себя с помощью -ns 127.0.0.1 при запуске dnschef:
python3 dnschef.py --fakeip <dc ip> --fakedomains <domain> -q
BloodHound.py — это написанный на Python инструмент сбора данных для BloodHound, основанный на Impacket.
Эта версия BloodHound.py совместима только с BloodHound 4.2 или новее. Для версий 3.x используйте версию 1.1.1 через pypi. Начиная с версии 1.3, BloodHound.py поддерживает только Python 3; Python 2 больше не тестируется и в будущем может перестать работать.
На данный момент BloodHound.py имеет следующие ограничения:
Вы можете установить сборщик через pip с помощью pip install bloodhound, либо клонировав этот репозиторий и выполнив python setup.py install, либо с помощью pip install ..
Для работы BloodHound.py требуются impacket, ldap3 и dnspython.
При установке в ваш PATH будет добавлена утилита командной строки bloodhound-python.
Для использования сборщика вам как минимум понадобятся учётные данные домена, в который вы входите.
Необходимо указать параметр -u с именем пользователя этого домена (или username@domain для пользователя из доверенного домена). Если у вас правильно настроен DNS и домен AD есть в списке поиска DNS, BloodHound.py автоматически определит домен. Если нет, укажите его вручную с помощью параметра -d.
По умолчанию BloodHound.py обращается к LDAP и отдельным компьютерам домена для перечисления пользователей, компьютеров, групп, доверительных отношений, сеансов и локальных администраторов.
Если вы хотите ограничить сбор, укажите параметр --collectionmethod, который поддерживает следующие варианты (аналогично SharpHound):
Несколько методов сбора следует разделять запятыми, например: -c Group,LocalAdmin
Вы можете переопределить некоторые параметры автоматического определения, например указать имя основного контроллера домена, если хотите использовать другой контроллер домена, с помощью -dc, или задать собственный глобальный каталог с помощью -gc.
docker build -t bloodhound .docker run -v ${PWD}:/bloodhound-data -it bloodhoundbloodhound-python внутри контейнера. Все данные будут сохраняться в каталоге, из которого вы запускаете контейнер.