[CTF NDH 2018 Quals] Write-Up – Forensic : Where Is My Purse ?

01
avril
2018
  • Google Plus
  • LinkedIn
  • Viadeo
Posted by: Yann C.  /   Category: CTF / Events / Forensic / NDH / NDH2k18   /   Pas de commentaire

Présentation d’un write-up de résolution du challenge « Forensic – Where Is My Purse? » des qualifications du CTF de la Nuit du Hack 2018.

Le weekend du 31/03/2018 se déroulait les pré-qualifications pour la Nuit du Hack 2018 sous forme d’un CTF Jeopardy. Ayant eu l’occasion et le temps d’y participer avec quelques collègues et amis, voici un write-up de résolution d’un des challenges auquel nous avons pu participer.

  • Catégorie : Forensic
  • Nom : Where Is My Purse?
  • Description : Helps an important person to find the content of his numeric purse.
  • File : whereismypurse.7z (2.74GB – 83cf33c0cb86457c929237a1b1d8763fad1a28734b987c0f69b9d9f6b66e85db)
  • Points : 200

Ce challenge consiste à accéder au contenu d’un wallet à partir d’une machine virtuelle et d’un dump mémoire fournis dans l’archive 7z.

Pour lancer la VM, on crée une nouvelle machine dans VirtualBox et on lui attache le fichier de disque virtuelle whereismypurse.vdi. On découvre alors un système Windows 7 protégé par un mot de passe :

Win7 authentication

Win7 authentication

Une option possible est alors d’utiliser un outil tel que konboot pour contourner l’authentification Windows. Un chargement de l’ISO de l’outil au démarrage du système nous permet d’ouvrir une session sous SatNak sans mot de passe.

On découvre alors un exécutable dcrinstall-windows-amd64-v1.1.2.exe sur le bureau. Une petite recherche sur le web nous indique qu’il s’agit d’un outil lié à la cryptomonnaie « Decred ». L’exécutable déploie l’outil dans le répertoire %USERPROFILE%\decred\ :

Binary in USERPROFILE

Binary in USERPROFILE

Les exécutables de l’outil permettent probablement d’accéder au portefeuille évoqué dans le sujet du challenge. En jouant un peu avec ces exécutables, on remarque qu’un secret est nécessaire pour poursuivre le challenge.

On suppose que ce secret peut être retrouvé depuis l’extraction mémoire fourni dans l’archive 7z. Utilisons alors Volatility pour analyser celle-ci :

Volatility identification

Volatility identification

La liste des commandes en cours d’exécution nous indique qu’un coffre-fort Keepass est lancé :

Keepass detection

Keepass detection

On procède alors à une extraction de ce processus à l’aide de la commande suivante :

$ volatility -f whereismypurse.raw --profile=Win7SP1x64 --dump-dir=dump memdump -p 2212

Une simple recherche de chaînes de caractères dans le contenu de ce dump nous permet de trouver le mot de passe contenu dans le coffre-fort Keepass :

Keepass password

Keepass password

De retour dans la VM, on lance les exécutables dcrd.exe puis drcwallet.exe, et on saisit le mot de passe trouvé précédemment :

Run binaries wallet

Run binaries wallet

Une fois le mot de passe validé, l’exécutable dcrctl.exe nous permet d’accéder au contenu du Wallet et de trouver le flag :

Flag in wallet

Flag in wallet

Merci à Timothée MENOCHET pour le write-up ! 🙂

Salutations à toute l’équipe, on remet ça quand vous voulez 😉 // Gr3etZ

  • Google Plus
  • LinkedIn
  • Viadeo
Yann C.

About the Author : Yann C.

Consultant en sécurité informatique et s’exerçant dans ce domaine depuis le début des années 2000 en autodidacte par passion, plaisir et perspectives, il maintient le portail ASafety pour présenter des articles, des projets personnels, des recherches et développements, ainsi que des « advisory » de vulnérabilités décelées notamment au cours de pentest.