SOC Prime Bias: Crítico

05 Jun 2026 15:40 UTC

C0XMO: Uma Nova Variante do Gafgyt com Propagação Multiplataforma

Author Photo
SOC Prime Team linkedin icon Seguir
C0XMO: Uma Nova Variante do Gafgyt com Propagação Multiplataforma
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O FortiGuard Labs identificou uma nova variante do botnet Gafgyt chamada C0XMO que se propaga explorando uma falha de estouro de buffer em roteadores DD-WRT rastreada como CVE-2021-27137. O malware usa um scanner separado baseado em Python para ampliar infecções em diferentes arquiteturas de CPU, enquanto também se apoia em ataques de credenciais fracas, várias capacidades de DDoS e rotinas para remover malware concorrente. Após a infecção, ele estabelece persistência por meio de arquivos ocultos, tarefas cron e alterações de perfis de shell antes de contatar seu servidor de comando e controle. O relatório também inclui indicadores e orientações defensivas para organizações que operam dispositivos IoT expostos.

Investigação

A análise mostra que o C0XMO abusa CVE-2021-27137 do serviço UPnP do DD-WRT para obter o acesso inicial, em seguida recupera um scanner em Python de 217.160.125.125:15527. Esse scanner realiza tentativas de força bruta de Telnet e SSH, lança vários pedidos de exploração baseados em HTTP e implanta binários específicos de arquitetura dependendo do ambiente alvo. A persistência é mantida por meio de arquivos ocultos colocados em locais como /tmp, /var/tmp, /dev/shm, e diretórios de usuários, juntamente com entradas de tarefa cron e edições de perfil de shell. O malware então se comunica com sua infraestrutura C2 em 85.215.131.70 usando uma sequência de handshake personalizada.

Mitigação

As organizações devem atualizar o firmware DD-WRT para uma versão mais recente que o conjunto de alterações 45723 e aplicar correções para todos os CVEs relacionados. Serviços remotos desnecessários, como UPnP, Telnet e SSH, devem ser desativados em dispositivos voltados para a internet sempre que possível. Credenciais fortes e únicas devem ser aplicadas em todos os dispositivos de borda e os serviços expostos devem ser revisados regularmente. Detecções baseadas em rede também devem ser implantadas para os endereços IP, portas e padrões de comando maliciosos identificados associados à campanha.

Resposta

Os defensores devem monitorar o tráfego de saída em busca de conexões com a infraestrutura de C2 conhecida e a porta de download do scanner. Alertas devem ser configurados para arquivos ocultos nomeados .sys, alterações de cron que são executadas a cada 15 minutos e execução do script do scanner. Os IPs e domínios maliciosos identificados devem ser bloqueados no firewall, e quaisquer dispositivos comprometidos devem ser isolados para análise forense e limpeza completa.

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Check Pre-flight de Telemetria & Baseline deve ter passado.

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 do Ataque & Comandos:
    O bot do adversário, já instalado no host comprometido via execução de serviço (T1546.007), inicia um handshake C2 com o servidor codificado 217.160.125.125 na porta 15527. A conexão usa um socket TCP simples para puxar comandos, correspondendo exatamente aos critérios da regra. Esta atividade é típica do comportamento “phone‑home” do botnet C0XMO.

  • Script de Teste de Regressão:

    # Simulação de comunicação C2 C0XMO – aciona a regra Sigma
    $c2Ip = "217.160.125.125"
    $c2Port = 15527
    
    # Abre uma conexão TCP, envia uma carga útil mínima, depois fecha
    $client = New-Object System.Net.Sockets.TcpClient
    $client.Connect($c2Ip, $c2Port)
    
    $stream = $client.GetStream()
    $payload = [System.Text.Encoding]::ASCII.GetBytes("PING`n")
    $stream.Write($payload, 0, $payload.Length)
    
    # Aguarda brevemente para imitar latência realista
    Start-Sleep -Seconds 2
    
    $stream.Close()
    $client.Close()
  • Comandos de Limpeza:

    # Nenhuma mudança persistente foi feita; apenas certifique-se de que quaisquer sockets abertos estejam fechados
    # (O script já fecha o socket; isso é uma rede de segurança.)
    Get-Process -Name "powershell" | Where-Object { $_.MainWindowTitle -eq "" } | Stop-Process -Force