CrowdStrike Caça Ofuscação de Comandos Shell no VMware ESXi
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Adversários estão cada vez mais mirando hipervisores VMware ESX com sofisticadas obfuscações de comandos shell projetadas para evitar a detecção. Atores de ameaça usam técnicas que vão desde codificação hexadecimal básica até cifras criptográficas avançadas e caracteres Unicode invisíveis injetados no shell BusyBox. Esses métodos permitem que invasores executem comandos maliciosos, incluindo desativar syslogs ou criptografar máquinas virtuais, enquanto minimizam traços legíveis nos logs padrão do shell.
Investigação
Pesquisadores da CrowdStrike avaliaram sistematicamente 21 diferentes técnicas de obfuscação dentro de um ambiente controlado ESX 7.0.3. Eles agruparam esses métodos em seis categorias: sequências de escape, geração de caracteres, injeção Unicode, codificação criptográfica, cargas úteis com chave de infraestrutura e sistemas de codificação alternativos. A pesquisa confirmou que essas técnicas podem contornar a detecção tradicional baseada em palavras-chave explorando diferenças entre como os comandos são analisados e, finalmente, executados.
Mitigação
Equipes de segurança devem ir além da detecção básica baseada em palavras-chave e adotar regras de correlação baseadas em regex que identifiquem os padrões sintáticos comumente associados à obfuscação. Plataformas avançadas de SIEM, como o CrowdStrike Falcon Next-Gen SIEM, podem ajudar a detectar esses comportamentos em telemetria de shell ESX. Manter uma linha de base confiável de atividade administrativa normal também é essencial para identificar a execução anômala de shell.
Resposta
Se a execução de comandos obfuscados for detectada, os respondedores de incidentes devem isolar o host ESX afetado imediatamente para limitar o movimento lateral ou a criptografia de VM. Logs do shell devem ser analisados em busca de padrões de obfuscação conhecidos para reconstruir os comandos que foram realmente executados. Os respondedores devem também investigar a persistência por meio de tarefas agendadas ou configurações do sistema modificadas e verificar a integridade do sistema de arquivos VMFS.
Fluxo de Ataque
Detecções
Possível Enumeração de Sistema ESXCLI [Windows] (via linha de comando)
Proof of Value
Possível Enumeração ou Tentativa de Modificação do Arquivo de Configuração SSHd (via linha de comando)
Proof of Value
Possível Enumeração de Sistema ESXCLI [Linux] (via linha de comando)
Proof of Value
Recarregamento Suspeito de Serviço Syslog ESXCLI [Linux] (via linha de comando)
Proof of Value
Detecção de Comando Obfuscado no VMware ESX [Criação de Processo Linux]
Proof of Value
Execução de Simulação
Pré-requisito: A Verificação Pré-voo de Telemetria e Linha de Base deve ter sido aprovada.
Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.
-
Narrativa de Ataque e Comandos: O adversário obteve acesso ao shell de um host VMware ESX. Para evitar a detecção por ferramentas de segurança que buscam pela palavra-chave
esxcli, o invasor usa um comandoawkpara gerar a stringesxcliusando valores decimais ASCII e em seguida passa parasystem(). Esta técnica é usada para realizar mudanças de configuração (por exemplo, redefinição de hosts de log) enquanto permanece invisível para filtros simples de correspondência de padrão. -
Script de Teste de Regressão: Este script executa uma das cargas úteis específicas definidas na lógica de detecção para verificar o acionamento da regra.
#!/bin/bash # Script de simulação para acionar a regra 'Detecção de Comando Obfuscado no VMware ESX'. echo "[+] Iniciando Simulação: Execução de Comando Obfuscado" # Carga Útil 1: Usando printf dentro de um sub-shell para ocultar 'esxcli' echo "[+] Executando Carga Útil 1 (obfuscação com printf)..." $(printf "x65x73x78x63x6cx69") system syslog config get # Carga Útil 2: Usando awk para reconstruir 'esxcli' via códigos decimais ASCII echo "[+] Executando Carga Útil 2 (reconstrução com awk em ASCII)..." awk 'BEGIN{printf "%c%c%c%c%c%c",101,115,120,99,108,105} system " syslog config get"' echo "[+] Simulação Completa. Verifique o SIEM para alertas." -
Comandos de Limpeza: Como esses comandos são projetados para serem não destrutivos (usando config get), é necessário um mínimo de limpeza. No entanto, para garantir que nenhuma alteração persistente foi feita se um comando foi usado:
getorconfig get), é necessário um mínimo de limpeza. No entanto, para garantir que nenhuma alteração persistente foi feita se um comando foi usado:setcomando foi usado:# Nenhuma ação destrutiva foi realizada nesta simulação. # Se um comando 'set' foi usado, reverta para a configuração original. echo "[+] Limpeza: Nenhuma alteração foi feita na configuração do sistema."