
Набор инструментов для BloodHound, позволяющий проводить аудит паролей домена, анализ путей привилегий, манипулирование графами и выполнение пользовательских запросов Cypher для максимального картирования поверхности атаки Active Directory.
Новый релиз:
Простой набор инструментов:
Это было опубликовано со скриншотами и примерами использования в следующих блогах: Max Release, Updates & Primitives и DPAT
В ходе моего исследования в этот инструмент был добавлен новый потенциальный примитив атаки. Подробности см. в разделе add-spns.
В идеале ничего устанавливать не нужно, но я включил файл requirements.txt на всякий случай. Протестировано на Kali Linux и Windows 10, вся функциональность должна работать как в Linux, так и в Windows.
pip3 install -r requirements.txt
Учетные данные Neo4j могут быть жестко закодированы в начале скрипта, переданы как аргументы командной строки или сохранены в переменных окружения. Если какой-либо параметр оставить пустым, будет запрошено имя пользователя/пароль. Для использования переменных окружения проще всего добавить строку (например, export NEO4J_USERNAME='neo4j') в ~/.bashrc или ~/.zshrc для хранения имени пользователя, поскольку оно не является чувствительным. Пароль базы данных можно установить в вашей вкладке оболочки перед запуском Max. Добавление пробела перед командой export должно предотвратить его появление в истории.
export NEO4J_PASSWORD='bloodhound' # Notice whitespace before 'export'
python3 max.py {module} {args}
python3 max.py -u neo4j -p neo4j {module} {args}
python3 max.py {module} {args}
Neo4j Username: neo4j
Neo4j Password:
Получение общей справки и справки по модулю
python3 max.py -h
python3 max.py {module} -h
Импорт owned объектов в BH
python3 max.py mark-owned -f owned.txt
python3 max.py mark-owned -f owned.txt --add-note "Owned by repeated local admin"
Получить список пользователей
python3 max.py get-info --users
python3 max.py get-info --users --enabled
[email protected]
[email protected]
...
Получить список объектов в целевой группе
python3 max.py get-info --group-members "domain [email protected]"
Получить список компьютеров, на которые у пользователя есть права администратора
python3 max.py get-info --adminto [email protected]
Получить список owned объектов с примечаниями для каждого
python3 max.py get-info --owned --get-note
Выполнение запроса - вернуть список всех пользователей, имеющих путь к DA
python3 max.py query -q "MATCH (n:User),(m:Group {name:'DOMAIN [email protected]'}) MATCH (n)-[*1..]->(m) RETURN DISTINCT(n.name)"
Удалить ребро из базы данных
python3 max.py del-edge CanRDP
Добавить отношение HasSPNConfigured, используя информацию, хранящуюся в BloodHound, или файл GetUserSPNs от impacket
python3 max.py add-spns -b
python3 max.py add-spns -i getuserspns-raw-output.txt
DPAT
python3 max.py dpat -n ~/client/ntds.dit -c ~/.hashcat/hashcat.potfile -o ouputdir --html --sanitize
Pet max
python3 max.py pet-max
Объекты в файле должны содержать FQDN, регистр не имеет значения. Это также относится к любым передаваемым через CLI именам пользователей/компьютеров.
[email protected] <- will be added / correct CLI input
[email protected] <- will be added / correct CLI input
computer01.domain.local <- will be added / correct CLI input
ComPutEr01.doMAIn.LOcaL <- will be added / correct CLI input
user02 <- will not be added / incorrect CLI input
computer02 <- will not be added / incorrect CLI input
Я надеюсь включить функцию analyze для предоставления функциональности, аналогичной PlumHound/Cypheroth. Также рассматриваю возможность создания версии на Powershell для тех, кто использует Neo4j на Windows, но я слаб в Powershell, так что TBD.
Любые другие функции и улучшения приветствуются. Найти меня можно @knavesec в канале BloodHoundGang Slack и в Twitter.
Особую благодарность хочу выразить тем, кто внес свой вклад в разработку и улучшение этого инструмента: