Volver a actualizaciones
ActualizadaJul 16, 2026

GPOHound — Actualizado!

Herramienta ofensiva de volcado y análisis de GPO que aprovecha y enriquece los datos de BloodHound

Compartir

GPOHound

GPOHound es una herramienta para volcar y analizar Objetos de directiva de grupo (GPO) extraídos del recurso compartido SYSVOL.

Proporciona un formato estructurado y formalizado para ayudar a descubrir configuraciones incorrectas, ajustes inseguros y rutas de escalada de privilegios en entornos de Active Directory.

La herramienta se integra con la base de datos Neo4j de BloodHound, utilizándola como una fuente similar a LDAP para información de Active Directory, al mismo tiempo que la enriquece agregando nuevas relaciones (bordes) y propiedades de nodo basadas en el análisis.

Características

Volcado

  • Volca GPOs en un formato JSON estructurado o en árbol

  • Maneja múltiples dominios

  • Resuelve nombres de GPO con GUIDs de GPO

  • Filtra la salida por archivos GPO, GUIDs de GPO y dominios

  • Busca en pares clave/valor usando expresiones regulares

Análisis

  • Agrupa configuraciones por objeto impactado (por ejemplo, Grupos locales, Registro)

  • Detecta miembros agregados a grupos locales privilegiados

  • Detecta configuraciones de registro inseguras, credenciales almacenadas y derechos de privilegio

  • Soporta descifrado de credenciales VNC y contraseñas GPP

  • Encuentra dominios, contenedores y UO afectados por GPOs

  • Obtiene GPOs aplicados a un usuario, equipo, UO, contenedor o dominio específico

  • Enriquece datos de BloodHound con relaciones y propiedades

Instalación

Instalar con pip

git clone "https://github.com/cogiceo/GPOHound"
cd GPOHound
pip install .

Instalar con pipx

pipx install "git+https://github.com/cogiceo/GPOHound"

Configurar APOC para Neo4j

Debes configurar Neo4j APOC para el enriquecimiento de datos de BloodHound:

  • Si estás usando la instalación estándar de Neo4j, puedes habilitar APOC copiando el archivo jar de APOC a la carpeta de plugins y luego reiniciar Neo4j:

    cp /var/lib/neo4j/labs/apoc-* /var/lib/neo4j/plugins/
    neo4j restart
    
  • Si estás instalando Neo4j con "Docker Compose", agrega la variable de entorno NEO4J_PLUGINS=["apoc"]:

    neo4j:
      image: neo4j:latest
      environment:
        - NEO4J_PLUGINS=["apoc"]
    

Para más detalles o métodos de instalación alternativos, consulta la Documentación oficial de APOC.

Agregar consultas de BloodHound

Para visualizar las relaciones y propiedades agregadas por GPOHound, puedes importar las consultas personalizadas del archivo customqueries.json en BloodHound. Por defecto, este archivo se encuentra en ~/.config/bloodhound/customqueries.json.

Requisitos previos

Volcado de SYSVOL

Comienza descargando el contenido de SYSVOL desde el controlador de dominio.

  • Descarga el SYSVOL completo:

    gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD 
    
  • Descarga solo los GPOs:

    gpohound sysvol --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD --gpos
    
  • Descarga con exclusiones:

    gpohound sysvol --dc $DC_HOST -u $USER -p $PASSWORD --exclude '/Policydefinitions/','/scripts/' --max-size 100
    

Volcado de LDAP

Recupera todos los datos necesarios de LDAP:

gpohound ldap --dc $DC_HOST -d $DOMAIN -u $USER -p $PASSWORD

BloodHound

Para el enriquecimiento de datos de BloodHound, debes recopilar datos de BloodHound usando un recopilador como bloodhound.py o SharpHound.exe e importar los datos recopilados en la interfaz de BloodHound.

Uso

Los archivos de ejemplo de GPOHound están disponibles en example.zip. Extráigalos con unzip example.zip.

Consulta CONFIG.md para instrucciones sobre cómo personalizar valores predeterminados y configuraciones.

gpohound --neo4j-user $USER --neo4j-pass $PASS dump
gpohound --neo4j-user $USER --neo4j-pass $PASS analysis

Analizar

gpohound parse "gpos/sysvols/$DOMAIN/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Registry.pol"

Volcado

gpohound dump
gpohound dump --list
gpohound dump --guid 31B2F340-016D-11D2-945F-00C04FB984F9
gpohound dump --policies scripts psscripts
gpohound dump --search 'VNC.*Server' --show

Análisis

gpohound analysis
gpohound analysis --affected
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL'
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --list
gpohound analysis --trustee 'SRV01.SEVENKINGDOMS.LOCAL' --dump
gpohound analysis --enrich
gpohound analysis --enrich-ce

Análisis y enriquecimiento actual

[!IMPORTANT]

  • Condiciones como filtros de seguridad, filtros WMI y segmentación a nivel de elemento no se interpretan.
  • No se simulan conflictos de GPO, para evitar omitir configuraciones válidas.

Grupos locales

  • Detección de usuarios asignados a grupos locales privilegiados durante el inicio de sesión

  • Detección de grupos locales privilegiados integrados renombrados.

  • Detección de fideicomisarios agregados a grupos locales privilegiados usando "Variables de proceso de preferencia" (por ejemplo, %ComputerName%, %DomainName%)

  • Detección de fideicomisarios abusables mediante secuestro de sAMAccountName

  • Detección de cualquier fideicomisario agregado a grupos locales privilegiados:

    GrupoBorde
    AdministradoresAdminTo
    Usuarios de escritorio remotoCanRDP
    Usuarios COM distribuidosExecuteDCOM
    Usuarios de administración remotaCanPSRemote
    Operadores de respaldoCanPrivEsc
    Operadores de impresiónCanPrivEsc
    Operadores de configuración de redCanPrivEsc

Registro

AnálisisPropiedad
El grupo "Todos" incluye "Inicio de sesión anónimo"
La firma de sesión del servidor SMB no está habilitadasmbSigningEnabled: false
La firma de sesión del servidor SMB no es obligatoriasmbSigningRequired: false
Se admite la autenticación NTLMv1NTLMv1Support: true
Contraseña predeterminada de inicio de sesión automático de Windows
Credenciales VNC (Genéricas: RealVNC, TightVNC, TigerVNC, etc.)*VNC*PASS* (varios)
Contraseñas almacenadas de FileZilla
Contraseña de proxy de PuTTY
Credenciales almacenadas de TeamViewer
Sesiones guardadas de WinSCP
Contraseña almacenada de Picasa

Derechos privilegiados

Los fideicomisarios privilegiados predeterminados, así como las cuentas de servicio con SID que comienzan con S-1-5-8, están excluidos del análisis.

PrivilegioDescripciónBorde
SeDebugPrivilegePermite al usuario depurar e interactuar con cualquier procesoCanPrivEsc
SeBackupPrivilegeOtorga acceso a archivos sensiblesCanPrivEsc
SeRestorePrivilegeOmite permisos de objetos durante la restauraciónCanPrivEsc
SeAssignPrimaryTokenPrivilegeHabilita la suplantación de tokens para escalada a SYSTEMCanPrivEsc
SeImpersonatePrivilegePermite la creación de procesos bajo el contexto de otro usuarioCanPrivEsc
SeTakeOwnershipPrivilegePermite a los usuarios tomar propiedad de objetos del sistemaCanPrivEsc
SeTcbPrivilegeOtorga la capacidad de actuar como parte del SOCanPrivEsc
SeCreateTokenPrivilegePermite la creación de tokens de autenticaciónCanPrivEsc
SeLoadDriverPrivilegeAutoriza la carga/descarga de controladoresCanPrivEsc
SeManageVolumePrivilegeOtorga privilegios de gestión de volúmenes o discosCanPrivEsc
SeEnableDelegationPrivilegeHabilita que cuentas de equipo y usuario sean de confianza para delegación

Mejoras

  • Mejorar el registro
  • Integrar LDAP
  • Integrar SMB
  • Analizar extensiones restantes
  • Interfaz web
  • Resaltar conflictos potenciales entre GPOs

Documentación de GPO

SYSVOL y LDAP

  • [MS-GPAC] Extensión de configuración de auditoría
  • [MS-GPCAP] Extensión de protocolo de políticas de acceso central
  • [MS-GPEF] Extensión de sistema de archivos cifrados
  • [MS-GPFAS] Estructura de datos de firewall y seguridad avanzada
  • [MS-GPFR] Extensión de protocolo de redirección de carpetas
  • [MS-GPIE] Extensión de mantenimiento de Internet Explorer
  • [MS-GPNAP] Extensión de protección de acceso a redes (NAP)
  • [MS-GPNRPT] Extensión de datos de tabla de políticas de resolución de nombres (NRPT)
  • [MS-GPOL] Protocolo principal
  • [MS-GPPREF] Estructura de datos de extensión de preferencias
  • [MS-GPREG] Codificación de extensión de registro
  • [MS-GPSB] Extensión de protocolo de seguridad
  • [MS-GPSCR] Codificación de extensión de scripts
  • [MS-GPSI] Extensión de protocolo de instalación de software

Solo LDAP

  • [MS-GPDPC] Extensión de conexiones de impresora implementadas
  • [MS-GPWL] Extensión de protocolo inalámbrico/cableado

Categorías