Forensics đ
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â
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
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â
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 ./
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
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
Réaliser un checksum à la volée:
echo -n "C:\Users\John Doe\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\iexplore.exe" | md5sum
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
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
Velociraptorâ
Velociraptor - Endpoint visibility and collection tool.