Novo Malware VVS Stealer Alvo Conta do Discord Através de Código Python Ofuscado
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
VVS Stealer é um novo ladrão de informações baseado em Python observado à venda no Telegram. Está ofuscado com Pyarmor, empacotado com PyInstaller e persiste via a pasta de inicialização do Windows. O malware coleta tokens do Discord, credenciais de navegadores, cookies, histórico, senhas e capturas de tela. Ele também pode injetar um payload de JavaScript malicioso para sequestrar sessões ativas do Discord.
Investigação
A Palo Alto Networks Unit 42 divulgou o malware, observando que ele tem sido oferecido à venda desde abril de 2025. Pesquisadores descreveram sua técnica de ofuscação, modelo de distribuição e funcionalidade, incluindo roubo de credenciais e injeção no Discord. O relatório liga a ferramenta a atores ameaçadores de língua francesa ativos em grupos focados em ladrões no Telegram.
Mitigação
As organizações devem monitorar executáveis PyInstaller desconhecidos e atalhos inesperados na pasta de Inicialização. Implantar regras de detecção de endpoint para scripts Python ofuscados e payloads de JavaScript suspeitos. Impor autenticação multifatorial para contas do Discord e navegadores e limitar privilégios administrativos que poderiam ser abusados para o roubo de credenciais.
Resposta
Se o VVS Stealer for detectado, isole o endpoint afetado, colete artefatos de memória e arquivo e extraia IOCs. Remova a entrada de inicialização maliciosa, termine quaisquer processos do Discord injetados e force uma redefinição de senha para contas comprometidas. Conduza uma investigação forense completa para localizar credenciais adicionais roubadas e garantir que a infraestrutura C2 remota seja bloqueada.
Fluxo de Ataque
Detecções
Arquivo Python Criado Em Diretório Incomum (via file_event)
Ver
Possível Abuso do Discord como Canal C2 (via dns_query)
Ver
Possível Abuso do Discord como Canal C2 (via proxy)
Ver
Binário / Scripts Suspeitos em Local de Inicialização Automática (via file_event)
Ver
Possível Utilização do PyInstaller (via file_event)
Ver
Pacote PyInstaller VVS Stealer e Terminação do Discord [Criação de Processo no Windows]
Ver
Execução de Simulação
Pré-requisito: A Verificação de Telemetria & Linha de Base deve ter passado.
Justificativa: Esta seção detalha a execução precisa da técnica de adversário (TTP) projetada para acionar a regra de detecção. Os comandos e narrativas DEVEM refletir diretamente os TTPs identificados e buscar gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a um diagnóstico incorreto.
-
Narrativa & Comandos de Ataque:
O adversário comprometeu uma conta de usuário de baixo privilégio em uma estação de trabalho Windows. Usando um dropper PowerShell, eles lançam um executável malicioso empacotado com PyInstaller (VVS_Stealer.exe) que primeiro gera um processo com a linha de comando contendo a string “PyInstaller”. O payload então encerra à força o cliente do Discord em execução para preparar para uma etapa de injeção de roubo de token. Todas as ações ocorrem sob o contexto do usuário atual, gerando um único Criação de Processo evento que corresponde aos critérios da regra.Passo a Passo:
- Copie o pacote malicioso PyInstaller para
%TEMP%. - Execute-o com uma linha de comando que inclua explicitamente a palavra “PyInstaller”.
- O binário malicioso internamente chama
taskkill /IM Discord.exe /Fpara terminar o Discord. - A terminação gera um Criação de Processo evento onde o campo
Imagemresolve para o caminho do executável do Discord (C:Users<user>AppDataLocalDiscordapp-... Discord.exe) e a linha de comando original ainda contém “PyInstaller”.
- Copie o pacote malicioso PyInstaller para
-
Script de Teste de Regressão: O seguinte script PowerShell reproduz a telemetria exata necessária para acionar a regra de detecção. Intencionalmente, evita qualquer payload malicioso real; em vez disso, lança um processo inofensivo
notepad.exemas finge ser um executável empacotado com PyInstaller incorporando a palavra-chave na linha de comando. Também encerra qualquer processo Discord em execução para espelhar a condição “Imagem termina com Discord.exe”.# ------------------------------------------------- # Script de Simulação – Aciona a regra Sigma #f63685c4‑feea‑431b‑a749‑55cf8661e6ac # ------------------------------------------------- # 1. Garantir que o Discord esteja em execução (opcional, para garantir a terminação) $discordPath = "$env:LOCALAPPDATADiscordapp-1.0.9005Discord.exe" if (-Not (Get-Process -Name "Discord" -ErrorAction SilentlyContinue)) { Start-Process -FilePath $discordPath -WindowStyle Hidden Start-Sleep -Seconds 5 } # 2. Iniciar um processo fictício com "PyInstaller" na linha de comando. # Usando notepad.exe como um substituto benigno. $dummyCmd = "C:WindowsSystem32notepad.exe" $cmdLine = "PyInstaller_dummy_execution -run $dummyCmd" Start-Process -FilePath $dummyCmd -ArgumentList $cmdLine -WindowStyle Hidden Write-Host "[+] Processo fictício iniciado com palavra-chave PyInstaller." # 3. Imediatamente encerrar o Discord para gerar o evento de imagem Discord.exe. if (Get-Process -Name "Discord" -ErrorAction SilentlyContinue) { Stop-Process -Name "Discord" -Force Write-Host "[+] Discord.exe encerrado." } # 4. Opcional: Limpar a janela fictícia do notepad após um breve atraso. Start-Sleep -Seconds 8 Get-Process -Name "notepad" -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "[+] Limpeza concluída." -
Comandos de Limpeza: Certifique-se de que nenhum processo residual permaneça.
# Remova qualquer processo remanescente do notepad Get-Process -Name "notepad" -ErrorAction SilentlyContinue | Stop-Process -Force # Reinicie o Discord se necessário para continuidade pós-teste $discordPath = "$env:LOCALAPPDATADiscordapp-1.0.9005Discord.exe" if (-Not (Get-Process -Name "Discord" -ErrorAction SilentlyContinue)) { Start-Process -FilePath $discordPath Write-Host "[+] Discord reiniciado para operações normais." }