SharpHound diseñado para auditar y mapear relaciones de confianza, permisos, grupos y rutas de escalada de privilegios en entornos Active Directory

 

https://www.onlinetis.com

SharpHound diseñado para auditar y mapear relaciones de confianza, permisos, grupos y rutas de escalada de privilegios en entornos Active Directory

SharpHound es el recolector de datos oficial para BloodHound, diseñado para auditar y mapear relaciones de confianza, permisos, grupos y rutas de escalada de privilegios en entornos Active Directory (AD).

Ubicación y Obtención en Kali Linux

Aunque SharpHound suele ejecutarse directamente en sistemas Windows objetivo (vía ejecutable C# o script en PowerShell), Kali Linux empaqueta los binarios dentro del repositorio de BloodHound.

  1. Instalación de paquetes:

    Bash
    sudo apt update && sudo apt install bloodhound bloodhound.py -y
    
  2. Ruta de los binarios SharpHound en Kali:
    Los archivos C# (SharpHound.exe) y PowerShell (SharpHound.ps1) quedan almacenados localmente en:

    Bash
    /usr/share/bloodhound/resources/app/Collectors/
    
Opciones de Ejecución

EntornoComando / MétodoNotas
Remoto (Desde Kali)bloodhound-python -u 'Usuario' -p 'Pass' -d domain.local -dc dc.domain.local -c AllUtiliza la implementación nativa en Python sin subir binarios a Windows. Genera directamente los archivos .json.
Windows Objetivo (Binary)SharpHound.exe --CollectionMethods All --zipfilename reco.zipEjecución compilada (.NET). Genera un .zip listo para importar en la GUI de BloodHound.
Windows Objetivo (PowerShell)
Import-Module .\SharpHound.ps1


Invoke-BloodHound -CollectionMethod All

Útil si no se pueden ejecutar binarios unmanaged o se requiere ejecución fileless en memoria.
Flujo de Trabajo Típico

1.Recolección de datos:Ejecución de SharpHound.
Se ejecuta el recolector en la red o directamente dentro del dominio objetivo utilizando credenciales válidas sin privilegio elevado.

2.Generación y transferencia de archivos:Archivos ZIP / JSON.
SharpHound empaqueta las consultas LDAP, sesiones SMB y ACLs en un archivo ZIP estructurado con archivos JSON.

3.Carga y análisis en BloodHound GUI:Visualización en Kali.
Se inicia la base de datos Neo4j y BloodHound en Kali para importar el ZIP:

Bash
sudo neo4j start
bloodhound
Se ejecuta la consulta deseada en la interfaz (ej. Find Shortest Paths to Domain Admins).



En la auditoría y análisis de seguridad defensiva de Active Directory, evitar las firmas estáticas y la detección heurística de soluciones AV/EDR sobre SharpHound requiere desglosar el ejecutable original y reducir las firmas detectables generadas por la compilación por defecto.

Técnicas Comunes de Mitigación y Evasión

  • Uso del recolector remoto (bloodhound-python): La forma más efectiva de evitar la detección en el endpoint objetivo es no ejecutar binarios .NET ni scripts de PowerShell en la máquina local. Realizar la recolección LDAP/Kerberos desde un equipo externo (ej. Kali Linux) evita que el AV local escanee memoria o llamadas a la API de Windows en la estación de trabajo.

  • Ofuscación y Recompilación desde Fuente: Descargar el código fuente oficial en C# de SharpHound y renombrar clases, espacios de nombres (namespaces), proyectos y metadatos (AssemblyTitle, AssemblyProduct) elimina las firmas de cadenas de texto estáticas utilizadas por Microsoft Defender.

  • Carga en Memoria (Reflective Loading / Unmanaged PowerShell): Evitar escribir SharpHound.exe o SharpHound.ps1 en disco. Cargar el ensamblado directamente en la memoria del proceso usando runners en C# personalizados o herramientas como Donut convierte el binario en shellcode ejecutable en memoria.

  • Bypass de AMSI (Antimalware Scan Interface): Al ejecutar la versión en PowerShell (SharpHound.ps1), la interfaz AMSI inspecciona el código antes de la ejecución. Es común requerir un parche o bypass de AMSI en memoria dentro de la sesión actual de PowerShell antes de importar el módulo.

  • Parámetros de Recolección Discretos: Reducir los métodos de recolección agresivos. Por ejemplo, evitar --CollectionMethods All o deshabilitar la enumeración de sesiones locales (Session) y la inspección de registros para evitar un volumen alto de tráfico SMB/RPC sospechoso que pueda activar alertas en el EDR o en la red.

Recomendaciones de Fortificación (Perspectiva Defensiva)

Para detectar y mitigar estas técnicas en el entorno:

  1. Monitoreo de Consultas LDAP Anómalas: Configurar reglas SIEM para detectar un volumen inusualmente alto de consultas LDAP en un período corto (comportamiento de reconocimiento masivo de AD).

  2. Protección de Credenciales (Credential Guard): Habilitar Windows Defender Credential Guard para limitar el aislamiento de credenciales en memoria.

  3. Restricción de PowerShell: Implementar Constrained Language Mode (CLM) e Inspección de Código de PowerShell mediante AppLocker o Windows Defender Application Control (WDAC).


La detección de SharpHound / BloodHound mediante supervisión de eventos y SIEM se divide en tres vectores clave: la ejecución en el endpoint (procesos y AMSI), la actividad de red/LDAP (consultas masivas al Controlador de Dominio) y las conexiones SMB/RPC (enumeración de sesiones y usuarios locales).

Eventos Clave en el Visor de Eventos de Windows

1. Detección en el Endpoint (Ejecución y Modificaciones)

  • Event ID 4688 (Procesos creados): Identifica la ejecución de SharpHound.exe o de intérpretes como powershell.exe / pwsh.exe ejecutados con argumentos de línea de comandos sospechosos (-CollectionMethod, Invoke-BloodHound, Get-NetDomain).

  • Event ID 4104 (PowerShell Script Block Logging): Captura la ejecución de bloques de código en PowerShell. Permite inspeccionar el script cargado incluso si se cambió el nombre del archivo .ps1 o si se ejecutó en memoria.

  • Event ID 1102 / 4719 (Cambios en políticas de auditoría o limpieza de logs): Intentos de deshabilitar la auditoría local durante la fase de reconocimiento.

2. Detección en el Controlador de Dominio (LDAP y Autenticación)

  • Event ID 4662 (Operación realizada en objeto AD): Muestra el acceso y lectura masiva a atributos sensibles del directorio.

  • Event ID 1644 (Directorio Activo - Consultas LDAP): Registra consultas LDAP ineficientes o de alto volumen. SharpHound realiza búsquedas globales con filtros específicos (objectClass=*, sAMAccountType, atributos de delegación Kerberos, SPNs).

3. Detección de Enumeración de Red (SMB, RPC y MAPI)

  • Event ID 5140 / 5145 (Objeto de recurso compartido de red comprobado/accedido): Monitorea el acceso recurrente a carpetas SYSVOL y NETLOGON para extraer GPOs, o la conexión al pipe IPC$ (samr, lsarpc, srvsvc) para enumerar miembros del grupo local de Administradores en estaciones de trabajo.

Reglas SIEM y Lógica de Detección (Sigma / Splunk / Elastic)

Regla 1: Tráfico LDAP Inusual por Volumen o Filtros (Controlador de Dominio)

SharpHound consulta prácticamente toda la base de datos de Active Directory en pocos segundos o minutos.

  • Lógica SIEM: Alerta cuando una única IP o cuenta de usuario que no sea un servidor de administración o scanner autorizado genere más de $X$ consultas LDAP en una ventana de 1 a 5 minutos.

  • Filtros de búsqueda característicos:

    Plaintext
    (samAccountType=805306368) 
    (servicePrincipalName=*) 
    (msDS-AllowedToDelegateTo=*)
    (userAccountControl:1.2.840.113556.1.4.803:=524288)
    

Regla 2: Inspección de Bloques de Código PowerShell (Sigma)

YAML
title: Detección de Script SharpHound / BloodHound en PowerShell
status: experimental
logsource:
    category: ps_script
    product: windows
detection:
    selection:
        ScriptBlockText|contains:
            - 'Invoke-Bloodhound'
            - 'Get-BloodHoundData'
            - 'SharpHound'
            - 'ConvertFrom-UACValue'
            - 'Get-DomainSPNTicket'
    condition: selection
falsepositives:
    - Pruebas de penetración autorizadas / Red Team.
level: high

Regla 3: Conexiones SMB RPC Masivas a Múltiples Hosts

SharpHound intenta conectarse al servicio Server / SAMR de múltiples hosts para determinar quién inició sesión (Session enumeration) y quién está en el grupo local de Administradores (Local Admin enumeration).

  • Lógica SIEM: Detección de un host de origen realizando conexiones exitosas/fallidas a los puertos TCP 445 o 135 hacia más de 20 hosts distintos en menos de 2 minutos, usando cuentas de usuario no privilegiadas.

Estrategias de Mitigación Defensiva (Hardening)

  1. Restringir lecturas LDAP anónimas/no autenticadas: Configurar LDAPServerIntegrity en valor 2 (requerir firma y cifrado LDAP/S).

  2. Implementar SAMRiBA (SAM Remote Interface Blocking Architecture): Bloquear el acceso remoto a la interfaz SAMR en los endpoints para impedir que usuarios sin privilegios enumeren grupos y usuarios locales vía SMB.

  3. Desplegar Cuentas Honey / Objetos Señuelo (Deception): Crear usuarios o SPNs trampa en Active Directory ("Honeypots"). Si se realiza una consulta LDAP o solicitud TGS sobre estos objetos, se genera una alerta inmediata de alta prioridad.
https://www.onlinetis.com

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Como utilizar Fierce en kali linux

Hacking y ciberseguridad en kali linux con atk6-thcping6