# T1505.006 - vSphere Installation Bundles ## Técnica Pai [[t1505-server-software-component|T1505 - Componente de Software Servidor]] ## Descrição Adversários abusam de **vSphere Installation Bundles (VIBs)** para estabelecer persistência em hipervisores VMware ESXi. VIBs são pacotes de distribuição de software utilizados pela VMware para gerenciar atualizações, drivers e extensões em ambientes virtualizados. O que torna esse vetor particularmente perigoso é uma característica arquitetural do ESXi: o sistema de arquivos em memória (*in-memory filesystem*) perde todas as modificações após um reboot - mas VIBs são carregados no boot, tornando-os um mecanismo de persistência que sobrevive a reinicializações. Essa sub-técnica ganhou aténção da comunidade CTI a partir de 2022–2023, quando o grupo [[g1048-unc3886|UNC3886]] - associado à China - foi documentado utilizando VIBs maliciosos para instalar backdoors em hipervisores ESXi de alto valor em organizações governamentais e de defesa norte-americanas. A relevância para o contexto LATAM é significativa: VMware vSphere é amplamente adotado em data centers corporativos e provedores de nuvem no Brasil, onde ESXi frequentemente hospeda workloads críticos de negócio. ## Anatomia de um VIB Um VIB é composto por três componentes: ```mermaid graph TB A["VIB Package (.vib)"] B["VIB Payload<br/>(.vgz archive)<br/>Diretórios e arquivos instalados<br/>no ESXi no boot"] C["Signature File<br/>Verifica acceptance level<br/>(VMwareCertified, PartnerSupported,<br/>CommunitySupported, AcceptanceLevel)"] D["XML Descriptor File<br/>Metadados: nome, versão,<br/>dependências, acceptance level declarado"] A --> B A --> C A --> D classDef package fill:#8e44ad,color:#fff classDef component fill:#3498db,color:#fff class A package class B,C,D component ``` O campo de acceptance level controla quais VIBs o ESXi aceita por padrão: | Nível | Descrição | |-------|-----------| | `VMwareCertified` | Testado e certificado pela VMware | | `PartnerSupported` | Publicado por parceiro VMware confiável - **nível mínimo padrão** | | `CommunitySupported` | Sem válidação formal - requer mudança de configuração para aceitar | | `AcceptanceLevel` | Sem válidação - requer `--force` para instalar | ## Como Adversários Abusam de VIBs ```mermaid graph TB A["Acesso privilegiado ao ESXi<br/>(credential dump, CVE de hypervisor,<br/>acesso a vCenter comprometido)"] B["Redução do acceptance level<br/>esxcli software acceptance set<br/>--level=CommunitySupported"] C["Instalação do VIB malicioso<br/>esxcli software vib install<br/>--viburl=/path/to/malicious.vib"] D["OU: Bypass com --force<br/>(ignora acceptance level)"] E["VIB instalado no hypervisor:<br/>binários no /bin, scripts em /etc/rc.local.d/<br/>firewall rules personalizadas"] F["Persistência após reboot:<br/>backdoor recarregado<br/>automaticamente no boot do ESXi"] G["Acesso backdoor:<br/>listener em porta hardcoded<br/>or reverse shell para C2"] A --> B B --> C A --> D D --> C C --> E E --> F F --> G classDef initial fill:#e74c3c,color:#fff classDef bypass fill:#e67e22,color:#fff classDef install fill:#3498db,color:#fff classDef persist fill:#8e44ad,color:#fff classDef impact fill:#c0392b,color:#fff class A initial class B,D bypass class C,E install class F persist class G impact ``` ### Técnica de Mascaramento do Acceptance Level Um aspecto crítico documentado pelo MITRE é que adversários **modificam o XML descriptor file** para declarar que o VIB malicioso tem nível `PartnerSupported` - mesmo sem possuir a assinatura digital correspondente. Isso permite instalação sem alterar a configuração global de acceptance level do host, reduzindo os artefatos detectáveis. ### Persistência via rc.local.d O VIB payload pode incluir scripts em `/etc/rc.local.d/` - diretório que o ESXi executa automaticamente no boot. Isso permite: - Habilitação de regras de firewall para tráfego de backdoor - Criação de listeners em portas específicas - Execução de binários persistidos no VIB payload ## Caso Real - UNC3886 O grupo [[g1048-unc3886|UNC3886]] - identificado como ator de espionagem alinhado à China - foi documentado pela Mandiant utilizando VIBs maliciosos para implantar o backdoor [[s1218-virtualpie|VIRTUALPIE]] em hypervisores ESXi. A cadeia de ataque seguiu o padrão: 1. Comprometimento inicial via vulnerabilidade no VMware vCenter 2. Pivotamento para hosts ESXi a partir do vCenter comprometido 3. Instalação de VIBs contendo VIRTUALPIE e o backdoor VIRTUALGATE 4. Estabelecimento de persistência que sobrevivia a reboots e atualizações do ESXi 5. Uso do acesso para pivotamento para VMs guest a partir do hypervisor > [!danger] Impacto Estratégico > O acesso ao nível do hypervisor confere ao adversário visibilidade e controle sobre **todas as VMs hospedadas** - incluindo a capacidade de monitorar tráfego de rede entre VMs, acessar memória de VMs guest e persistir mesmo que as VMs individuais sejam reimplantadas ou reconstruídas. É um dos pontos de comprometimento de maior impacto em ambientes virtualizados. ## Detecção ```mermaid graph TB A["Auditoria de VIBs instalados<br/>esxcli software vib list"] B{"VIB com acceptance level<br/>< PartnerSupported ou<br/>não presente no baseline?"} C["ALERTA CRÍTICO:<br/>possível VIB malicioso"] D["Monitoramento de comandos esxcli<br/>(SSH logs, vCenter events)"] E{"esxcli software acceptance set<br/>ou vib install com --force?"} F["ALERTA ALTO:<br/>tentativa de instalar VIB<br/>não-autorizado"] G["Integridade de rc.local.d<br/>(hash comparison)"] H{"Scripts não-esperados<br/>em /etc/rc.local.d/?"} I["ALERTA CRÍTICO:<br/>possível payload de VIB"] J["Network monitoring<br/>(NSX ou firewall externo)"] K{"Tráfego inesperado<br/>originado do hypervisor ESXi?"} L["ALERTA: possível backdoor<br/>ativo do hypervisor"] A --> B B -->|Sim| C D --> E E -->|Sim| F G --> H H -->|Sim| I J --> K K -->|Sim| L classDef monitor fill:#27ae60,color:#fff classDef check fill:#3498db,color:#fff classDef alert fill:#e74c3c,color:#fff class A,D,G,J monitor class B,E,H,K check class C,F,I,L alert ``` ### Comandos de Verificação no ESXi ```bash # Listar todos os VIBs instalados com acceptance level esxcli software vib list # Verificar acceptance level global do host esxcli software acceptance get # Verificar conteúdo de scripts de startup ls -la /etc/rc.local.d/ cat /etc/rc.local.d/*.sh # Verificar listeners de rede ativos esxcli network ip connection list | grep LISTEN # Verificar regras de firewall customizadas esxcli network firewall ruleset list ``` ### Indicadores de Comprometimento (Genéricos) - VIBs com acceptance level `CommunitySupported` ou `AcceptanceLevel` em ambiente de produção - VIBs cujo nome não corresponde a componentes esperados do ambiente (drivers, ferramentas VMware oficiais) - Processos desconhecidos em execução no contexto do ESXi (verificar via `ps` no SSH) - Regras de firewall habilitando tráfego em portas não-esperadas para o hypervisor ## Mitigações | ID | Mitigação | Aplicação | |----|-----------|-----------| | [[m1046-boot-integrity\|M1046 - Boot Integrity]] | Habilitar VMware vSphere Secure Boot para garantir que apenas VIBs com assinatura válida e nível mínimo PartnerSupported sejam carregados no boot | Alta prioridade | | [[m1045-code-signing\|M1045 - Code Signing]] | Manter acceptance level global em `PartnerSupported` ou superior; nunca reduzir para `CommunitySupported` em produção; bloquear uso de `--force` via controle de acesso | Alta prioridade | | [[m1047-audit\|M1047 - Audit]] | Auditar regularmente a lista de VIBs instalados contra um baseline confiável; alertar em qualquer adição ou modificação não-planejada | Alta prioridade | ### Hardening Adicional para ESXi - Habilitar **VMware vSphere Secure Boot** - impede carregamento de VIBs sem assinatura digital válida no nível de boot UEFI - Restringir acesso SSH ao ESXi ao mínimo necessário; desabilitar SSH quando não em uso - Segmentar o tráfego de gerenciamento do ESXi em VLAN dedicada, inacessível de redes de produção - Aplicar o princípio de menor privilégio no vCenter - limitar quais contas podem acessar hosts ESXi diretamente - Monitorar eventos do vCenter relacionados a instalação de software e mudanças de configuração ## Threat Actors - [[g1048-unc3886|UNC3886]] - documentado utilizando VIBs maliciosos para instalar backdoors em ESXi de alvos governamentais e de defesa (2022–2023) ## Software Associado - [[s1218-virtualpie|VIRTUALPIE]] - backdoor Python instalado via VIB pelo UNC3886 em hypervisores ESXi comprometidos --- *Fonte: MITRE ATT&CK - T1505.006 (https://attack.mitre.org/techniques/T1505/006)*