
reunir reunir reunir
reúne reúne reúne

Jackdaw está aquí para recopilar toda la información de tu dominio, almacenarla en una base de datos SQL y mostrarte gráficos interesantes sobre cómo los objetos de tu dominio interactúan entre sí y cómo un posible atacante podría explotar estas interacciones. También incluye una práctica función para ayudarte en un proyecto de cracking de contraseñas, almacenando/consultando/informando hashes/contraseñas/usuarios.
dbinitenum. Esto se puede hacer automáticamente en Windows haciendo doble clic en el ejecutable, o escribiendo jackdaw.exe auto.nest para obtener la interfaz web. Por defecto se sirve en http://127.0.0.1:5000/nest. Hay una API documentada con SWAGGER en http://127.0.0.1:5000/ui.Generate graph cache solo una vez para obtener la información de las aristas en un archivo de caché. Puede llevar un tiempo, pero en la línea de comandos verás una barra de progreso.vista de grafo, pero no olvides seleccionar el número de caché correcto en la esquina superior izquierda.Esta sección se actualizará regularmente según los comentarios de los usuarios.
No hay consejos aquí; si bien se pueden hacer algunas mejoras en el código, no hay nada que un genérico pueda hacer.
La generación del archivo de caché de datos del grafo debe realizarse una vez (y solo una vez) en cada grafo, lo que puede llevar un tiempo usando la herramienta sqlalchemy predeterminada.
El rendimiento y la velocidad pueden mejorar significativamente (más de 50 veces más velocidad y 20 veces menos memoria) si usas el backend sqlite Y pones la utilidad de línea de comandos "sqlite3" en algún lugar del PATH. Recomiendo esto a todos los usuarios.
Ahora viene la parte del gran intercambio. La implementación temprana de Jackdaw usaba el módulo networkx como backend del grafo porque está completamente escrito en Python. Pero esto conllevaba un costo significativo de memoria y velocidad. Para mantener Jackdaw puro en Python, esta opción aún existe; sin embargo, usar el backend igraph es ahora el predeterminado.
Nota: igraph es una biblioteca de C++ con enlaces para Python. Tiene wheels precompilados para Windows y las principales distribuciones de Linux, pero si usas Jackdaw en otra cosa (sistemas embebidos/teléfonos móviles/navegadores web) deberás volver a networkx o sufrir con el tiempo de compilación de horas.
No es necesario preinicializar la base de datos, se hará automáticamente.
Usando el binario distribuido, solo tienes que hacer doble clic en jackdaw.exe
Usando como script de Python jackdaw auto
jackdaw --sql sqlite:///<full path here>/test.db dbinit
EN SISTEMAS LINUX <full path aquí> incluye la primera / por lo que tendrás //// cuatro (4) guiones antes del nombre del archivo. No te asustes.
jackdaw --sql sqlite:///test.db enum 'ldap+sspi-ntlm://<domain>\<placeholder>@10.10.10.2' 'smb+sspi-ntlm://<domain>\<placeholder>@10.10.10.2'
La contraseña es Passw0rd!
jackdaw --sql sqlite:///test.db enum 'ldap+ntlm-password://TEST\victim:[email protected]' 'smb+ntlm-password://TEST\victim:[email protected]'
La contraseña es Passw0rd!
jackdaw --sql sqlite:///test.db ldap 'ldap+ntlm-password://TEST\victim:[email protected]'
jackdaw --sql sqlite:///<FULL PATH TO DB> nest
Abre http://127.0.0.1:5000/ui para la API
Consulta la sección Construyendo la UI más abajo para aprender cómo construir la UI. Una vez construida:
Abre http://127.0.0.1:5000/nest para la interfaz del grafo (muestra el grafo, pero está lejos de funcionar)
La fase de enumeración LDAP adquiere datos sobre información de AD, objetos de Usuario, Máquina, OU, Grupo, que se representarán como un nodo en el grafo y como una tabla separada en la base de datos. Además, se analizará el Descriptor de Seguridad de todos los objetos mencionados y se agregarán las ACL para la DACL a la base de datos. Esto, junto con la información de membresía, se representará como aristas en el grafo. Además, se pueden realizar consultas SQL personalizadas sobre cualquiera de los tipos de datos mencionados cuando sea necesario.
La fase de enumeración SMB adquiere datos sobre recursos compartidos, grupos locales, sesiones, datos NTLM mediante la conexión a cada máquina del dominio (que se adquiere a través de LDAP)
El módulo Kerberos realiza kerberoasting y aspreproasting automáticos
El framework permite a los usuarios cargar volcados de memoria de LSASS para almacenar credenciales y extender la tabla de información de sesiones. Ambos se utilizarán como aristas adicionales en el grafo (contraseña compartida y sesión respectivamente). El framework también utiliza esta información para crear un informe de contraseñas sobre credenciales débiles/compartidas/descifradas.
El framework permite a los usuarios cargar archivos DCSYNC de impacket para almacenar credenciales. Esto se usará como aristas adicionales en el grafo (contraseña compartida). El framework también utiliza esta información para crear un informe de contraseñas sobre credenciales débiles/compartidas/descifradas.
El framework permite extender manualmente la base de datos disponible en todos los aspectos. Ejemplo: cuando se descubre información de sesión de usuario en una computadora determinada (fuera de la enumeración automática), existe la posibilidad de cargar manualmente estas sesiones, lo que poblará la base de datos y también el grafo resultante.
El framework puede generar un grafo usando la información disponible en la base de datos y trazarlo a través de la interfaz web (nest). Además, la generación del grafo y los cálculos de rutas se pueden invocar mediante programación, ya sea usando la API web (endpoint /ui) o las funciones del objeto del grafo.
El framework puede identificar configuraciones incorrectas comunes de AD sin generar el grafo. Actualmente solo a través de la API web.
La detección de anomalías de usuario implica la detección de permisos UAC inseguros y valores extensos de descripción de usuario. Se espera que este conjunto de funcionalidades crezca en el futuro a medida que se implementen nuevas características.
La detección de anomalías de máquina implica la detección de permisos UAC inseguros, firmas SMB no obligatorias, versiones de SO desactualizadas, máquinas fuera del dominio. Se espera que este conjunto de funcionalidades crezca en el futuro a medida que se implementen nuevas características.