::: info <center> # Digital Forensic ##### By - Thanusiyan ASHOKAR </center> ::: - En Infosec, on se sert de la forensic pour retrouver des attaques, répondre à des incidents, mettre à jour un espionnage, notamment industriel, une exfiltration de données, une falsification de documents ou encore une perte de données. - Il existe deux méthodes d’analyses : - La méthode dite traditionnelle qui se fait de l’analyse post-mortem d’un support ou d’un disque, méthode qui a l’avantage d’impacter faiblement les données. Elle est considérée comme la méthode la plus « pure » et la plus neutre dans le sens où l’altération des données est faible. - Les méthodes « live » qui entrent souvent dans le cadre d’une réponse à incident. - Dans une méthode en « live », le défi sera de minimiser l’impact à l’intégrité du système pendant la capture des données volatiles. Pour faire simple et illustrer cette affirmation : lorsque l’on va capturer une image d’un système, on va écrire sur le registre du système, donc on va laisser une trace. Dans ces cas-là, on peut avoir recours à un write blocker avant l’acquisition. - Il peut y avoir plusieurs étapes lors d’une analyse forensic. Elles peuvent aller de quatre à vingt-un selon ce qui est demandé. Le schéma le plus traditionnel en comporte quatre et se décompose ainsi : - Identification : trouver et identifier les informations, généralement, on se contente de procéder à une image du système dans un premier temps. - Acquisition : on fait l’image. - Analyse : on analyse toutes les données récupérées, on les hiérarchise, on restitue une chronologie et une utilisation possibles. - Présentation : on présente les résultats. - On distingue deux types de données : les données volatiles et les données non-volatiles. - Les données volatiles sont les données qui sont perdues lors d’une extinction, typiquement, cela touchera la RAM mais les informations sont parfois récupérables. Cela va concerner - La liste des processus actifs ; - La mémoire ; - Les connexions réseaux actives ; - Les informations sur les systèmes ; - Les clefs de registres ; - Les clefs de chiffrements. - Lorsque l’on dit que ces données sont perdues, elles ne le sont pas toujours réellement. Si on prend l’exemple d’une machinant fonctionnant sous Windows Seven, ces informations vont pouvoir être récupérées dans le registre. - Les données non-volatiles sont les données qui ne sont pas perdues et qui sont en mémoire morte comme les clefs USB ou les disques durs. - La plupart des appareils électroniques permettent de reconstituer les activités qui ont été faites. En fouillant dans certaines parties du système, on peut retracer l’activité d’un navigateur Web, d’un système de fichiers, des connexions réseau ou des périphériques qui ont pu être branchés. - Il existe énormément d’outils pour procéder à des analyses forensics, certains systèmes d’exploitation y sont d’ailleurs entièrement dédiés. Mais la fragilité des systèmes fait qu’il convient de travailler de façon minutieuse et très organisée de façon à ne pas perdre les informations ni à les altérer. ## L’analyse mémoire avec Volatility - Pour extraire ces informations sur le dump mémoire que nous avons réalisé, nous utiliserons le framework open source Volatility. Pour faire cet analyse du dump de la mémoire, nous avons récupéré le fichier memoire sur ce lien : :+1: https://s3-eu-west-1.amazonaws.com/course.oc-static.com/courses/1750151/OC-002-memdump.zip ### Prenez en main Volatility Pour lancer Volatility, il suffit d’ouvrir un terminal et d’entrer par exemple la commande volatility -h pour afficher les options disponibles (voici le début). ![](https://i.imgur.com/imAUcDl.png) Ci-dessous quelques commands Plugin : ![](https://i.imgur.com/DSEts2U.png) ![](https://i.imgur.com/O687WRi.png) ### Récupérez le profil de l'image avec ImageInfo Nous avons utilisé l'option ImageInfo de Volatility sur notre dump mémoire avec la commande ci-dessous : ![](https://i.imgur.com/JNfmDNr.png) Cette option vous permettra d’obtenir les informations de profil de votre image. Comme vous pouvez le voir sur la sortie console ci-dessus, le champ « suggested profile » propose des suggestions de profils qu’il faudra ensuite préciser à Volatility avec l’option « --profile= ». ### Récupérez la liste des processus Pour extraire la liste des processus, il est possible d’utiliser l’option pslist comme ci-dessous : ![](https://i.imgur.com/IpfxgAc.png) ![](https://i.imgur.com/8KHOudw.png) ### Listez les DLL d'un processus Les DLL, pour Dynamic Link Library, sont les librairies dans Windows. Ce sont des fonctions préalablement codées et disponibles sur le système. Pour éviter de recoder certaines fonctions, l’API Windows fournit une liste de DLL permettant de manipuler des données, de faire des connexions réseau ou encore d’écrire des fichiers. ![](https://i.imgur.com/aKbv1Eq.png) ### Analyse de registre Le registre contient divers paramètres et configurations pour le système d'exploitation Windows. En tant que composant principal de Windows, il est accédé en permanence pendant le temps d'exécution. Ainsi, il est logique que le système place en mémoire tout ou partie des fichiers du registre. ![](https://i.imgur.com/vTD1LO2.png) ### Analysez les connexions réseaux ![](https://i.imgur.com/ny6oPoQ.png) ### Analysez en détail les processus avec Volatility ![](https://i.imgur.com/U6tyHvT.png) ### Affichez les processus cachés avec psxview ![](https://i.imgur.com/PqK46P5.png) ### Détectez l'injection de code avec malfind La commande malfind peut être utilisée pour détecter de l’injection de code malveillant. ![](https://i.imgur.com/TWyZ9ut.png) ### Listez les mutex avec mutantscan ![](https://i.imgur.com/m2wVlNl.png) ![](https://i.imgur.com/MM7CWNt.png)