🔍 Contexte

Publié le 18 juin 2026 par la Nokia Deepfield Emergency Response Team (ERT), ce rapport documente l’analyse statique du client Windows de RoboVPN, un VPN commercial gratuit édité par Cyberkick Ltd. L’analyse repose exclusivement sur le désassemblage statique (MSI, .NET, ILSpy, Ghidra) sans exécution de malware.

🧩 Composants identifiés

L’installateur MSI contient un bundle .NET 6 (57 assemblies compressées) et quatre DLL natives x64. Parmi les dépendances NuGet déclarées comme routinières figure NeunativeNG 8.0.36, un SDK proxy résidentiel qui :

  • Enregistre la machine auprès du directeur lb.gmslb.net:443 via GET /regdev
  • Reçoit une liste de serveurs relais (sN.<front>.com:6000)
  • Accepte des requêtes OpenTunnel arbitraires et relaie le trafic tiers via l’IP résidentielle de l’utilisateur

⚙️ Mécanisme d’activation inversé

Le SDK s’active uniquement quand le VPN est déconnecté ou inactif (appel OpenPeer() depuis DisconnectedDisplay()), avec un délai aléatoire de 30 à 90 minutes. La connexion VPN stoppe le proxy (ClosePeer() depuis Connect()). Ce design garantit que le trafic proxy sort toujours par l’IP résidentielle réelle de l’utilisateur, jamais par les serveurs de RoboVPN.

🔗 Connexion au backend Vo1d/Popa

gmslb.net est l’un des neuf domaines C2 codés en dur dans le plugin Popa du botnet Vo1d (~1,6 million de box Android TV compromises, XLab mars 2025). Le protocole TLS propriétaire (opcodes : Register 0x5060, OpenTunnel 0xa070, TunnelMessage 0xc000, CloseTunnel 0xcccc) est identique entre Neunative (Windows), Popanet Android (Cyberflix TV/SuperBox) et le plugin Popa de Vo1d. Les trois sont des builds différents du même SDK sur le même backend.

🌐 Infrastructure relay fleet

  • ~360 relais datacenter actifs (OVH 259, GTHost 74, Hetzner 30, Akamai/Linode 7)
  • 30 domaines front sur Cloudflare (deux comptes distincts : 5 + 25 domaines)
  • Le directeur lb.gmslb.net résout sur 10 IPs OVHcloud
  • 7 des 8 autres domaines C2 Popa sont sinkholés ; gmslb.net reste actif

⚠️ Faille de filtrage destination

Le SDK filtre les plages RFC1918 et loopback 127/8, mais omet 0.0.0.0/8 (qui mappe vers loopback sur Android/Linux) et n’a aucune blocklist de ports. Un OpenTunnel("0.0.0.0", 5555) passerait tous les contrôles et atteindrait le daemon ADB de l’appareil cible — vecteur d’accès initial documenté par Synthient.

📄 Divulgation vs comportement réel

Les CGU mentionnent un modèle “peer” avec opt-out, mais :

  • Aucun bouton d’opt-out n’existe dans l’interface
  • OpenPeer() s’exécute inconditionnellement
  • Le trafic relayé dépasse le cadre “membres du réseau” vers des destinations publiques arbitraires

📌 Type d’article

Publication de recherche technique par une équipe ERT, visant à documenter l’architecture d’un SDK proxy résidentiel commercial partageant une infrastructure avec un botnet connu, avec extraction complète d’IoCs et analyse protocolaire au niveau octet.

🧠 TTPs et IOCs détectés

Acteurs de menace

  • Vo1d (cybercriminal) —

TTP

  • T1583.001 — Acquire Infrastructure: Domains (Resource Development)
  • T1090.002 — Proxy: External Proxy (Command and Control)
  • T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
  • T1036 — Masquerading (Defense Evasion)
  • T1496 — Resource Hijacking (Impact)
  • T1547 — Boot or Logon Autostart Execution (Persistence)
  • T1112 — Modify Registry (Defense Evasion)
  • T1219 — Remote Access Software (Command and Control)

IOC

Malware / Outils

  • Neunative (other)
  • Popa (botnet)
  • Vo1d (botnet)
  • Popanet (other)
  • RoboVPN (other)

🟢 Indice de vérification factuelle : 68/100 (haute)

  • ⬜ github.com — source non référencée (0pts)
  • ✅ 36776 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 67 IOCs dont des hashes (15pts)
  • ✅ 1/10 IOC(s) confirmé(s) (AbuseIPDB, MalwareBazaar, ThreatFox, URLhaus, VirusTotal) (8pts)
  • ✅ 8 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ✅ acteur(s) identifié(s) : Vo1d (5pts)
  • ⬜ pas de CVE à vérifier (0pts)

IOCs confirmés externellement :

  • lb.gmslb.net (domain) → VT (3/91 détections)

🔗 Source originale : https://github.com/deepfield/public-research/blob/main/reports/2026-06-18-robovpn-neunative.md