Analyse Forensique Tout en Memoire
Analyse Forensique Tout en Memoire
Analyse Forensique Tout en Memoire
fr/
lepouvoirclapratique.blogspot.fr
Cédric BERTRAND
26 juin 2012
Analyse
forensique tout en
mémoire
document
Au cours de document, nous verrons comment
analyser et extraire tous les petits secrets de la
mémoire.
lepouvoirclapratique.blogspot.fr
Analyse tout en mémoire http://lepouvoirclapratique.blogspot.fr/ Cédric BERTRAND
Sommaire
1. Introduction ............................................................................................................. 5
1.1. Dans quels cas utiliser l’analyse forensique ? ....................................................... 5
1.2. Les différentes approches .................................................................................... 6
1.3. Dead Forensics vs Live Forensics ........................................................................ 6
1.3.1. Les avantages du Dead Forensics (analyse sur un système éteint) ................. 6
1.3.2. Les avantages du Live Forensics (analyse sur un système allumé) ................. 6
1.4. Scénarios ............................................................................................................ 7
2. L’analyse à chaud....................................................................................................... 8
2.1. Accéder à l’ordinateur .......................................................................................... 8
2.1.1. Ouvrir une session administrateur sans le mot de passe................................. 8
2.1.2. Déverrouillage d’une session par firewire ....................................................... 9
3. L’acquisition de la mémoire vive .............................................................................. 9
3.1.1. Récupérer une copie de la mémoire vive ....................................................... 9
3.2. L’analyse de la mémoire .................................................................................... 12
3.2.1. Récupérer des informations système ........................................................... 12
3.2.2. Récupérer des informations sur les processus ............................................. 12
3.2.3. Récupérer des informations sur les fichiers/répertoires ................................. 13
3.2.4. Récupérer des informations sur le réseau .................................................... 14
3.2.5. Récupérer des informations sur la sécurité................................................... 15
3.3. Récupération d’informations sensibles ................................................................ 16
3.3.1. Récupération des clés wifi ........................................................................... 16
3.3.2. Récupération des mots de passe des navigateurs ........................................ 16
3.3.3. Récupération des mots de passe d’outils Microsoft ...................................... 17
3.3.4. Récupération des mots de passe des routeurs ............................................. 17
3.3.5. Extraire les clés AES contenues dans la mémoire vive ................................. 17
3.3.6. Le déchiffrement de containers TrueCrypt .................................................... 18
4. Analyse de la mémoire avec Volatility ........................................................................ 20
4.1. Récupération d’informations avec Volatility ......................................................... 20
4.1.1. Déterminer le système d’exploitation ............................................................ 20
4.1.2. Lister les processus .................................................................................... 20
4.1.3. Connaître les connexions sur le système ..................................................... 21
4.1.4. Savoir si le pare-feu est activé ou non.......................................................... 21
4.1.5. Dumper un fichier exécutable ...................................................................... 21
4.2. Récupération d’informations sensibles avec Volatily ............................................ 22
4.2.1. Extraire les comptes utilisateur .................................................................... 22
Glossaire
Crackage Action de découvrir un mot de passe (cracker un fichier =
découvrir le mot de passe associé)
Dead forensics Analyse sur un système éteint (analyse des données)
Dumper Action d’extraire des informations (ex : dump d’un fichier de la
mémoire)
Empreinte Somme de contrôle d’un fichier
Exploit Pack Outil exploitant des vulnérabilités de manière automatique afin
d’infecter le visiteur d’une page web
Hashage Fonction permettant l’identification d’un fichier ou d’une chaine
de caractères (permet de d’assurer son intégrité)
Hashes Données représentées par une fonction de hachage
Live Forensics Analyse sur un système allumé (mémoire vive)
Pentest Penetration test (test d’intrusion)
Shell Accès en ligne de commandes à un ordinateur
Documents de références
H@ckRAM – J’ai la mémoire qui flanche d’Arnaud Malard -
http://www.securityvibes.com/servlet/JiveServlet/previewBody/1164-102-3-1164/WP-
HckRAM.pdf
Le framework Volatility – Misc n°56
Wiki Forensics - http://www.forensicswiki.org/
1. Introduction
Le terme anglais Forensics (lien) désigne l’analyse d’un système suite à un incident. Cet
incident peut être de plusieurs natures : compromission, recherche de preuves liées à la
pédocriminalité, infection du poste par un malwares, etc.
Une définition plus formelle pourrait être : l'action d'acquérir, de recouvrer, de préserver, et
de présenter des informations traitées par le système d'information et stockées sur des
supports informatiques.
1
http://www.lestutosdenico.com/outils/analyse-forensique-completement-sick
mémoire vive est beaucoup plus rapide que la copie d’un disque. Parmi les autres avantages
du live forensics sur le dead forensics, nous avons :
- Rapide
- Accès physique à l’ordinateur
- Peu de technique
- Processus chargés au démarrage
- Accès à la base de registre
- Monitoring des actions effectuées (malwares)
- Processus actifs, partages réseau, écriture sur le disque, fichiers ouverts, connexion
réseau
- Récupération d’informations confidentielles
- Récupération des mots de passe actifs
- Cassage de containers truecrypt
- Analyse mémoire vive offline
Elle est par exemple très utilisée par les analyseurs de malware car elle permet de tracer
toutes les actions effectuées par un processus actif.
1.4. Scénarios
Il y a plusieurs scénarios possibles pour l’analyse en mémoire. Par exemple :
- Un utilisateur a oublié de verrouiller sa session
- Un poste est suspecté d’avoir été infecté par un malware
- Dans le cas d’une perquisition, l’ordinateur est allumé et l’on souhaite analyse ce que
le suspect était en train de faire
- Dans le cas d’un pentest, l’auditeur a obtenu un shell sur le poste
Comme nous allons le voir, l’analyse de la mémoire vive permet de savoir beaucoup de
choses.
2. L’analyse à chaud
L’analyse à chaud ou encore l’enquête en ligne, consiste à capturer la mémoire vive du
poste allumé pour ensuite pouvoir l’analyser. Nous allons voir ensemble quelques unes des
possibilités.
2
http://ophcrack.sourceforge.net/
3
http://www.piotrbania.com/all/kon-boot/
4
http://fr.wikipedia.org/wiki/Table_arc-en-ciel
Kon-boot est un outil qui permet de modifier le contenu d’un noyau Windows ou Linux à la
volée pendant le boot. Il permet de se logger en utilisant n’importe quel compte utilisateur ou
administrateur sans connaître le mot de passe.
C’est le genre d’outils très utile à connaître lorsqu’on a perdu son mot de passe.
3.1.1.1. En local
Il existe plusieurs outils pour acquérir une copie de la mémoire vive d’un poste sous
Windows. Les outils suivants permettent de réaliser cette action :
- Win32dd de Matthieu Suiche
- MDD (MemoryDD) de ManTech
Plus d’outils sont accessibles via ce lien : Memory acquisition tools. Il est possible d’acquérir
une copie de la mémoire soit par un accès local, soit par un accès réseau.
On peut par exemple utiliser l’outil Access FTK Imager 5qui permet de capturer la mémoire
vive d’un ordinateur.
Attention néanmoins si la copie de la mémoire vive est réalisée sur le poste cible, il y a un
risque d’écrasement de données (suppression d’espace libre contenant peut-être des
informations). En cas de capture de la mémoire vive, il faut stocker celle-ci sur un
périphérique USB de préférence.
Parfois il peut être intéressant de réaliser une copie de la mémoire vive sans avoir un accès
local au poste. Plusieurs méthodes sont à notre disposition, nous pouvons par exemple
exploiter une vulnérabilité du poste afin d’en obtenir le contrôle, puis d’uploader l’outil mdd,
effectuer une capture de la mémoire vive, puis la rapatrier sur notre poste.
Normalement un plug-in Metasploit 7 appelé « Memdump » existait afin de réaliser cette
tâche de manière automatique, mais le lien ne fonctionne plus : Meterpreter Memory
Dump Script.
5
http://accessdata.com/support/adownloads
6
MDD (MemoryDD) de ManTech
Une fois mdd téléchargé avec la commande “upload” de Metasploit, on l’exécute sur le
poste cible.
Si on connait le mot de passe de l’administrateur, voir chapitre < Ouvrir une session
administrateur sans le mot de passe>, ou encore <extraction des comptes utilisateurs>, on
peut aussi utiliser l’outil psexec8 qui permet d’exécuter un fichier à distance. Il suffit donc
avec psexec d’exécuter l’outil mdd cité plus haut.
Une fois la mémoire vive récupérée, notre prochaine étape va être de l’analyser.
7
http://www.metasploit.com/
8
http://technet.microsoft.com/fr-fr/sysinternals/bb897553.aspx
Plus d’outils permettant de récupérer des informations sur le système : Informations sur le
système
Pour récupérer la liste des processus actifs, nous pouvons utiliser l’outil pslist10.
Il existe aussi un autre outil qui permet d’offrir de nombreuses possibilités sur les processus
et qui en plus possède une interface graphique : Process Explorer11.
9
http://www.microsoft.com/technet/sysinternals/utilities/psinfo.mspx
10
http://www.microsoft.com/technet/sysinternals/utilities/pslist.mspx
11
http://technet.microsoft.com/fr-fr/sysinternals/bb896653.aspx
Il existe aussi l’outil pskill12 afin de supprimer un processus en mémoire (peut être pratique
pour supprimer un outil de défense comme un antivirus lors d’un pentest par exemple…)
Plus d’outils permettant de récupérer des informations sur les processus : Informations sur
les processus
Process Monitor 14permet de monitorer l’activité d’un système (processus, fichiers, clés de
registre, etc.) Très utile afin de voir les actions effectuées par un fichier suspect par exemple.
Plus d’outils sur les fichiers et disques sont disponibles ici : Informations sur les fichiers et les
disques
12
http://www.microsoft.com/technet/sysinternals/utilities/pskill.mspx
13
http://www.microsoft.com/technet/sysinternals/utilities/psfile.mspx
14
http://technet.microsoft.com/fr-fr/sysinternals/bb896645.aspx
Sous Windows, la commande netstat permet de récupérer la liste des connexions actives
sur un système (utile pour découvrir des backdoors) :
L’outil ShareEnum16 permet d’afficher l’ensemble des ressources partagées d’un système
15
http://technet.microsoft.com/en-us/sysinternals/bb897437
16
http://technet.microsoft.com/en-us/sysinternals/bb897442
17
http://technet.microsoft.com/fr-fr/sysinternals/bb897545.aspx
Plus d’outils pour la récupération d’informations sur le réseau sont disponibles ici :
Informations sur le réseau
AccessChk 19 est un utilitaire qui permet d’obtenir la liste et le type des permissions sur un
répertoire.
18
http://technet.microsoft.com/en-us/sysinternals/bb896769
19
http://technet.microsoft.com/en-us/sysinternals/bb664922.aspx
20
http://technet.microsoft.com/fr-fr/sysinternals/bb897332.aspx
Plus d’outils pour la récupération d’informations sur le réseau sont disponibles ici :
Informations sur la sécurité
Le lien suivant liste l’emplacement des informations sensibles d’applications populaires sous
Windows : Password Storage Locations.
21
http://www.nirsoft.net/utils/wireless_key.html
22
http://www.nirsoft.net/utils/web_browser_password.html
Figure 23 Récupérer les mots de passe des routeurs enregistrés sur le système
Il existe encore de nombreux outils permettant d’extraire les mots de passe du système, tout
dépend ce que l’on cherche. Je renvoie le lecteur sur le site Nirsoft pour de nombreux
autres outils.
23
http://www.nirsoft.net/utils/pspv.html
24
http://www.nirsoft.net/utils/router_password_recovery.html
25
http://www.artiflo.net/2010/12/les-conteneurs-chiffres-sous-truecrypt-fichier-vs-partition/
26
http://sourceforge.net/projects/findaes/
Néanmoins l’opération est automatisable avec l’outil Password recovery toolkit forensic dont
nous allons parler juste après.
Une fois l’emplacement du container TrueCrypt indiqué, nous lançons une attaque de
recherche de mots de passe.
Par contre la vitesse de calcul est tellement basse que sans indication du mot de passe, il
est illusoire d’espérer le trouver.
Néanmoins une option de l’outil est de permettre de rechercher la trace de clé de chiffrement
aes28 dans la mémoire vive, ce qui permet le déchiffrement rapide d’un container TrueCrypt.
27
http://www.truecrypt.org/
28
http://fr.wikipedia.org/wiki/Advanced_Encryption_Standard
Malgré tout il faut rester réaliste, car cette méthode nécessite de faire une capture de la
mémoire vive pendant que le container TrueCrypt est ouvert, ce qui est assez peu probable
en situation réelle. Quoiqu’avec un shell et un bon script, ce n’est pas vraiment un souci
C’est une commande qui sera par la suite utilisée pour la récupération des informations
sensibles telles que les hashes de la machine, les mots de passe en mémoire, ou encore
pour la détection de malware.
Pour dumper la mémoire d’un processus, c’est le module <memdump> qui est utilisé.
On peut ensuite utiliser des outils comme grep 29 afin de rechercher des chaines de
caractères dans la capture ainsi réalisée.
Volatility est vraiment un outil très puissant qui permet de réaliser de nombreuses actions.
Plus de commandes sont disponibles sur cette page : Analyse de la mémoire - Volatility.
Nous allons voir que Volatility permet beaucoup d’autres choses.
29
http://gnuwin32.sourceforge.net/packages/grep.htm
Une fois ces offset récupérés, on utilise le plugin “hashdump”. La commande est :
python volatility hashdump -f dump.dd -y System Hive Offset -s SAM Hive Offset.
Pour les mots de passe simples, ceux-ci sont cassés en quelques secondes.
Après une recherche avec Google, nous apprenons que les mots de passe VNC sont
stockés dans la base de registre à l’emplacement :
« MACHINE\SOFTWARE\REALVNC\WINVNC4 ». Nous commençons donc par détecter
l’adresse virtuelle de la ruche « software » de la base de registre avec le plugin « hivelist ».
Une fois cette adresse récupérée, on affiche les clés présentes dans cette ruche avec le
plugin « printkey ».
Puis avec l’outil strings, recherche des chaines de caractères contenant des données
confidentielles. Exemple avec une capture extraite de hackr@m :
On commence donc par créer une clé Cofee en cliquer sur « Generate ».
30
http://www.microsoft.com/industry/government/solutions/cofee/default.aspx
La clé USB Cofee est prête, reste à l’insérer sur un poste cible. Une fois insérée sur un
poste, elle lance l’ensemble des outils de la clé par un simple fichier batch.
Une fois exécutée, un répertoire est crée, contenant le résultat de chaque commande.
Chaque fichier est nommé avec une empreinte MD5 afin de pouvoir l’intégrité de chaque
fichier.
Chaque fichier contient des informations sur le système, le réseau, les connexions
utilisateurs, les mots de passe, les partages réseau…
De plus la majorité des outils utilisés par Cofee ne sont pas détectés par les anti-virus.
Voyons donc comment personnaliser Cofee à ses besoins.
Je décide par exemple d’ajouter l’outil MyLastSearch qui permet d’avoir l’ensemble des
recherches effectuées sous Google, MSN ou encore Yahoo.
Figure 48 MyLastSearch
Cet outil fonctionne aussi en ligne de commande, je consulte sa syntaxe afin de pouvoir
sauvegarder le résultat sous forme de fichier texte.
L’outil est alors ajouté, la séquence de lancement est mise elle aussi à jour.
Les possibilités sont bien sur infinies : lancement d’une backdoor, récupération des clés
stockées en mémoire, etc. Une raison de plus de verrouiller sa session utilisateur.
Conclusion
L’analyse forensique en mémoire a de nombreux avantages : utile pour les pentesters car
elle permet de récupérer de nombreuses informations accessibles en mémoire, utile pour les
analystes de malwares (cela fera l’objet d’un autre document), utile pour les enquêteurs de la
police judiciaire. Ce document n’étant pas exhaustif, pour ceux qui désirent aller plus loin je
les invite à consulter H@ckRAM – J’ai la mémoire qui flanche d’Arnaud Malard. Dans un
prochain document, nous verrons comment monitorer les actions d’un malware avec le
framework volatility.