RUSTGate: Uma Isca de Enxame de Drones Aponta para Potencial Alvo no Setor de Defesa
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Um Trojan de Acesso Remoto (RAT) recém-identificado, baseado em Rust, chamado RUSTGate, usa um tema de pesquisa de enxame de drones como isca de engenharia social. O malware segue uma cadeia de infecção em várias etapas envolvendo arquivos LNK maliciosos, scripts de download em lote e tarefas agendadas para implantar o implante final. Uma vez ativo, o RUSTGate foca no roubo geral de arquivos e exfiltração por meio de comunicações C2 HTTP criptografadas.
Investigação
A investigação focou em um servidor de preparação descoberto através do Hunt.io que expôs toda a cadeia de infecção. Os pesquisadores interagiram com o protocolo C2 usando solicitações sintéticas e identificaram o AES-256-GCM para ofuscação de mensagens juntamente com um backend baseado em Python Flask. A análise também revelou a lógica de roubo focada em arquivos do RUSTGate e rotinas automatizadas de coleta de dados.
Mitigação
Os defensores devem priorizar a monitoração de arquivos LNK suspeitos que usam rundll32.exe para lançar shells de comando. Controles rigorosos sobre downloads em diretórios de Temp e a monitoração da criação não autorizada de tarefas agendadas também são importantes. A segmentação de rede e a detecção de tráfego HTTP de saída para IPs incomuns sobre portas não padrão podem, ainda, interromper a atividade C2.
Resposta
Se a atividade do RUSTGate for detectada, os respondedores devem isolar imediatamente o host afetado e preservar o upload_state.json arquivo para determinar quais dados podem ter sido comprometidos. Capturas completas de pacotes do tráfego para IPs C2 identificados devem ser coletadas para descriptografia retrospectiva. Os sistemas também devem ser verificados para a NetworkDiagnostics tarefas agendadas e arquivos residuais em C:WindowsTemp.
Fluxo de Ataque
Ainda estamos atualizando esta parte.
Detecções
Possível Arquivo LNK Malicioso com Extensão Dupla (via cmdline)
Uso Suspeito de CURL (via cmdline)
Download de Arquivo Suspeito Direto IP (via proxy)
IOCs (HashSha256) para detectar: RUSTGate: Uma Isca de Enxame de Drones Aponta para Possível Direcionamento ao Setor de Defesa
IOCs (SourceIP) para detectar: RUSTGate: Uma Isca de Enxame de Drones Aponta para Possível Direcionamento ao Setor de Defesa
IOCs (DestinationIP) para detectar: RUSTGate: Uma Isca de Enxame de Drones Aponta para Possível Direcionamento ao Setor de Defesa
Detecção de Comunicações de Comando e Controle do RUSTGate [Conexão de Rede do Windows]
Detecção de Atividades de Implante do RUSTGate [Evento de Arquivo do Windows]
Detecção de Execução de Comandos do RUSTGate via Rundll32, Cmd, Curl e PowerShell [Criação de Processo do Windows]
Execução de Simulação
-
Narrativa de Ataque e Comandos: O adversário conseguiu estabelecer um ponto de apoio na estação de trabalho Windows. Para manter o controle e receber mais instruções, o malware RUSTGate deve realizar um “heartbeat” ou “check-in” com seu servidor de Comando e Controle (C2). O malware está programado para se conectar ao IP codificado
5.252.177.210na porta8090. Para diferenciar seu tráfego da navegação padrão na web, ele adiciona um caminho URI específico, como/register, à solicitação. Esta simulação usa PowerShell para imitar este exato aperto de mão de rede para validar se a lógica de detecção do SOC é ativada nesse padrão específico de C2. -
Script de Teste de Regressão:
# Script de Simulação de Check-in de C2 do RUSTGate # Este script imita a assinatura de rede do RUSTGate para validar detecção. $TargetIP = "5.252.177.210" $TargetPort = "8090" $TargetURI = "/register" $Url = "http://$($TargetIP):$($TargetPort)$($TargetURI)" Write-Host "[*] Simulando comunicação C2 do RUSTGate para $Url" -ForegroundColor Cyan try { # Usando Invoke-WebRequest para gerar a telemetria específica do URI e Porta $Response = Invoke-WebRequest -Uri $Url -Method Get -ErrorAction SilentlyContinue Write-Host "[+] Solicitação enviada com sucesso (erro de conexão esperado se IP estiver inativo)." -ForegroundColor Green } catch { Write-Host "[!] Solicitação concluída (como esperado para um endpoint C2 não existente)." -ForegroundColor Yellow } -
Comandos de Limpeza:
# Nenhum artefato persistente é criado por esta simulação. # Apenas confirmando a finalização do processo. Write-Host "[*] Simulação completa. Nenhuma limpeza necessária." -ForegroundColor White