
Инструмент для автоматической эксплуатации путей повышения привилегий в Active Directory, отображаемых BloodHound
autobloodyautobloody — это инструмент для автоматической эксплуатации путей повышения привилегий Active Directory, показанных BloodHound.
Этот инструмент автоматизирует AD privesc между двумя объектами AD: исходным объектом (которым мы владеем) и целевым объектом (который нам нужен), если в базе данных BloodHound существует путь повышения привилегий. Автоматизация состоит из двух шагов:
bloodyADПоскольку autobloody полагается на bloodyAD, он поддерживает аутентификацию с помощью открытых паролей, pass-the-hash, pass-the-ticket или сертификатов и подключается к службам LDAP контроллера домена для выполнения AD privesc.
Доступен пакет Python:
pip install autobloody
Или вы можете клонировать репозиторий:
git clone --depth 1 https://github.com/CravateRouge/autobloody
pip install .
Для лучшей производительности рекомендуется установить библиотеку GDS в Neo4j. Без неё autobloody будет использовать собственные CYPHER-запросы, которые медленнее, но всё ещё функциональны.
Облегчённая среда BloodHound с плагином GDS может быть установлена запуском ./bloodhound-ce из https://github.com/CravateRouge/Single-User-BloodHound.
Сначала данные должны быть импортированы в BloodHound (например, с помощью SharpHound или BloodHound.py), и Neo4j должен быть запущен.
⚠️ значения -ds и -dt чувствительны к регистру
Простое использование:
autobloody -p 'Password123!' --host 192.168.10.2 -dp 'neo4jP@ss' -ds '[email protected]' -dt 'BLOODY.LOCAL'
Полная справка:
[bloodyAD]$ ./autobloody.py -h
usage: autobloody.py [-h] [--dburi DBURI] [-du DBUSER] -dp DBPASSWORD -ds DBSOURCE -dt DBTARGET [-d DOMAIN] [-u USERNAME] [-p PASSWORD] [-k] [-c CERTIFICATE] [-s] --host HOST [-y] [-v] [--timeout TIMEOUT]
AD Privesc Automation
options:
-h, --help show this help message and exit
--dburi DBURI The host neo4j is running on (default is "bolt://localhost:7687")
-du DBUSER, --dbuser DBUSER
Neo4j username to use (default is "neo4j")
-dp DBPASSWORD, --dbpassword DBPASSWORD
Neo4j password to use
-ds DBSOURCE, --dbsource DBSOURCE
Case sensitive label of the source node (name property in bloodhound)
-dt DBTARGET, --dbtarget DBTARGET
Case sensitive label of the target node (name property in bloodhound)
-d DOMAIN, --domain DOMAIN
Domain used for NTLM authentication (optional, default is dbsource domain)
-u USERNAME, --username USERNAME
Username used for NTLM authentication (optional, default is dbsource sAMAccountName)
-p PASSWORD, --password PASSWORD
Cleartext password or LMHASH:NTHASH for NTLM authentication
-k, --kerberos
-c CERTIFICATE, --certificate CERTIFICATE
Certificate authentication, e.g: "path/to/key:path/to/cert"
-s, --secure Try to use LDAP over TLS aka LDAPS (default is LDAP)
--host HOST Hostname or IP of the DC (ex: my.dc.local or 172.16.1.3)
-y, --yes Assume yes to apply the generated privesc
-v, --verbose Enable verbose output (-v for INFO, -vv for DEBUG)
--timeout TIMEOUT Connection timeout in seconds (default is 60)
Сначала путь повышения привилегий находится с помощью алгоритма Дейкстры, реализованного в библиотеке GDS Neo4j. Алгоритм Дейкстры позволяет решить задачу кратчайшего пути на взвешенном графе. По умолчанию рёбра, созданные BloodHound, не имеют веса, а имеют тип (например, MemberOf, WriteOwner). Затем каждому ребру добавляется вес в соответствии с типом ребра и типом достигнутого узла (например, пользователь, группа, домен).
Как только путь сгенерирован, autobloody подключится к контроллеру домена, выполнит путь и очистит то, что обратимо (всё, кроме ForcePasswordChange и setOwner).
На данный момент поддерживаются только следующие рёбра BloodHound для автоматической эксплуатации:
Понравился проект? Пожертвования приветствуются
Нужна индивидуальная поддержка? Отправьте мне электронное письмо для обучения или индивидуальных функций.