Skip to main content

Forensics 🆕

tip

Pareil, cette page nécéssite une révision. Elle sera retravaillée courant printemps/été 2023

Introduction​

Globalement, on peut traduire le terme Forensics par "Investigations Numériques". Dans l'idée, une telle discipline correspond à de "l'informatique légale", voire "criminalistique". Le but d'une telle discipline est bien unqiuement de collecter des preuves.

De ce fait, une grande importance est accordée à l'administration de la preuve (ou chain of custody). L'objectif est donc de garantir l'intégrité et la traçabilité des éléments de preuve.

Pour ne pas altĂ©rer les preuves, on prendra donc soin de rĂ©aliser une premiĂšre copie du support original (copie que l'on appellera Master) puis on travaillera sur des copies de master. Le support original doit ĂȘtre mis sous scellĂ©e une fois que le master est rĂ©alisĂ©.

Outillage​

Distros​

Utilisation de deux distributions Linux principales pour faire de la DFIR (Digital Forensics and Incident Response) :

  • Kali Linux : la classique
  • CSI Linux : testĂ©e en cours de Forensics en mai 2023, basĂ©e sur Ubuntu. Il s'agit lĂ  d'un support jetable que l'on est censĂ© reset une fois le support analysĂ©.

Penser à vérifier les checksums des fichiers (ISO, OVA ou DD). Pour CSI, pas de fichier ISO : flasher le .dd ou utiliser l'OVA.

Acquisition & collecte​

  • Sur un Windows, utilisation de FTK Access Imager
  • Pour les copies bit Ă  bit, utilisation de DD et de ses dĂ©rivĂ©s : dd, dc3dd et enfin dcfldd
  • On peut Ă©galement utiliser ewfacquire (pas encore testĂ© en lab 🙃)
  • CĂŽtĂ© physique : Opentext tableau TD4
  • PrĂ©voir aussi de gros supports de stockage ! Si on souhaite analyser 64 Go de RAM d'un serveur, le fichier dump prendra 64 Go de stockage.

Analyse​

  • Utilisation du Sleuth Kit et notamment Autopsy
  • MemProcFS pas encore testĂ© mais potentiellement intĂ©rĂ©ssant
  • Volatility v2/3 â€ïžâ€đŸ”„

File Carving​

Lorsqu'un systÚme de fichiers (FS) est endommagé, en forensics on parle de de File Carving pour tenter une récupération.

Pour restaurer un fichier, utilisation de Foremost. La syntaxe est plutĂŽt simple :

foremost -i file -o output -t jpg -T

Volatility V3​

danger

Tous les modules de la V2 ne sont pas encore disponibles sur la V3 (cc les forensics du 404CTF 2023 đŸ€ȘđŸ€Ș)

Installation​

Les modules ayant changé, les commandes ont été mises à jour.

On commence par installer la v3 depuis le repo Github:

git clone https://github.com/volatilityfoundation/volatility3.git && cd volatility3

On installe les prérequis :

pip3 install -r requirements-minimal.txt

Puis on lance le build et l'installation :

python3 setup.py build 
python3 setup.py install

Pour obtenir les premiÚres informations de base et s'assurer que volatility supporte le dump mémoire fourni :

python3 vol.py -f /home/user/samples/stuxnet.vmem windows.info
tip

J'utilise un alias personnalisé dans mon .bashrc pour éviter de me déplacer dans le dossier volatility :

alias volatility='python3 ~/Downloads/volatility3/vol.py'

Uses cases de base​

En cas de doute, l'aide de volatility est plutĂŽt bien faite. Ces commandes ont Ă©tĂ© utilisĂ©es dans le cadre du CTF FCSC2023 💙

Lister les processus :

python3 volatility3/vol.py -f /home/user/samples/stuxnet.vmem windows.pslist

Lister les processus sous la forme d'un tree:

python3 volatility3/vol.py -f /home/user/samples/stuxnet.vmem windows.pstree

Liste les processus avec les informations de sessions extraites depuis les variables d'environnement :

python3 volatility3/vol.py -f /home/user/samples/stuxnet.vmem windows.sessions

Liste les processus passés en ligne de commande avec leurs arguments

python3 volatility3/vol.py -f /home/user/samples/stuxnet.vmem windows.cmdline

Récupérer les hashs de mots de passe de notre machine cible:

python3 volatility3/vol.py -f /home/user/samples/stuxnet.vmem windows.hashdump

Scanner les fichiers de type MFT sur le dump :

python3 volatility3/vol.py -f /home/user/samples/stuxnet.vmem windows.mftscan

A la maniĂšre d'une commande netstat sur un linux, affiche les connexions TCP/UDP de la machine

python3 volatility3/vol.py -f /home/user/samples/stuxnet.vmem windows.netstat

Certains points n'ont pas été abordés ici, si certains aspects sont manquants consulter les commandes retenues et notées ci-dessous dans la V2:

OLD - Volatility V2​

Installation​

On récupÚre le binaire Linux en standalone à cette adresse.

Uses cases de base​

danger

Cette documentation n'est plus valable pour Volatility3, les noms des modules ayant changé.

Obtenir des infos sur un dump mémoire:

vol.py -f dump.dmp imageinfo

Module intéressant pas encore dispo en V3 : clipboard, qui permet de récupérer le presse-papier d'un hÎte windows.

vol.py -f dump.dmp --profile=Win7SP1x86_23418 clipboard

Lister les processus

vol.py pslist --profile=Win7SP1x86_23418 -f dump.dmp 

Obtenir l'historique du CMD

vol.py consoles --profile=Win7SP1x86_23418 -f Téléchargements/ch2.dmp 

Dump d'un processus

vol.py --profile=Win7SP1x86_23418 -f Téléchargements/ch2.dmp -p 2168 -D --dump-dir ./
tip

Lire le dump avec la commande strings + grep tcprelay pour pivot dmz

Arbre des processus d'un dump:

vol.py pstree --profile=Win7SP1x86_23418 -f Téléchargements/ch2.dmp 

Lister les connexions réseaux d'un dump:

vol.py netscan --profile=Win7SP1x86_23418 -f Téléchargements/ch2.dmp

Lister les services du dump:

vol.py svcscan --profile=Win7SP1x86_23418 -f Téléchargements/ch2.dmp | more 

Lister les commandes du dump:

vol.py consoles --profile=Win7SP1x86_23418 -f Téléchargements/ch2.dmp
tip

L'une des clés de registre les plus connues pour les malwares est la suivante: 'Software\Microsoft\Windows\CurrentVersion\Run' Cette derniÚre se lance sur la clé de registre du NTuser.Dat. Cf plus bas pour localiser les clés de registre des utilisateurs.

Lister les commandes liées au PID:

vol.py cmdline --profile=Win7SP1x86_23418 -f Téléchargements/ch2.dmp
tip

Réaliser un checksum à la volée:

echo -n "C:\Users\John Doe\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\iexplore.exe" | md5sum
tip

Localiser les clés de registre dans la RAM

Extraction des clés de registre:

vol.py hivelist --profile=Win7SP1x86_23418 -f Téléchargements/ch2.dmp

Extraction des hashs de mdp oĂč -s SAM et -y SYSTEM

vol.py hashdump --profile=Win7SP1x86_23418 -f Téléchargements/ch2.dmp -y 0x86226008 -s 0x89c33450 
tip

Structure des hashs:

Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Nom:ID:HashLM:HashNT

Ne pas oublier que ces hashs sont vides (LM: aad3b4 et NT:31d6cf)

Threat Intellingence​

  • Cuckoo Sandbox un Open Source Malware Analysis Tool: Cuckoo Sandbox (Pas encore testĂ© en lab)

  • Virus Total pour avoir un premier visuel sur l'analyse d'un binaire.

Divers​

Loki​

Loki - Simple IOC and Incident Response Scanner

Loki

Velociraptor​

Velociraptor - Endpoint visibility and collection tool.