🔍 Contexte

Publié le 8 juin 2026 par Sygnia, cet article présente les résultats d’une investigation forensique approfondie sur l’Opération Highland, une intrusion attribuée à Velvet Ant, un acteur de menace à nexus chinois. Les premiers artefacts forensiques remontent à 2016, soit près d’une décennie de présence non détectée.

🎯 Cible et particularité de l’attaque

Le réseau ciblé était une infrastructure critique sans connectivité internet directe. L’attaquant a contourné cette isolation en construisant une chaîne d’accès multi-étapes :

  1. Étape 1 : Compromission de systèmes exposés sur internet
  2. Étape 2 : Pivotement à travers le réseau IT vers l’infrastructure critique
  3. Étape 3 : Subversion de la couche d’authentification pour une persistance durable

🛠️ Techniques et outils utilisés

Étape 1 – Accès initial :

  • Déploiement d’une version modifiée de GS-Netcat (renommé auditdb, placé dans /usr/sbin/), se déguisant en thread kernel [khubd]
  • Persistance via unité systemd malveillante (déguisée en service Chrome) ou ajout dans les scripts SysVinit (/etc/init.d/)
  • Déploiement d’un proxy SOCKS5 en Perl (basé sur le projet ssspl), se déguisant en smbd -D

Étape 2 – Mouvement latéral :

  • Abus de Nginx et FastCGI (fcgiwrap) pour créer un pont d’exécution vers le réseau isolé via requêtes HTTP POST
  • Un binaire nommé uptime établissait des connexions SSH vers l’infrastructure critique

Étape 3 – Persistance dans la couche d’authentification :

  • 9 variantes de pam_unix.so backdooré identifiées, compilées dans des environnements distincts :
    • Variante 1 : bypass par mot de passe hardcodé, effacement en mémoire après usage
    • Variante 2 : bypass (Pamauth@123456 chiffré) + harvesting des credentials dans /usr/sbin/.ssh.log
  • Binaires OpenSSH modifiés (ssh, sshd, scp, ssh-keygen) :
    • Credential dumping chiffré vers /usr/share/man9/ph/.ph.man
    • Keylogging chiffré vers /usr/share/man9/ph/
    • Flag -d pour désactiver leur propre logging lors des opérations
    • Timestomping des fichiers créés (horodatage calqué sur /etc/shells/)
    • Désactivation de SELinux via scp exécuté en root
    • Masquage de processus [kauditd] -sh via flag !
  • Variante ancienne : backdoor sshd avec 7 hashes MD5 rotatifs (un par jour de la semaine), logs dans /var/lib/sam/
  • Abus des authorized_keys pour un accès persistant sans mot de passe

📊 Indicateurs de sophistication

  • 9 variantes de PAM compilées dans des environnements séparés → pipeline de build structuré
  • Gestion active de l’empreinte forensique (flag -d, timestomping)
  • Présence non détectée depuis 2016 (keylog le plus ancien)
  • Escalade systématique vers des composants moins surveillés à chaque détection

📄 Nature de l’article

Il s’agit d’une analyse technique approfondie publiée par Sygnia à des fins de documentation CTI et de sensibilisation, présentant le déroulé complet d’une intrusion sophistiquée de longue durée.

🧠 TTPs et IOCs détectés

Acteurs de menace

TTP

  • T1190 — Exploit Public-Facing Application (Initial Access)
  • T1505.003 — Server Software Component: Web Shell (Persistence)
  • T1090.001 — Proxy: Internal Proxy (Command and Control)
  • T1090.002 — Proxy: External Proxy (Command and Control)
  • T1021.004 — Remote Services: SSH (Lateral Movement)
  • T1556.003 — Modify Authentication Process: Pluggable Authentication Modules (Credential Access)
  • T1556.001 — Modify Authentication Process: Domain Controller Authentication (Defense Evasion)
  • T1543.002 — Create or Modify System Process: Systemd Service (Persistence)
  • T1037 — Boot or Logon Initialization Scripts (Persistence)
  • T1098.004 — Account Manipulation: SSH Authorized Keys (Persistence)
  • T1056.001 — Input Capture: Keylogging (Collection)
  • T1003 — OS Credential Dumping (Credential Access)
  • T1070.006 — Indicator Removal: Timestomp (Defense Evasion)
  • T1036.005 — Masquerading: Match Legitimate Name or Location (Defense Evasion)
  • T1562.001 — Impair Defenses: Disable or Modify Tools (Defense Evasion)
  • T1601.001 — Modify System Image: Patch System Image (Defense Evasion)
  • T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
  • T1572 — Protocol Tunneling (Command and Control)
  • T1599 — Network Boundary Bridging (Defense Evasion)

IOC

  • Domaines : gs.thc.orgVT · URLhaus · ThreatFox
  • CVEs : CVE-2024-20399NVD · CIRCL
  • Fichiers : auditdb
  • Fichiers : pam_unix.so
  • Fichiers : uptime
  • Fichiers : fcgiwrap
  • Chemins : /usr/sbin/auditdb
  • Chemins : /lib/systemd/system/
  • Chemins : /etc/init.d/
  • Chemins : /usr/sbin/.ssh.log
  • Chemins : /usr/share/man9/ph/.ph.man
  • Chemins : /usr/share/man9/ph/
  • Chemins : /usr/lib/eth-scsi/libethscsi.so
  • Chemins : /var/lib/sam/

Malware / Outils

  • GS-Netcat (tool)
  • VELVETSHELL (backdoor)
  • SOCKS5 Proxy (Perl custom) (tool)
  • pam_unix.so backdooré (backdoor)
  • OpenSSH modifié (backdoor)

🟡 Indice de vérification factuelle : 63/100 (moyenne)

  • ⬜ sygnia.co — source non référencée (0pts)
  • ✅ 29476 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 14 IOCs (IPs/domaines/CVEs) (10pts)
  • ✅ 1/1 IOC(s) confirmé(s) (ThreatFox, URLhaus, VirusTotal) (8pts)
  • ✅ 19 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ✅ acteur(s) identifié(s) : Velvet Ant (5pts)
  • ⬜ 0/1 CVE(s) confirmée(s) (0pts)

IOCs confirmés externellement :

  • gs.thc.org (domain) → VT (11/91 détections)

🔗 Source originale : https://www.sygnia.co/blog/operation-highland-velvet-ant/