Malware Encontrado no Repositório Popular do Hugging Face
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Pesquisadores da HiddenLayer descobriram código malicioso hospedado no repositório Open-OSS/privacy-filter no Hugging Face, que imita um projeto legítimo da OpenAI. O repositório continha um script loader.py que buscava um comando PowerShell de jsonkeeper.com, o qual baixava um arquivo de lote de segunda etapa e um infostealer baseado em Rust. A carga útil exfiltra credenciais, dados do navegador, arquivos de carteiras de criptomoedas e capturas de tela, depois se autodeleta após a execução de uma tarefa agendada única.
Investigação
A análise identificou seis etapas desde a isca inicial até o infostealer final em Rust, incluindo uma execução oculta de PowerShell, um downloader que recupera o update.bat do api.eth-fastscan.org, e um arquivo de lote que cria um script runner temporário e uma tarefa agendada transitória. Foi observada atividade de tráfego na rede para um domínio C2 recargapopular.com e um domínio relacionado welovechinatown.info. Foram encontrados vários repositórios do Hugging Face sob o usuário anthfu reutilizando o mesmo loader e URL do C2.
Mitigação
Bloqueie os domínios e URLs maliciosos listados no perímetro da rede e desative a execução de scripts PowerShell não assinados nos endpoints. Remova quaisquer arquivos baixados dos repositórios comprometidos e revogue quaisquer credenciais que possam ter sido coletadas. Implemente monitoramento rigoroso para a criação de tarefas agendadas suspeitas e para linhas de comando PowerShell anormais.
Resposta
Isole qualquer host que executo o loader ou start.bat, tratando-o como completamente comprometido e reconstruindo o sistema. Rode todas as senhas armazenadas, cookies de sessão, tokens OAuth e credenciais de carteira de criptomoedas. Procure conexões históricas com os domínios maliciosos e a presença dos caminhos de arquivos e nomes de tarefas agendadas indicados.
"graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffcc99 classDef process fill:#ff9966 classDef malware fill:#ff6666 classDef credential fill:#ccffcc classDef exfil fill:#c0c0c0 classDef operator fill:#ff9900 %% Node definitions malicious_repo["<b>Recurso</b> – <b>Repositório Hugging Face</b><br/>Contém start.bat malicioso e loader.py"] class malicious_repo file action_user_execution_link["<b>Ação</b> – <b>T1204.001 Execução de Usuário: Link Malicioso</b><br/>A vítima clica em um link para o repositório malicioso"] class action_user_execution_link action file_start_bat["<b>Arquivo</b> – start.bat<br/>Script de lote invocado pela vítima"] class file_start_bat file file_loader_py["<b>Arquivo</b> – loader.py<br/>Carregador Python que verifica somas de verificação e desativa a verificação SSL"] class file_loader_py file action_user_execution_file["<b>Ação</b> – <b>T1204.002 Execução de Usuário: Arquivo Malicioso</b><br/>A vítima executa loader.py"] class action_user_execution_file action action_proxy_execution["<b>Ação</b> – <b>T1127 Execução de Utilitários Confiáveis de Desenvolvedor Proxy</b><br/>loader.py lança PowerShell com bypass e janela oculta"] class action_proxy_execution action process_powershell["<b>Processo</b> – PowerShell<br/>Executa linha de comando remota"] class process_powershell process action_taint_shared_content["<b>Ação</b> – <b>T1080 Contaminação de Conteúdo Compartilhado</b><br/>PowerShell oneu2011liner baixa update.bat do api.ethu2011fastscan.org"] class action_taint_shared_content action file_update_bat["<b>Arquivo</b> – update.bat<br/>Script de lote que adiciona exclusões do Defender e cria tarefa agendada"] class file_update_bat file action_hide_artifacts["<b>Ação</b> – <b>T1564.012 Esconder Artefatos: Exclusões de Arquivo/Caminho</b><br/>Adiciona exclusões do Microsoft Defender para arquivos de carga útil"] class action_hide_artifacts action action_hijack_execution["<b>Ação</b> – <b>T1574 Sequestro de Fluxo de Execução</b><br/>Cria tarefa agendada única MicrosoftEdgeUpdateTaskCore para executar a carga útil como SYSTEM"] class action_hijack_execution action process_scheduled_task["<b>Processo</b> – Tarefa Agendada<br/>Executa a carga útil Rust com privilégios de SYSTEM"] class process_scheduled_task process malware_rust_payload["<b>Malware</b> – Carga Útil Rust<br/>Executa verificações antiu2011análise e desativa AMSI/ETW"] class malware_rust_payload malware action_credential_collection["<b>Ação</b> – <b>T1555 Credenciais de Armazenamentos de Senhas</b><br/>Infostealer extrai credenciais de Chromium, Firefox, Discord e carteira"] class action_credential_collection credential action_credential_files["<b>Ação</b> – <b>T1552.001 Credenciais Não Seguras: Credenciais Em Arquivos</b><br/>Coleta arquivos de sementes de SSH, FTP, VPN e carteira"] class action_credential_files credential action_os_credential_dump["<b>Ação</b> – <b>T1003 Despejo de Credenciais do Sistema Operacional</b><br/>Recupera chaves de navegador criptografadas"] class action_os_credential_dump credential action_screen_capture["<b>Ação</b> – <b>T1113 Captura de Tela</b><br/>Captura capturas de tela de múltiplos monitores"] class action_screen_capture malware action_data_encoding["<b>Ação</b> – <b>T1132 Codificação de Dados</b><br/>Pacote de dados em JSON compactado gzip"] class action_data_encoding malware action_exfiltration["<b>Ação</b> – <b>T1567.002 Exfiltração por Serviço Web</b><br/>Posta dados codificados via HTTPS para recargapopular.com"] class action_exfiltration exfil %% Connections malicious_repo –>|contain| file_start_bat malicious_repo –>|contain| file_loader_py action_user_execution_link –>|leads_to| file_start_bat action_user_execution_link –>|leads_to| file_loader_py file_start_bat –>|executado_por| action_user_execution_file file_loader_py –>|executado_por| action_user_execution_file action_user_execution_file –>|trigger| action_proxy_execution action_proxy_execution –>|launch| process_powershell process_powershell –>|baixa| file_update_bat file_update_bat –>|executa| action_hide_artifacts action_hide_artifacts –>|cria| action_hijack_execution action_hijack_execution –>|spawns| process_scheduled_task process_scheduled_task –>|executa| malware_rust_payload malware_rust_payload –>|realiza| action_credential_collection malware_rust_payload –>|realiza| action_credential_files malware_rust_payload –>|realiza| action_os_credential_dump malware_rust_payload –>|realiza| action_screen_capture malware_rust_payload –>|codifica| action_data_encoding action_data_encoding –>|exfiltrates| action_exfiltration "
Fluxo de Ataque
Detecções
Chamada de Métodos .NET Suspeitos do PowerShell (via powershell)
Visualizar
IOCs (HashSha256) para detectar: Malware Encontrado no Repositório em Tendência do Hugging Face “Open-OSS/privacy-filter”
Visualizar
IOCs (SourceIP) para detectar: Malware Encontrado no Repositório em Tendência do Hugging Face “Open-OSS/privacy-filter”
Visualizar
IOCs (DestinationIP) para detectar: Malware Encontrado no Repositório em Tendência do Hugging Face “Open-OSS/privacy-filter”
Visualizar
Detecção de Comunicação Maliciosa C2 no Repositório Hugging Face [Conexão de Rede do Windows]
Visualizar
Atividade Oculta de PowerShell e CMD para Execução Maliciosa [Criação de Processo do Windows]
Visualizar
Execução de Simulação
Pré-requisito: O Verificação de Pré-voo de Telemetria e Linha de Base deve ter passado.
Racional: 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 a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a diagnósticos errôneos.
-
Narrativa e Comandos do Ataque:
O atacante obteve acesso a uma estação de trabalho Windows e deseja executar uma carga útil maliciosa com direitos elevados enquanto permanece invisível para o usuário. Eles:- Cria um one-liner PowerShell que gera um shell CMD oculto (
/k) e imediatamente o eleva usandoStart-Process -Verb RunAs. - Executa este one-liner de uma sessão existente do PowerShell, garantindo que a árvore de processos contenha um instância oculta do PowerShell and uma instância CMD lançada com
/k. - O CMD elevado pode então ser usado para baixar e executar a carga útil final.
- Cria um one-liner PowerShell que gera um shell CMD oculto (
-
Script de Teste de Regressão:
# --------------------------------------------------------- # Script do adversário simulado – PowerShell oculto + CMD RunAs # --------------------------------------------------------- $maliciousCmd = "cmd.exe /k echo Atacante elevou && ping -n 5 127.0.0.1" $psCommand = "-ExecutionPolicy Bypass -WindowStyle Hidden -Command `"Start-Process -FilePath 'powershell.exe' -ArgumentList `"$maliciousCmd`" -Verb RunAs`"" # Inicia PowerShell oculto que por sua vez executa o CMD elevado Start-Process -FilePath "powershell.exe" -ArgumentList $psCommand -WindowStyle Hidden -
Comandos de Limpeza:
# Termina quaisquer processos CMD elevados remanescentes gerados pelo teste Get-Process -Name "cmd" -ErrorAction SilentlyContinue | Where-Object { $_.StartInfo.Arguments -match "/k echo Atacante elevou" } | Stop-Process -Force # Opcionalmente remove qualquer arquivo temporário, se criado (nenhum neste simples demo)