A l'occasion du CTF Insomni'hack, Emma, pentester chez OWN, revient sur le challenge Golden Payout.
Enoncé du challenge
A massive data breach has just hit our corporate network. Highly sensitive documents have been spotted on a prominent Darknet leaking platform. Preliminary network telemetry has flagged suspicious outbound traffic originating from a specificworkstation belonging to one of our DBA. As part of the Rapid Response Investigation Team, you have been assigned to perform a deep-dive forensic analysis of the suspect's workstation.
Dans ce challenge, nous disposons d'une image disque Windows au format E01, correspondant au poste compromis d'un administrateur base de données (DBA).
L'objectif est d'identifier le vecteur d'exfiltration et les techniques d'évasion utilisées par l'attaquant.
Acquisition et montage de l'image
L’image disque est analysée sous Linux via les outils ewf-tools :
Analyse préliminaire - Prefetch
Une première étape consiste à analyser les fichiers Prefetch, situés dans :
Ces artefacts permettent d’identifier rapidement les exécutables récemment lancés.
La présence de l'exécutable powershell.exe suggère l'utilisation récente de commande Powershell, souvent utilisé dans des scénarios d'attaque pour exécuter des scripts ou télécharger des payloads.
Investigation Powershell
Afin d'identifier le script qui a été exécuté, une analyse de l'historique de powerhsell et de certains fichiers de log evtx peut être faite.
Cependant, certains fichiers ont été vidés, comme l'historique Powershell de l'utilisateur Galahad. On peut supposer qu'il y a eu de l'anti-forensic de la part de l'attaquant.
Cependant, le journal Powershell Operational.evtx, contient des traces exploitables :
Un script ps1 a été exécutée dans ProgramData\Oracle\Diag\Recovery.
Analyse du script
Le script se présente comme un utilitaire Oracle légitime, avec une bannière qui semble officielle.
Cependant, en analysant le script plus en profondeur, on constate qu'il réalise plusieurs actions :
- Génération d'une clé avec la valeur d'une clé de registre Seed puis sa transformation via un algorithme de type ROT-11
- Lancement d'un binaire :
Les arguments du script sont les mêmes que ceux utilisées pour lancer une VM QEMU :
Le script crée une VM QEMU chiffrée avec LUKS et expose le port 22022 de la machine Windows vers la VM Linux : cette VM permet à l'attaquant de se connecter à la machine Windows et ainsi de faire de la persistance.
ora_db_recovery.exe est l'exécutable QEMU renommé et ora_sys_01.db est l'image qcow2 :

Ainsi, il s'agit d'un tunnel SSH caché : l'attaquant peut se connecter en SSH sur le port 22022 de la machine Windows et atterrir dans la VM, qui lui sert de C2.
Chiffrement de la VM
Récupération de la Seed
L'image disque est chiffrée avec LUKS.
Avec RegistryExplorer de Eric Zimmerman, accéder à SOFTWARE\Microsoft\Cryptography\Defaults\Provider\MicrosoftStrong Cryptographic Provider a fin de récupérer la Seed :

La Seed est XFyyE23XFvE4sXFy.
Déchiffrement
Création d'un script Python pour retrouver la clé :
La clé de déchiffrement est : M4nn3rsM4k3thM4n.
Analyse de la VM
Conversion du fichier qcow2 en raw et montage :
Il est maintenant possible de déchiffrer la VM afin de la monter :
Montage du volume pour lire les données :
Maintenant on peut accéder aux différents fichiers à partir de /mnt.
Identification de l'exfiltration
L’examen du contenu de la VM révèle qu’un fichier creds.txt a été créé puis rapidement supprimer dans le répertoire /root. De manière similaire, une archive Oracle.7z a été générée, transférée puis effacée peu après. Ces éléments montrent que les données compromises étaient temporairement stockées sur la VM Linux avant d’être exfiltrées vers une destination externe.
On comprend que les données exfiltrées sont stockées temporairement sur la VM Linux avant d'être transférées vers l'extérieur et supprimées.
Utilisation de rclone
Par ailleurs, un fichier de configuration existe pour rclone :

rclone est un utilitaire permettant de la gestion des fichiers sur une instance Cloud.
Le mot de passe affiché dans le fichier de configuration est simplement offusqué et non chiffré, il est donc possible de le reverse soit en faisant un petit script soit en utilisant un projet déjà existant tel que : https://github.com/maaaaz/rclonedeobscure.
Création d'un script pour "dé-offusquer" le mot de passe :
En exécutant le script, on retrouve le flag 🥳

Conclusion
Cette analyse forensic illustre une attaque complexe, combinant différentes techniques. L'utilisation d'une VM embarquée comme enclave malveillante représente une technique particulièrement efficace : elle permet d'isoler les outils de l'attaquant tout en réduisant la visibilité côté hôte.
Bien que ce scénario soit présenté dans le cadre d’un CTF, les techniques identifiées sont directement inspirées d’attaques observées "in the wild". Des groupes APT et cybercriminels ont déjà été documentés en train d’utiliser des VM Linux ou QEMU sur Windows[1].
Ce lien entre pratique CTF et technique réelle illustre combien les challenges de CTF peuvent être des laboratoires pédagogiques pour comprendre les attaques modernes et innovantes.
[1] https://www.bleepingcomputer.com/news/security/windows-infected-with-backdoored-linux-vms-in-new-phishing-attacks/





