Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ImproHound — Identifica las rutas de ataque en BloodHound que rompen tu segmentación de AD. | Kitploit
Herramientas/GitHubGitHub/improsec/improhound
Escalada de PrivilegiosAnálisis de VulnerabilidadesRecopilación de InformaciónPruebas de Penetración
GitHubimprosec/improhound

ImproHound

Identifica las rutas de ataque en BloodHound que rompen tu segmentación de AD.

Ver Repositorio
328368hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

GitHub release (latest SemVer) GitHub all releases

ImproHound

Identifica las rutas de ataque en BloodHound que rompen tu segmentación por niveles de AD

ImproHound es un ejecutable independiente de dotnet para Windows x64 con interfaz gráfica. Para usar ImproHound, debes ejecutar SharpHound para recolectar los datos necesarios del AD. Luego, subirás los datos a tu instalación de BloodHound. ImproHound se conectará a la base de datos Neo4j subyacente de BloodHound. En ImproHound, categorizarás el AD en niveles a través de la estructura de OU, e ImproHound identificará las relaciones de AD que permiten a los objetos de AD comprometer un objeto de un nivel superior (más cercano a cero) y guardará las violaciones de segmentación en un archivo csv.

Artículo del blog de ImproHound

Video de demostración de ImproHound

Presentación de ImproHound en DEF CON Adversary Village

Tabla de contenido
  • Instalación
  • Uso
  • Directrices para la segmentación por niveles de objetos de AD
  • Última versión probada de dependencias

Instalación

1. Configura tu base de datos de BloodHound

  1. Instala BloodHound

  2. Recolecta datos de BloodHound con SharpHound en tu AD

    Nota: esto generará ruido en tu antivirus, SIEM, etc.

    Ejemplo: Ejecuta SharpHound.exe desde cmd, recolecta todo (sí, GPOLocalGroup no está incluido en All):

    SharpHound.exe --CollectionMethods All,GPOLocalGroup
    

    Consejo 1: Usa el parámetro Domain para recolectar datos de otros dominios del bosque.

    Consejo 2: Para obtener aún más datos, usa The Session Loop Collection Method

  3. Sube tus datos de BloodHound en la interfaz gráfica de BloodHound

    Hay un error en BloodHound que a veces hace que el archivo JSON del dominio se omita al subir un zip de datos de BloodHound. Revisa las estadísticas de la base de datos en BloodHound después de la subida de datos y asegúrate de que los objetos de dominio existan.

2. Instala el plugin APOC de Neo4j (permite las increíbles operaciones de grafo que necesitamos)

  1. Descarga la versión de APOC que coincida con tu versión de Neo4j (apoc-x.x.x.x-all.jar).

    Encuentra la versión de APOC que coincida con tu versión de Neo4j en la matriz de compatibilidad de versiones.

  2. Intenta recordar dónde instalaste Neo4j y coloca el archivo jar de APOC en: $NEO4J_HOME/plugins/

    • $NEO4J_HOME en Linux: /var/lib/neo4j/
    • $NEO4J_HOME en Windows: Verifica el servicio de Neo4j. Te revelará la ubicación.
  3. Edita neo4j.conf en tu editor de texto favorito para permitir el acceso sin restricciones a APOC reemplazando la línea: #dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.* con dbms.security.procedures.unrestricted=apoc.*

    • neo4j.conf en Linux: /etc/neo4j/neo4j.conf
    • neo4j.conf en Windows: $NEO4J_HOME/conf/neo4j.conf

    Si quieres ejecutar ImproHound en un equipo y BloodHound en otro, debes permitir conexiones remotas a la base de datos Neo4j en el equipo de BloodHound. Para ello, elimina el # de la línea #dbms.default_listen_address=0.0.0.0 en neo4j.conf.

  4. Reinicia Neo4j

    • Linux: systemctl restart neo4j
    • Windows (cmd): net stop neo4j && net start neo4j (PowerShell: net stop neo4j; net start neo4j)

3. Descarga y ejecuta la última versión de ImproHound.exe en Windows (x64)

    Confirma que puedes iniciar sesión en la base de datos de BloodHound con las mismas credenciales que usas en la interfaz gráfica de BloodHound.

Uso

Conectar a la base de datos

alt text

Ingresa las credenciales de la base de datos y establece una conexión. Son las mismas credenciales que usas en la interfaz gráfica de BloodHound.

Continuar o empezar de nuevo

alt text

ImproHound crea una etiqueta 'TierX' en los nodos de la base de datos de BloodHound. Si has usado ImproHound anteriormente con esta base de datos de BloodHound, se te preguntará si deseas continuar con la segmentación por niveles que ya has creado o si deseas empezar de nuevo.

Segmentación por niveles predeterminada o todo en Nivel 2

alt text

ImproHound te da la opción de establecer 'Segmentación por niveles predeterminada', que colocará a los Administradores de Dominio en el Nivel 0, a los Usuarios de Dominio en el Nivel 2, etc., o establecer todos los objetos en el Nivel 2.

Estructura de OU

alt text

Esta es la página donde categorizarás los objetos de AD en niveles. La ventana muestra la estructura de OU. Cada objeto de AD tiene un valor de nivel que se puede aumentar y disminuir con las flechas.

Establecer nivel para los hijos

Si seleccionas un dominio o un contenedor de AD, puedes hacer clic en 'Establecer nivel para los hijos' para establecer todos los hijos (de forma recursiva) al nivel del dominio/contenedor dado.

Establecer nivel para los miembros

Si seleccionas un grupo, puedes hacer clic en 'Establecer nivel para los hijos' para establecer todos los miembros (de forma recursiva) al nivel del grupo dado.

Establecer nivel para GPOs

Si haces clic en 'Establecer nivel para GPOs', cada GPO tendrá su nivel establecido al nivel de la OU con el nivel más alto (más cercano a cero) a la que está vinculada la GPO. Las GPO no vinculadas a una OU no verán cambiado su nivel.

Obtener violaciones de segmentación

Encuentra todas las relaciones en la base de datos de BloodHound donde un objeto de AD tiene control sobre un objeto de AD de un nivel superior (más cercano a cero).

Se generan dos archivos CSV como salida:

  • adobjects-[marca de tiempo].csv: Todos los objetos de AD y en qué nivel se encuentran.

  • tiering-violations-[marca de tiempo].csv: Las violaciones de segmentación.

Ejemplo de registros en el CSV de violaciones:

SourceTierSourceTypeSourceNameSourceDistinguishednameRelationIsInheritedTargetTierTargetTypeTargetNameTargetDistinguishedname
Tier1User[email protected]CN=svc-monitor,CN=Users,DC=hot,DC=localForceChangePasswordTrueTier0User[email protected]CN=T0_JBK,CN=Users,DC=hot,DC=local
Tier2Group[email protected]CN=Wrk-Admins,CN=Groups,DC=hot,DC=localGenericWriteTier0GPO[email protected]CN={6AC1786C-016F-11D2-945F-00C04fB984F9},CN=Policies,CN=System,DC=hot,DC=local
Descargar herramienta