VMware ESX / vCenter Pentesting

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Enumeración

nmap -sV --script "http-vmware-path-vuln or vmware-version" -p <PORT> <IP>
msf> use auxiliary/scanner/vmware/esx_fingerprint
msf> use auxiliary/scanner/http/ms15_034_http_sys_memory_dump

Bruteforce

msf> auxiliary/scanner/vmware/vmware_http_login

Si encuentras credenciales válidas, puedes usar más metasploit scanner modules para obtener información.

ESXi Post-Exploitation & Ransomware Operations

Flujo de ataque dentro de entornos virtuales

  • Desarrollar: mantener un agente de gestión ligero (p. ej., MrAgent), encryptor (p. ej., Mario), e infraestructura de leak.
  • Infiltrar: comprometer la gestión de vSphere, enumerar hosts, robar datos y preparar payloads.
  • Desplegar: desplegar agentes en cada host ESXi, dejar que hagan polling a C2 y que obtengan el encryptor cuando se indique.
  • Extorsionar: leak datos de proof-of-compromise y ejecutar ransom chats una vez confirmada la encriptación.

Primitivas para tomar control del hypervisor

Una vez obtenida ejecución de comandos en una consola/SSH de ESXi, los atacantes normalmente ejecutan los siguientes comandos de gestión para identificar y aislar el host antes del despliegue de ransomware:

uname -a                                   # hostname / build metadata for tracking
esxcli --formatter=csv network nic list    # adapter + MAC inventory
esxcli --formatter=csv network ip interface ipv4 get
esxcli network firewall set --enabled false
/etc/init.d/vpxa stop                      # cut vCenter off from the host
passwd root                                # rotate credentials under attacker control

El mismo agente suele mantener un bucle persistente que consulta una URI de C2 codificada. Cualquier estado inalcanzable provoca reintentos, lo que significa que el beacon permanece activo hasta que los operadores envíen instrucciones.

Canal de instrucciones estilo MrAgent

Los agentes de gestión ligeros exponen un conjunto conciso de instrucciones extraído de la cola de C2. Ese conjunto es suficiente para operar docenas de hypervisors comprometidos sin interactive shells:

InstrucciónEfecto
ConfigSobrescribe la configuración JSON local que define directorios objetivo, retardos de ejecución o limitación, permitiendo reasignaciones en caliente sin redeplegar binarios.
InfoDevuelve información de build del hypervisor, IPs y metadatos de adaptadores recopilados con las sondas uname/esxcli.
ExecInicia la fase de ransomware: cambia las credenciales de root, detiene vpxa, opcionalmente programa un retraso de reinicio y luego descarga y ejecuta el encryptor.
RunImplementa un remote shell escribiendo comandos arbitrarios provistos por el C2 en ./shmv, haciendo chmod +x y ejecutándolo.
RemoveEjecuta rm -rf <path> para limpiar herramientas o realizar borrado destructivo.
Abort / Abort_fDetiene cifrados en cola o mata hilos de worker en ejecución si el operador quiere pausar acciones posteriores al reinicio.
QuitTermina el agente y rm -f su binario para una auto-eliminación rápida.
WelcomeAbusa de esxcli system welcomemesg set -m="text" para mostrar avisos de rescate directamente en el banner de la consola.

Internamente estos agentes mantienen dos blobs JSON protegidos por mutex (configuración de runtime + estado/telemetría) para que hilos concurrentes (p.ej. beaconing + encryption workers) no corrompan el estado compartido. Las muestras suelen estar rellenadas con código basura para ralentizar análisis estático superficial, pero las rutinas centrales permanecen intactas.

Enfoque orientado a virtualización y backups

Los encryptors estilo Mario sólo recorren raíces de directorio suministradas por el operador y tocan artefactos de virtualización que importan para la continuidad del negocio:

ExtensionTarget
vmdk, vmem, vmsd, vmsn, vswpDiscos de VM, instantáneas de memoria y archivos de respaldo de swap.
ova, ovfBundles/metadatos de appliances de VM portátiles.
vibBundles de instalación de ESXi que pueden impedir la remediación o la aplicación de parches.
vbk, vbmBackups de VM de Veeam + metadatos para sabotear restauraciones en el host.

Particularidades operativas:

  • Cada directorio visitado recibe How To Restore Your Files.txt antes del cifrado para asegurar que los canales de rescate estén anunciados incluso en hosts desconectados.
  • Los archivos ya procesados son omitidos cuando sus nombres contienen .emario, .marion, .lmario, .nmario, .mmario o .wmario, evitando un doble cifrado que rompería el decryptor de los atacantes.
  • Las cargas cifradas son renombradas con un sufijo estilo *.mario (comúnmente .emario) para que los operadores puedan verificar la cobertura remotamente en consolas o listados de datastores.

Actualizaciones de cifrado por capas

Las builds recientes de Mario reemplazan la rutina original lineal de clave única por un diseño disperso y multi-clave optimizado para VMDKs de cientos de gigabytes:

  • Esquema de claves: Genera una clave primaria de 32 bytes (almacenada alrededor de var_1150) y una clave secundaria independiente de 8 bytes (var_20). Los datos se transforman primero con el contexto primario y luego se remezclan con la clave secundaria antes de las escrituras en disco.
  • Encabezados por archivo: Los buffers de metadatos (p.ej. var_40) rastrean mapas de chunks y flags para que el decryptor privado de los atacantes pueda reconstruir el layout disperso.
  • Chunking dinámico: En lugar de un bucle constante 0xA00000, el tamaño y los offsets de los chunks se recomputan según el tamaño del archivo, con umbrales extendidos hasta ~8 GB para ajustarse a imágenes de VM modernas.
  • Cobertura dispersa: Solo se tocan regiones elegidas estratégicamente, reduciendo drásticamente el tiempo de ejecución mientras se corrompen metadatos VMFS, estructuras NTFS/EXT4 dentro del guest o índices de backup.
  • Instrumentación: Las builds mejoradas registran por chunk recuentos de bytes y totales (encrypted/skipped/failed) en stdout, dando a los afiliados telemetría durante intrusiones en vivo sin herramientas extra.

See also

LPE en Linux vía descubrimiento del servicio VMware Tools (CWE-426 / CVE-2025-41244):

Vmware Tools Service Discovery Untrusted Search Path Cve 2025 41244

References

Tip

Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprende y practica Hacking en Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks