
Conjunto de herramientas para BloodHound que permite auditoría de contraseñas de dominio, análisis de rutas de privilegios, manipulación de bordes y consultas Cypher personalizadas para maximizar el mapeo de la superficie de ataque de Active Directory.
Nuevo lanzamiento:
Un conjunto simple de herramientas:
Esto se lanzó con capturas de pantalla y casos de uso en los siguientes blogs: Max Release, Updates & Primitives y DPAT
Se agregó una nueva primitiva de ataque potencial a esta herramienta durante mi investigación, consulte la sección add-spns para obtener más detalles.
Idealmente no debería haber mucho que instalar, pero he incluido un archivo requirements.txt por si acaso. Probado en Kali Linux y Windows 10, toda la funcionalidad debería funcionar tanto en sistemas operativos Linux como Windows.
pip3 install -r requirements.txt
Las credenciales de Neo4j se pueden codificar al comienzo del script, se pueden proporcionar como argumentos de CLI, o almacenar como variables de entorno. Si algún parámetro se deja en blanco, se le solicitará el nombre de usuario/contraseña. Para usar variables de entorno, probablemente sea más fácil agregar una línea (por ejemplo, export NEO4J_USERNAME='neo4j') dentro de ~/.bashrc o ~/.zshrc para almacenar el nombre de usuario ya que no es realmente sensible. La contraseña de la base de datos se puede establecer en la pestaña de su shell antes de ejecutar Max. Agregar un espacio antes del comando export debería evitar que aparezca en el historial.
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:
Obtener ayuda en general, y específica del módulo
python3 max.py -h
python3 max.py {module} -h
Importar objetos owned en BH
python3 max.py mark-owned -f owned.txt
python3 max.py mark-owned -f owned.txt --add-note "Owned by repeated local admin"
Obtener lista de usuarios
python3 max.py get-info --users
python3 max.py get-info --users --enabled
[email protected]
[email protected]
...
Obtener lista de objetos en un grupo objetivo
python3 max.py get-info --group-members "domain [email protected]"
Obtener una lista de computadoras a las que un usuario tiene derechos administrativos
python3 max.py get-info --adminto [email protected]
Obtener una lista de objetos owned con las notas de cada uno
python3 max.py get-info --owned --get-note
Ejecutar una consulta - devolver una lista de todos los usuarios con un camino hacia DA
python3 max.py query -q "MATCH (n:User),(m:Group {name:'DOMAIN [email protected]'}) MATCH (n)-[*1..]->(m) RETURN DISTINCT(n.name)"
Eliminar una arista de la base de datos
python3 max.py del-edge CanRDP
Agregar relación HasSPNConfigured usando la información almacenada dentro de BloodHound, o con un archivo de Impacket GetUserSPNs
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
Los objetos en el archivo deben contener FQDN, no importa mayúsculas/minúsculas. Esto también aplica siempre que se proporcione un nombre de usuario/nombre de computadora en la 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
Espero incluir una función analyze para proporcionar algún tipo de funcionalidad similar a PlumHound/Cypheroth. Por último, estoy pensando en crear una versión de Powershell para aquellos que ejecutan Neo4j en Windows, pero soy malo en Powershell, así que está por determinar.
Cualquier otra característica y mejora es bienvenida, encuéntrame @knavesec en el canal de Slack BloodHoundGang y en Twitter
Me gustaría agradecer especialmente a aquellos que han dedicado su tiempo a desarrollar y mejorar esta herramienta: