Campanha SmartApeSG promove Remcos RAT, NetSupport RAT, StealC e Sectop RAT (ArechClient2)
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
A campanha SmartApeSG depende de uma página CAPTCHA falsa combinada com um script ClickFix para distribuir várias ameaças de acesso remoto, incluindo Remcos RAT, NetSupport RAT, StealC e Sectop RAT. O comprometimento inicial desencadeia uma cadeia de infecção em estágios, na qual cada payload se conecta ao seu próprio servidor de comando e controle. A entrega ocorre por meio de arquivos em formato de arquivamento que abusam do carregamento lateral de DLL para lançar o malware. O relatório também inclui indicadores de apoio, como domínios, endereços IP, caminhos de arquivos e hashes de arquivos.
Investigação
O analista registrou o tráfego do script ClickFix pela primeira vez às 17h11 UTC, com as comunicações do Remcos RAT iniciando um minuto depois, às 17h12 UTC. O tráfego do NetSupport RAT apareceu quatro minutos depois, o StealC foi observado aproximadamente uma hora depois, e o Sectop RAT surgiu cerca de uma hora e dezoito minutos após o StealC. Os investigadores recuperaram artefatos de arquivos de diretórios de usuários e do sistema e os mapearam de volta aos arquivos maliciosos específicos usados na cadeia.
Mitigação
Os defensores devem bloquear os domínios e endereços IP maliciosos conhecidos, enquanto observam a execução de arquivos HTA e extração suspeita de arquivos em caminhos de perfil de usuário. Proteções de navegador e e-mail devem ser fortalecidas para reduzir a exposição a click-jacking e entrega de CAPTCHA falso. As regras de detecção de endpoint também devem ser ajustadas para identificar comportamentos de carregamento lateral de DLL e processos RAT inesperados.
Resposta
Se algum dos indicadores listados for encontrado, isole o host impactado, interrompa os processos maliciosos e colete imagens de memória e disco para análise forense. Conduza uma varredura ampla de IOCs em todo o ambiente, atualize os controles de firewall para bloquear os endpoints C2 identificados e redefina qualquer credencial potencialmente comprometida.
"graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#cccccc %% Nodes victim_visits["<b>Ação</b> – A vítima visita um site comprometido onde um CAPTCHA falso injeta script malicioso"] class victim_visits action tech_user_exec_link["<b>Técnica</b> – T1204.001 Execução de Usuário: Link Malicioso<br/><b>Descrição</b>: A vítima interage com um link malicioso que leva à execução de código"] class tech_user_exec_link technique tech_user_exec_copy["<b>Técnica</b> – T1204.004 Execução de Usuário: Cópia e Colagem Maliciosa<br/><b>Descrição</b>: Código malicioso é copiado para a área de transferência e colado para execução"] class tech_user_exec_copy technique clickfix_script["<b>Ferramenta</b> – Nome: Script ClickFix (malicioso)"] class clickfix_script malware hta_creation["<b>Ação</b> – Arquivo HTA malicioso escrito em %AppData%post.hta"] class hta_creation action tech_mshta["<b>Técnica</b> – T1218.005 Execução de Proxy de Binário de Sistema: Mshta<br/><b>Descrição</b>: Mshta é usado para executar arquivos HTA"] class tech_mshta technique tech_user_exec_file["<b>Técnica</b> – T1204.002 Execução de Usuário: Arquivo Malicioso<br/><b>Descrição</b>: A vítima executa um arquivo malicioso"] class tech_user_exec_file technique hta_execution["<b>Processo</b> – mshta.exe executa post.hta"] class hta_execution process download_payload["<b>Ação</b> – HTA baixa cargas compactadas (ZIP ou RAR) de servidor remoto"] class download_payload action tech_web_protocol["<b>Técnica</b> – T1071.001 Protocolo de Camada de Aplicação: Protocolos Web<br/><b>Descrição</b>: Uso de HTTP/HTTPS para transferência de dados"] class tech_web_protocol technique malware_remcos["<b>Malware</b> – Remcos RAT"] class malware_remcos malware malware_netsupport["<b>Malware</b> – NetSupport RAT"] class malware_netsupport malware malware_stealc["<b>Malware</b> – StealC"] class malware_stealc malware malware_sectop["<b>Malware</b> – Sectop RAT"] class malware_sectop malware tech_dll_sideloading["<b>Técnica</b> – T1574.001 Seqüestro de Fluxo de Execução: Carregamento Lateral de DLL<br/><b>Descrição</b>: DLLs maliciosas são carregadas em executáveis legítimos"] class tech_dll_sideloading technique c2_bidirectional["<b>Técnica</b> – T1102.002 Serviço Web: Comunicação Bidirecional<br/><b>Descrição</b>: RAT comunica-se com C2 usando serviços web bidirecionais"] class c2_bidirectional technique c2_oneway["<b>Técnica</b> – T1102.003 Serviço Web: Comunicação Unidirecional<br/><b>Descrição</b>: RAT envia dados para C2 via serviços web unidirecionais"] class c2_oneway technique cleanup_files["<b>Ação</b> – Excluir arquivos HTA e temporários após execução"] class cleanup_files action tech_file_deletion["<b>Técnica</b> – T1070.004 Remoção de Indicadores: Exclusão de Arquivos<br/><b>Descrição</b>: Arquivos são removidos para eliminar evidências"] class tech_file_deletion technique cleanup_persistence["<b>Ação</b> – Limpar artefatos de persistência como registro ou tarefas agendadas"] class cleanup_persistence action tech_clear_persistence["<b>Técnica</b> – T1070.009 Remoção de Indicadores: Limpar Persistência<br/><b>Descrição</b>: Mecanismos de persistência são removidos"] class tech_clear_persistence technique %% Connections victim_visits –>|desencadeia| tech_user_exec_link victim_visits –>|desencadeia| tech_user_exec_copy tech_user_exec_link –>|entrega| clickfix_script tech_user_exec_copy –>|entrega| clickfix_script clickfix_script –>|escreve| hta_creation hta_creation –>|usa| tech_mshta hta_creation –>|usa| tech_user_exec_file tech_mshta –>|executa| hta_execution tech_user_exec_file –>|executa| hta_execution hta_execution –>|baixa| download_payload download_payload –>|usa| tech_web_protocol download_payload –>|entrega| malware_remcos download_payload –>|entrega| malware_netsupport download_payload –>|entrega| malware_stealc download_payload –>|entrega| malware_sectop malware_remcos –>|emprega| tech_dll_sideloading malware_netsupport –>|emprega| tech_dll_sideloading malware_stealc –>|emprega| tech_dll_sideloading malware_sectop –>|emprega| tech_dll_sideloading malware_remcos –>|comunica-se via| c2_bidirectional malware_netsupport –>|comunica-se via| c2_oneway malware_stealc –>|comunica-se via| c2_oneway malware_sectop –>|comunica-se via| c2_bidirectional hta_execution –>|desencadeia| cleanup_files cleanup_files –>|usa| tech_file_deletion cleanup_files –>|também desencadeia| cleanup_persistence cleanup_persistence –>|usa| tech_clear_persistence "
Fluxo de Ataque
Detecções
Arquivos Suspeitos no Perfil Público do Usuário (via file_event)
Uso Explícito de COMSPEC no Caminho de Imagem (via sistema)
Uso Explícito de COMSPEC no Caminho do Arquivo de Serviço (via auditoria)
Uso Explícito de COMSPEC Suspeito (via process_creation)
Comando e Controle Suspeito por Solicitação de DNS de Domínio de Nível Superior (TLD) Incomum (via dns)
Variáveis de Ambiente em Argumentos de Linha de Comando (via cmdline)
IOCs (DestinationIP) para detectar: Campanha SmartApeSG distribui Remcos RAT, NetSupport RAT, StealC, e Sectop RAT (ArechClient2)
IOCs (HashSha256) para detectar: Campanha SmartApeSG distribui Remcos RAT, NetSupport RAT, StealC, e Sectop RAT (ArechClient2)
IOCs (SourceIP) para detectar: Campanha SmartApeSG distribui Remcos RAT, NetSupport RAT, StealC, e Sectop RAT (ArechClient2)
Detecção de Tráfego do Servidor C2 da Campanha SmartApeSG [Conexão de Rede do Windows]
Execução de Simulação
Pré-requisito: Verificação Preliminar de Telemetria e Base deve ter sido aprovada.
Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para ativar 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 & Comandos de Ataque
O adversário, tendo ganho acesso à estação de trabalho da vítima, lança o componente Remcos RAT da campanha SmartApeSG. O RAT é configurado para usar 95.142.45.231:443 como seu endpoint C2 primário. Ele primeiro resolve o domínio embutido fresicrto.top (reserva) e então abre um túnel HTTPS persistente para o endereço IP. O tráfego é gerado por remcos.exe via API WinHTTP do Windows, que gera um evento Sysmon NetworkConnect e uma entrada de log do Firewall do Windows.
Passos:
- Solte o binário RAT (
remcos.exe) em%TEMP%. - Execute o binário com o argumento C2
-c 95.142.45.231:443. - Verifique a conexão de saída (via
netstat).
Estas ações mapeiam para T1102 (Serviço Web) para comunicação C2 e T1584.001 (Aquisição de domínio) como o domínio faz parte do payload.
Script de Teste de Regressão
# --------------------------------------------------------------
# Simulação de C2 do SmartApeSG – aciona regra de detecção
# --------------------------------------------------------------
# 1. Escreva um stub minimalista semelhante ao Remcos (para demonstração, use PowerShell para abrir TCP)
$c2Ip = "95.142.45.231"
$c2Port = 443
$payloadFile = "$env:TEMPremcos_stub.exe"
# Crie um executável .NET simples que abre uma conexão TCP (simula RAT)
Add-Type -TypeDefinition @"
using System;
using System.Net.Sockets;
public class Stub {
public static void Main(string[] args) {
try {
var client = new TcpClient();
client.Connect("$c2Ip", $c2Port);
System.Threading.Thread.Sleep(5000); // mantém a conexão
client.Close();
} catch (Exception ex) {
Console.Error.WriteLine(ex.Message);
}
}
}
"@ -OutputAssembly $payloadFile -CompilerOptions "/target:exe"
# 2. Execute o stub (isso gera a conexão de rede)
Start-Process -FilePath $payloadFile -WindowStyle Hidden
# 3. Opcional: Resolva o domínio reserva para comprovar atividade de DNS
Resolve-DnsName -Name "fresicrto.top" -Type A | Out-Null
# 4. Pause para observação
Start-Sleep -Seconds 10
# 5. Limpeza – mate o stub se ainda estiver em execução
Get-Process -Name "remcos_stub" -ErrorAction SilentlyContinue | Stop-Process -Force
Remove-Item -Path $payloadFile -Force
Comandos de Limpeza
# Termine quaisquer conexões restantes do stub
Get-NetTCPConnection -RemotePort 443 -RemoteAddress 95.142.45.231 -State Established |
ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
# Remova arquivos temporários (já feito no script, mas garanta estado limpo)
Remove-Item -Path "$env:TEMPremcos_stub.exe" -ErrorAction SilentlyContinue