Camaradas Encaracolados: Ativação Anormal do Hyper-V
Detection stack
- AIDR
- Alert
- ETL
- Query
Ativação Anormal do Hyper-V
A pesquisa revela um novo ator de ameaça, Curly COMrades, que utiliza o Windows Hyper-V para iniciar uma VM oculta do Alpine Linux em hosts comprometidos com Windows 10. A VM executa malwares personalizados (CurlyShell e CurlCat) para fornecer capacidades de shell reverso persistente e proxy, evitando a detecção típica de EDR. Técnicas adicionais incluem injeção de tickets Kerberos via PowerShell, criação de contas locais através de política de grupo e o uso de ferramentas de proxy de código aberto.
O que Curly COMrades Usa para Ocultar Malware em VMs Linux?
Curly COMrades oculta malware criando pequenos convidados Alpine Linux dentro do Microsoft Hyper-V em hosts Windows comprometidos, executando implantes personalizados (reportados como CurlyShell e CurlCat) dentro dessas VMs ocultas, enquanto usa a rede do Hyper-V (Switch Padrão) para que o tráfego de saída pareça vir do host.
Eles implantam ajudantes do PowerShell e curl.exe no host, dão nomes enganosos para VMs e restringem interfaces de gerenciamento do Hyper-V para evitar detecção, e foram documentados em uma análise da Bitdefender com indicadores técnicos e orientação para remediação.
Mitigação
Implante inspeção de rede baseada em host (por exemplo, Bitdefender NAD) para detectar tráfego anômalo de saída da pilha de rede do host. Endureça o Windows desativando ou controlando rigidamente a habilitação do recurso Hyper-V e restringindo o uso de DISM e cmdlets PowerShell que importam/iniciam VMs. Aplique Endurecimento Proativo e Redução da Superfície de Ataque (PHASR) para bloquear o uso não autorizado de binários nativos (curl, rar, Import-VM, Start-VM). Monitore para criação de novas VMs Hyper-V, arquivos VHDX/VMCX incomuns no ProgramData e modificações de crontab em VMs Linux. Detecte acesso ao LSASS e injeção de tickets Kerberos usando alertas EDR/XDR de acesso a credenciais. Impor o princípio de privilégio mínimo para scripts de política de grupo e audite a criação de contas locais. Use detecção baseada em assinatura e comportamento para implantes personalizados CurlyShell/CurlCat e ferramentas de proxy conhecidas.
Resposta
Isole hosts afetados, desative o Hyper-V e remova os arquivos de VM ocultos e imagens VHDX/VMCX associadas. Conduza uma varredura completa de sistema de arquivos e registro para os scripts PowerShell (kb_upd.ps1, screensaver.ps1, locals.ps1) e exclua-os. Redefina ou remova quaisquer contas locais não autorizadas e altere senhas. Bloqueie conexões de saída para os IPs C2 identificados (por exemplo, 45.43.91.10, 88.198.91.116) e atualize as regras de firewall. Implante regras de detecção para as assinaturas específicas de DLL/ELF do CurlyShell e CurlCat, e para as ferramentas de proxy observadas. Conduza busca de ameaça usando IOCs do repositório público do GitHub. Colabore com CERTs para compartilhamento de inteligência e monitore para atividades futuras. Aplique patches e atualizações para mitigar quaisquer CVEs explorados (se algum foi identificado).
graph TB %% Definições de Classes classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff %% Nós – Ações action_initial_setup[“<b>Ação</b> – Configuração Inicial<br/><b>Técnicas</b>: T1564.006 Ocultar Artefatos: Executar Instância Virtual, T1497 Evasão de Virtualização/Sandbox, T1059.012 CLI do Hipervisor<br/>Habilitar o Hyper-V via DISM e desativar clientes de gerenciamento”] class action_initial_setup action action_vm_deployment[“<b>Ação</b> – Implantação de VM<br/><b>Técnicas</b>: T1059.012 CLI do Hipervisor<br/>Baixar Alpine Linux VHDX com curl, extrair com WinRAR, importar e iniciar a VM via PowerShell”] class action_vm_deployment action action_vm_persistence[“<b>Ação</b> – Persistência na VM<br/><b>Técnicas</b>: T1037.004 Scripts RC, T1543 Criar/Modificar Processo do Sistema<br/>Tarefa cron executa /bin/alpine_init a cada 4 horas para iniciar o CurlyShell”] class action_vm_persistence action action_c2_communication[“<b>Ação</b> – Comunicação C2<br/><b>Técnicas</b>: T1071.001 Protocolos Web, T1102.002 Serviço Web Bidirecional<br/>CurlyShell contata endpoint HTTPS usando libcurl (GET/POST)”] class action_c2_communication action action_proxy_tunneling[“<b>Ação</b> – Proxy e Tunelamento<br/><b>Técnicas</b>: T1090.001 Proxy Interno, T1090.003 Proxy Multihop<br/>Proxy reverso SSH configurado via ProxyCommand, encaminhando tráfego por meio de proxy local SOCKS”] class action_proxy_tunneling action action_credential_abuse[“<b>Ação</b> – Abuso de Credenciais<br/><b>Técnicas</b>: T1550.003 Pass-the-Ticket, T1059.001 PowerShell<br/>Script PowerShell kb_upd.ps1 injeta tickets Kerberos forjados no LSASS”] class action_credential_abuse action action_lateral_movement[“<b>Ação</b> – Movimento Lateral<br/><b>Técnicas</b>: T1021.002 Compartilhamentos Administrativos SMB/Windows, T1135 Descoberta de Compartilhamentos de Rede<br/>Uso de tickets injetados com net use e comandos SMB para enumerar compartilhamentos e executar comandos remotos”] class action_lateral_movement action action_persistence_accounts[“<b>Ação</b> – Persistência via Contas Locais<br/><b>Técnicas</b>: T1136.001 Criar Conta Local, T1037.003 Script de Logon de Rede<br/>Scripts de Política de Grupo criam ou redefinem contas locais (por exemplo, câmera) para acesso contínuo”] class action_persistence_accounts action action_defense_evasion[“<b>Ação</b> – Evasão de Defesa<br/><b>Técnicas</b>: T1059.003 Shell de Comando do Windows, T1202 Execução Indireta de Comandos, T1001.003 Personificação de Protocolo, T1599 Ponte de Fronteira de Rede<br/>Executar todos os binários maliciosos dentro da VM oculta e usar codificação Base64 personalizada para reduzir a pegada forense”] class action_defense_evasion action %% Nós – Ferramentas / Processos / Malware tool_dism[“<b>Ferramenta</b> – DISM<br/><b>Descrição</b>: Implanta recursos do Windows como o Hyper-V”] class tool_dism tool tool_powershell[“<b>Ferramenta</b> – PowerShell<br/><b>Descrição</b>: Ambiente de scripts usado para importação de VM, injeção de tickets e outras automações”] class tool_powershell tool process_curl[“<b>Processo</b> – curl<br/><b>Descrição</b>: Baixa o VHDX do Alpine e realiza requisições C2 HTTPS”] class process_curl process process_winrar[“<b>Processo</b> – WinRAR<br/><b>Descrição</b>: Extrai o arquivo VHDX baixado”] class process_winrar process malware_curlyshell[“<b>Malware</b> – CurlyShell<br/><b>Descrição</b>: Backdoor personalizado executado dentro da VM Alpine oculta”] class malware_curlyshell malware malware_ssh_reverse[“<b>Malware</b> – Proxy Reverso SSH<br/><b>Descrição</b>: Configurado via ~/.ssh/config para tunelar tráfego através de SOCKS”] class malware_ssh_reverse malware script_kb_upd[“<b>Malware</b> – kb_upd.ps1<br/><b>Descrição</b>: Script PowerShell que forja tickets Kerberos e os injeta no LSASS”] class script_kb_upd malware %% Conexões – Fluxo action_initial_setup u002du002d>|usa| tool_dism action_initial_setup u002du002d>|usa| tool_powershell action_vm_deployment u002du002d>|baixa com| process_curl action_vm_deployment u002du002d>|extrai com| process_winrar action_vm_deployment u002du002d>|importa/inicia via| tool_powershell action_vm_persistence u002du002d>|cria tarefa cron em| malware_curlyshell action_c2_communication u002du002d>|comunica via| process_curl action_c2_communication u002du002d>|backdoor| malware_curlyshell action_proxy_tunneling u002du002d>|estabelece| malware_ssh_reverse action_credential_abuse u002du002d>|executa| script_kb_upd action_credential_abuse u002du002d>|usa| tool_powershell action_lateral_movement u002du002d>|utiliza tickets de| script_kb_upd action_lateral_movement u002du002d>|usa comandos SMB| tool_powershell action_persistence_accounts u002du002d>|cria contas via| tool_powershell action_defense_evasion u002du002d>|executa binários em| action_vm_deployment action_defense_evasion u002du002d>|ofusca dados com| process_curl %% Fim do diagrama
Cadeia de Ataque de Máquinas Virtuais Ocultas do Hyper-V
Regras de Detecção
Detecção de Importação e Início de Máquina Virtual Hyper-V Baseados em PowerShell [Windows Powershell]
Ver
Possível Tentativa de Consulta de Comunicação de Domínio IP (via DNS)
Ver
IOCs (IP) para detectar: Curly COMrades: Evasão e Persistência via Hyper-V Virtual Oculto…
Ver
IOCs (hash) para detectar: Curly COMrades: Evasão e Persistência via Hyper-V Virtual Oculto…
Ver
Uso Suspeito de CURL (via linha de comando)
Ver
Instruções de Simulação
Execução da Simulação
Pré-requisito: A Verificação de Pré-voo de Telemetria e Linha de Base deve ter sido aprovada.
Racional: 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. Exemplos abstratos ou não relacionados levarão a um diagnóstico incorreto.
-
Narrativa do Ataque & Comandos:
O atacante já comprometeu uma conta de usuário de baixo privilégio e escalou para uma conta de serviço que possui direitos de Administrador do Hyper-V. Para manter a persistência furtiva, eles criam uma imagem de VM oculta armazenada no diretório de cache do AppV (c:programdatamicrosoftAppVappVirtual Machines1DBCC80B-5803-4AF1-8772-712C688F408A.vmcx). Usando PowerShell, eles importam esta VM silenciosamente e a iniciam com o nome WSL, disfarçando-se como uma instância legítima do Subsistema Windows para Linux. Esta linha de comando exata corresponde às strings codificadas na regra Sigma, garantindo que o alerta seja acionado. -
Script de Teste de Regressão:
# ------------------------------------------------- # Simulação da persistência do Curly COMrades Hyper-V # ------------------------------------------------- # Variáveis (espelhando as strings exatas na regra) $vmPath = 'c:programdatamicrosoftAppVappVirtual Machines1DBCC80B-5803-4AF1-8772-712C688F408A.vmcx' $vmName = 'WSL'