Contexte — Source: Sysdig Threat Research Team (TRT). Dans l’analyse d’un Next.js compromis peu après la divulgation de React2Shell (CVE-2025-55182), Sysdig TRT documente « EtherRAT », un implant inédit bien plus avancé que les charges observées initialement (miners, vols d’identifiants).

🚨 Points saillants: EtherRAT est une porte dérobée persistante en quatre étapes (shell dropper → déploiement → déchiffreur → implant) qui exploite React2Shell pour exécuter du code à distance sur des React Server Components (React 19.x, Next.js 15.x/16.x avec App Router). L’implant télécharge un runtime Node.js légitime (v20.10.0) depuis nodejs.org, charge un payload chiffré (AES‑256‑CBC), et établit un C2 via un smart contract Ethereum (résolution par consensus multi‑RPC) avec polling toutes les 500 ms et exécution de code JavaScript arbitraire.

🧠 Caractéristiques techniques clés:

  • C2 blockchain: lecture d’un contrat (0x22f96d…ead4) via neuf endpoints RPC publics; sélection par majorité pour éviter l’empoisonnement/sinkhole; mise à jour du C2 par simple modification on‑chain.
  • Dissuasion de détection: trafic ressemblant à des requêtes CDN (chemins/UUID aléatoires, extensions .png/.jpg/.gif/.css/.ico/.webp, en‑tête X-Bot-Server), runtime Node officiel au lieu de binaires intégrés, exécution silencieuse (nohup, redirection /dev/null), auto‑mise à jour via /api/reobf/ remplaçant le code sur disque.
  • Persistance Linux (x5): service systemd user, entrée XDG autostart, cron @reboot, injection .bashrc et .profile; suivi d’état pour éviter les doublons.

🎯 Attribution et comparaison: L’implant présente des recoupements avec des outillages DPRK/“Contagious Interview” (pattern de loader chiffré, proximité avec BeaverTail) et avec des techniques de C2 blockchain déjà vues (npm colortoolsv2/mimelib2), tout en s’en distinguant par le consensus multi‑RPC et le téléchargement dynamique de Node.js. Par contraste avec les activités China‑nexus sur React2Shell (Cobalt Strike/Sliver/Vshell, C2 codé en dur, objectifs opportunistes), EtherRAT vise une persistence long terme et une opsec renforcée. L’acteur n’est pas confirmé.

🛡️ Détection et mitigations (selon Sysdig): règles runtime (modifs systemd/cron/shell rc, commandes suspects sous serveur web, téléchargements nodejs.org/dist), chasse réseau (eth_call vers le contrat, rafales de requêtes RPC Ethereum, motifs d’URL statiques aléatoires, en‑tête X-Bot-Server), chasse filesystem (répertoires cachés ~/.local/share, node embarqué dans sous‑dossiers, services systemd user hex aléatoires). Recommandations: patch React/Next.js, rebuild/redeploy, rotation de secrets, revue des logs RSC, et surveillance RPC Ethereum.

IOCs

  • Staging: 193.24.123.68:3001 ; URL payload: http://193.24.123.68:3001/gfdsgsdfhfsd_ghsfdgsfdgsdfg.sh
  • Ethereum (statique): Contrat 0x22f96d61cf118efabc7c5bf3384734fad2f6ead4 ; Paramètre 0xE941A9b283006F5163EE6B01c1f23AA5951c4C8D ; Sélecteur 0x7d434425

TTPs

  • Exploitation: RCE React2Shell (CVE-2025-55182) via payload base64 et boucle de téléchargement (curl/wget/python3)
  • Exécution/Loader: AES‑256‑CBC pour déchiffrer le payload; AsyncFunction pour exécuter du JS C2
  • Évasion: download de Node.js officiel, exécution en arrière‑plan, noms/chemins cachés aléatoires, trafic C2 mimant des assets statiques
  • C2: Smart contract Ethereum avec vote majoritaire sur 9 RPC publics; polling 500 ms; mise à jour dynamique via /api/reobf/
  • Persistance: systemd user, XDG autostart, cron @reboot, .bashrc, .profile

Conclusion: Il s’agit d’une analyse de menace détaillant un implant avancé ciblant l’écosystème React/Next.js, mettant en avant un C2 blockchain résilient, une persistance agressive et des techniques d’auto‑mutation compliquant la détection traditionnelle.

🧠 TTPs et IOCs détectés

TTP

Exploitation: RCE React2Shell (CVE-2025-55182) via payload base64 et boucle de téléchargement (curl/wget/python3); Exécution/Loader: AES-256-CBC pour déchiffrer le payload; AsyncFunction pour exécuter du JS C2; Évasion: download de Node.js officiel, exécution en arrière-plan, noms/chemins cachés aléatoires, trafic C2 mimant des assets statiques; C2: Smart contract Ethereum avec vote majoritaire sur 9 RPC publics; polling 500 ms; mise à jour dynamique via /api/reobf/; Persistance: systemd user, XDG autostart, cron @reboot, .bashrc, .profile

IOC

IP: 193.24.123.68:3001; URL payload: http://193.24.123.68:3001/gfdsgsdfhfsd_ghsfdgsfdgsdfg.sh; Ethereum Contract: 0x22f96d61cf118efabc7c5bf3384734fad2f6ead4; Parameter: 0xE941A9b283006F5163EE6B01c1f23AA5951c4C8D; Selector: 0x7d434425


🔗 Source originale : https://www.sysdig.com/blog/etherrat-dprk-uses-novel-ethereum-implant-in-react2shell-attacks