Annexe 06‐07‐08 : Analyse de malware - artafak/ESD_Ressources GitHub Wiki
Vous trouverez ci-dessous des astuces pour mieux appréhender cette annexe et exploiter l'étude de cas.
- https://www.hybrid-analysis.com/
- https://www.virustotal.com/gui/home/upload
- https://lab.dynamite.ai/
- https://app.packetsafari.com/
- https://apackets.com/upload
- https://www.browserling.com/
- https://urlscan.io/
- https://www.webpagetest.org/
- https://www.enisa.europa.eu/topics/training-and-exercises/trainings-for-cybersecurity-specialists/training-courses
- Musée du malware : https://archive.org/details/malwaremuseum?sort=-downloads
- vxunderground.com
- Malware examples : https://github.com/fabrimagic72/malware-samples
TOP REF ! [Pour ceux qui veulent grow up sur le module]
- Livre Obscurcissement, injection et shellcode: Le hacking sous l'oeil de l'assembleur x64
- Livre Antivirus Bypass Techniques: Learn practical techniques and tactics to combat, bypass, and evade antivirus software
- Livre Learning Malware Analysis: Explore the concepts, tools, and techniques to analyze and investigate Windows malware
Analyse du fichier .pcapng avec A-Packets
- exploitable uniquement avec Volatility version 3
- Il est possible d'utiliser le projet MemProcFS-Analyzer de evild3ad
Actuellement en cours de refonte, ce projet est très utile pour automatiser la recherche d'artefacts depuis le dump. Nécessitant de nombreuses dépendances, vous devrez possiblement l'adapter. Une version toute prête est disponible sur ce github, dossier Annexe 6-7-8
Rendez-vous sur le Github officiel pour voir toutes les fonctionnalités de ce projet et vous verrez qu'il va vous faire gagner du temps, beaucoup de temps ...
Télécharger et installer Dokan (obligatoire)
site officiel ou => lien de téléchargement direct
Dokan permet d'émuler un système de fichiers permettant d'exploiter le contenu du dump mémoire dans une arborescence ressemblant à NTFS. Vous aurez un lecteur qui vous permettra de naviguer entre les fichiers extraits et les rapports.
Télécharger et installer DotNet 6.0 (obligatoire)
site officiel ou => lien de téléchargement direct
Composant Microsoft nécessaire pour utiliser les outils développés en C# (comme les Zimmerman's Tools par exemple) le redémarrage de l'ordinateur est obligatoire après l'installation
Navigateur Web par défaut (recommandé) Pour éviter tout problème d'affichage, veuillez à avoir un navigateur Web (Firefox, Chrome, Edge...) récent configuré par défaut
Je vous conseille d'utiliser la version toute prête de MemProcFS-Analyzer_offline version ESD => disponible ici qui intègre :
- un token pour s'appuyer sur l'API de ipinfo.io qui localisera les IP détectées dans les logs Windows pendant l'analyse.
- une intégration des dépendances nécessaires au fonctionnement et à l'automatisation des scripts (évite d'adapter les configurations en fonction de l'évolution/update des outils).
- Désactivation des fonctionnalités inutiles pour l'annexe (ClamAV, Yara, ELK...).
- plusieurs modifications dans le code pour optimiser l'analyse, installation des modules prérequis (NuGet, ImportExcel...)
Vous pouvez aussi vérifier sur le Github de evild3ad si une mise à jour existe, et si de nouvelles fonctionnalités sont apparues. Mais pour votre annexe, il est pleinement fonctionnel.
Désactivez votre antivirus (Windows Defender...) avant de décompresser l'archive contenant MemProcFS-Analyzer
Ouvrir Windows Powershell avec les droits d'administrateur
Exécuter le script .\MemProcFS-Analyzer.ps1
Si vous avez un message d'erreur indiquant que vous ne pouvez pas exécuter ce script car il n'est pas signé, utilisez la commande
Set-ExecutionPolicy Unrestricted
pour modifier la stratégie d'exécution de PowerShell.
Dans la fenêtre qui s'ouvre :
Memory Dump : votre fichier .dump
Cochez les cases : Enable Forensic Timeline (CSV) et Enable Forensic Timeline (XSLX)
Lancement de l'analyse
une fois l'analyse terminée, le script s'arrête, mais votre investigation commence !
Vous pouvez utiliser tous les outils et accéder aux dumps complets :
- en accédant au lecteur F:
- en exploitant les rapports qui se trouvent dans le dossier YYYY-MM-DDTHHMMSS-dump créé dans le répertoire du script (exemple 2024-08-26T145602-dump)
Par exemple, vous pouvez utiliser l'outil Timeline Explorer pour ouvrir le fichier F:\forensic\csv\timeline_all.csv qui sera un bon point de départ à votre analyse
Objectif : créer et configurer une machine virtuelle dotée des outils nécessaires pour analyser des fichiers PCAP/PCAP-NG et des DUMP
Ce lab sera sous Linux et pourra fonctionner en mode déconnecté (hors-ligne)
Ici, nous utiliserons la version 12.6 de Debian qui est la version la plus récente à l'heure où j'écris cette page
Télécharger VirtualBox : --> VirtualBox.org --> VirtualBox-7.0.20-163906-Win.exe --> VirtualBox_Extension_Pack
Télécharger Debian : --> Debian.org --> debian-12.6.0-amd64-netinst.iso
-
Installer Debian et préparer l'environnement
-
Installer les additions invités
sudo apt update
sudo apt install build-essential dkms linux-headers-$(uname -r)
Ensuite faîtes Périphériques > Insérer l'image CD des additions invité
Lancez ensuite le script d'installation des Additions invité
sudo mkdir -p /mnt/cdrom
sudo mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
sudo sh ./VBoxLinuxAdditions.run --nox11
Il sera nécessaire de redémarrer une fois l'installation terminée
sudo shutdown -r now
Ensuite, pour plus de confort :
sudo usermod -aG vboxsf -a <username>
: Permet d'ajouter votre username actuel au groupe vboxsf pour permettre les fonctions de glisser-déposer ou encore d'accéder aux dossiers partagés entre votre VM et l'hôte
echo "username ALL=(ALL:ALL) ALL" >> /etc/sudoers
: Vous permet de donner les droits root à username une bonne fois pour toute, en s'affranchissant de la commande sudo.
D'autres commandes utiles :
apt update --allow-insecure-repositories --allow-unauthenticated
: Permet de bypasser la sécurité lors des connexions aux dépots de mise à jour
/!\ A ne pas faire dans un environnement en production !
apt update --fix-missing
: résoudre les problèmes de dépendances manquantes ou incomplètes
Installation des dépendances systèmes et Python
apt install gcc wget libpq-dev python3-wheel python3.10-venv yara python3-pycryptodome python3-distorm3 -y
python3 -m pip install --upgrade pip
: installer pip et le mettre à jour
python3 -m pip install cmake wheel setuptools pycrypto distorm3 jsonschema --upgrade
: installer les modules avec pip
** Créer un environnement virtuel Python **
python3 -m venv venv
source venv/bin/activate
Télécharger Volatility 3 depuis le github officiel
git clone https://github.com/volatilityfoundation/volatility3.git
pushd volatility3
cd ..
pip3 install -r requirements.txt
python3 setup.py build
python3 setup.py install
popd
** Volatility 3 offline**
Si vous devez utiliser Volatility 3 sans connexion à Internet, il sera nécessaire de télécharger les bases de PDB. Pour simplifier, les PDB sont des tables de symboles nécessaires à Volatility pour trouver le schéma correspondant à l'image afin de l'identifier et l'exploiter. Par défaut, Volatility 3 téléchargera automatiquement le PDB correspondant à l'image lors de la première analyse. Mais si vous souhaitez l'utiliser en mode hors ligne, il faudra télécharger les archives contenant les fichiers au format JSON. Sources :
- https://volatility3.readthedocs.io/en/latest/symbol-tables.html
- https://github.com/volatilityfoundation/volatility3?tab=readme-ov-file#symbol-tables
wget -P $HOME/volatility3/volatility3/symbols/windows https://downloads.volatilityfoundation.org/volatility3/symbols/windows.zip
NB : Il n'est pas nécessaire de dézipper l'archive, Volatility 3 recherchera directement dedans.
python3 vol.py -f <filename> <plugin>
Exemple : python3 vol.py -f dump.raw isfinfo
NB : le plugin isfinfo doit être le premier a être utilisé afin que Volatility 3 puisse identifier l'image à analyser.
Ensuite, pour une image Windows, voici quelques plugins utiles :
- windows.info
- windows.pslist
- windows.pstree
- windows.registry.hivescan
- windows.shimcachemem
- windows.strings
- windows.suspicious_threads
- windows.svcscan
- windows.vadyarascan
- ...
La liste complète est disponible ici
Tous les plugins disponibles sont listés avec la commande
python3 vol.py -h
Exemple de commande
root@local:~/volatility3# python3 vol.py -vvvv /TPMALWARE/infected/dump.raw windows.info > /TPMALWARE/artefacts/windows.info/txt
les résultats de la commande seront envoyés dans le fichier /TPMALWARE/artefacts/windows.info.txt pour les sauvegarder et les exploiter plus tard.
root@local:~/volatility3# python3 vol.py -vvvv -f dump.raw -o /tmp windows.memmap --dump --pid 1234
permet d'extraire le processus 1234 en mémoire
root@local:~/volatility3# strings pid.1234.dmp > pid.1234.dmp.txt
permet d'extraire les lignes de caractères (strings) depuis l'image mémoire du processus extrait précédemment