vCenterHound: Mapeando VMware vCenter en BloodHound
28 de agosto de 2025
Tiempo estimado de lectura: 5 minutos | Dificultad técnica: Intermedia
Conclusiones clave
- vCenterHound permite extraer información de ambientes VMware y representarla en BloodHound, facilitando la identificación de rutas de ataque.
- La herramienta obtiene datos sobre la infraestructura, permisos y roles mediante un archivo JSON compatible con BloodHound.
- Los nodos y edges generados proporcionan una vista clara de las relaciones entre usuarios, grupos y recursos en el entorno VMware.
- Un análisis cuidadoso de estos datos puede revelar privilegios ocultos que podrían ser explotados en un ataque interno.
- Recomienda usar SharpHound en paralelo para obtener una visión más amplia que incluya Active Directory.
Índice
Introducción
Dentro de los entornos empresariales, VMware vCenter se considera un recurso esencial, ya que centraliza la supervisión de clusters, ESXi, máquinas virtuales (VMs), datastores, redes y, naturalmente, permisos. Imagina poder extraer toda esta información y presentarla en BloodHound como si fueran relaciones de Active Directory. Eso es lo que ofrece la herramienta que presentaremos hoy: vCenterHound.
Proceso de Instalación
Para comenzar, necesitas tener Python 3.8 o superior, además de algunas librerías necesarias. Los pasos para la instalación son los siguientes:
git clone https://github.com/MorDavid/vCenterHound
cd vCenterHound
pip3 install pyvmomi requests
Uso del Software
Carga el Modelo Visual en BloodHound
Antes de proceder a la exportación, es imprescindible indicar a BloodHound cómo serán representados los nuevos nodos/edges. Utiliza el siguiente comando:
python update_custom_nodes_to_bloodhound.py \
-s https://bloodhound.tuempresa.local \
-u [email protected] -p 'TuPassword123' \
-m model.json -s https://bloodhound.tuempresa.local
Extracción de Datos de vCenter
Para conectarte a un vCenter, ejecuta el siguiente comando:
python vCenterHound.py -s vc.empresa.local -u [email protected] -p 'TuPassword123'
Si necesitas conectarte a múltiples vCenters, aplica este otro comando:
python vCenterHound.py -s vc1.local,vc2.local -u admin -p 'pass123'
La exportación con un nombre específico se puede realizar así:
python vCenterHound.py -s vc.local -u admin -p 'pass123' -o vmware_bloodhound.json
Si prefieres más información en la consola, puedes añadir la opción --verbose
:
python vCenterHound.py -s vc.local -u admin -p 'pass123' --verbose
Tipos de Nodos Creado
Algunos nodos que podrás visualizar en BloodHound incluyen:
- vCenter_Datacenter
- vCenter_Cluster
- vCenter_ESXiHost (incluyendo modelo, RAM, CPU, estado, etc.)
- vCenter_VM (con información de IPs, MAC, VMware Tools, snapshot, etc.)
- vCenter_User / vCenter_Group
- vCenter_Role / vCenter_Privilege
Las relaciones (edges) de mayor interés son:
- vCenter_Hosts: un ESXi → sus VMs
- vCenter_UsesDatastore: VM → Datastore
- vCenter_UsesNetwork: VM → Network
- vCenter_HasPermission: User/Group → Objeto (detalles del rol incluidos)
- vCenter_MemberOf: pertenencia entre grupos
Conclusiones
Considera el escenario en el que tienes un usuario con un rol que a primera vista parece inocente en un datacenter. A través de BloodHound, podrás trazar la conexión: Usuario → Rol → Privilegios → Datacenter → ESXi → VM crítica, lo que puede revelar que esta persona realmente tiene la capacidad de encadenar acciones para acceder a un dominio crítico. En resumen, si participas en actividades de red team, pentesting interno, o simplemente administras entornos VMware y deseas comprender profundamente los usuarios con poder sobre los recursos, la combinación de vCenterHound y BloodHound será invaluable para ti.
Consejo adicional: No olvides ejecutar SharpHound en paralelo para recopilar datos de Active Directory y así poder analizar cómo se entrelazan con la información exportada por vCenterHound. Las rutas de ataque que cruzan múltiples silos son notoriamente efectivas.
Referencias
Etiquetas: red team, virtualización, Windows
Comentarios
Publicar un comentario