0x01. INSTALLATION
Il suffit d'avoir un client SVN et de taper sur le répertoire fourni par l'installation des développeurs :
# Téléchargement du SVN svn checkout http://volatility.googlecode.com/svn/trunk/ volatility-read-only vim Volatility-1.4_rc1/vol.py # Remplacer l entête (première ligne) par : "#!/usr/bin/python" "#!/usr/bin/env python" # Copier dans le PATH sudo cp -r Volatility-1.4_rc1 /usr/local/ sudo ln -sv /usr/local/Volatility-1.4_rc1/vol.py /usr/local/bin/volatility
Pour plus de détails, et pour respect du projet, merci de vous rendre sur la page d'origine :
0x02. ETUDE D'UN CAS NDH2011 : FORENSIC100
Il s'agit d'une épreuve de Forensic, d'analyse digitale post-mortem. Dans le cas présent, les instructions sont de trouver le mot de passe utilisé par le serveur VNC qui était sur la machine. Un fichier brute d'un sytème d'exploitation nous est fourni.
Après avoir analysé le fichier, il s'agit une image mémoire d'un Windows.
Pour le savoir nous avons analysés le fichier :
fdisk -l fichier.raw # Aucune partition valide hexdump -C fichier.raw|less # Des traces du système d exploitation Windows
Le programme Volatility semble parfaitement pertinent. Voici les différentes étapes à suivre pour la résolution du challenge.
Le challenge étant fini il ne s'agit pas de spoiler.
# Obtenons la liste des processus volatility pslist -f dump.raw
C'est WinVNC4 qui nous intéresse : 0x81dea980 winvnc4.exe 1696 684 3 67 2011-03-10 13:09:47
# Véritions que notre process possède une entrée dans le registre : volatility regobjkeys -f dump.raw -p 1696
0xe10f5a48 Key MACHINE/SOFTWARE/REALVNC/WINVNC4 0xe1bb4020 Key MACHINE/SYSTEM/CONTROLSET001/SERVICES/WINSOCK2/PARAMETERS/PROTOCOL_CATALOG9 On sait donc que l'offset qui nous intéresse est compris entre 0xe10f5a48 et 0xe1bb4020
# On recherche l offset des fichiers contenant les registre volatility hivelist -f dump.raw
Contient les paramètres des logiciels installés : Virtual Physical 0xe13ffb60 0x02f2bb60 /Device/HarddiskVolume1/WINDOWS/system32/config/software
# Dans l aide de : volatility printkey -h on a : "-o HIVE_OFFSET, --hive-offset=HIVE_OFFSET Hive offset (virtual)" # Donc : volatility printkey -f dump.raw -o 0xe13ffb60 #> Fourni les logiciels installés # La branche RealVNC nous interesse ! volatility printkey -f dump.raw -o 0xe13ffb60 -K RealVNC # La branche WinVNC4 nous interesse ! volatility printkey -f dump.raw -o 0xe13ffb60 -K "RealVNC/WinVNC4"
0x03. CONCLUSION
Nous avons donc le mot de passe chiffré, avec la méthode de RealVNC. Ce chiffrage est faillible et ici n'est pas le but de résoudre le challenge mais de mettre en évidence l'utilisation et surtout la capacité du framework Volatility dans le travail des consultants en forensic.
Références :
http://steeve-barbeau.blogspot.com/
http://www.computersecurityarticles.info/security/memory-registry-tools/
=> Écrit par : Nicolas, le 25 juin 2015