# 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)*