Quelques tips utiles à avoir sous la main en cas d'investigation mémoire
Analyse mémoire Windows
Récupérer les hash de la capture
volatility -f dump.raw --profile=Win7SP1x86 hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
John Doe:1000:aad3b435b51404eeaad3b435b51404ee:b9f917853e3dbf6e6831ecce60725930:::
Afficher les valeurs de registre
volatility -f dump.raw --profile Win7SP1x86 printkey -K "Software\Microsoft\Windows\CurrentVersion\Run"
----------------------------
Registry: \??\C:\Users\John Doe\ntuser.dat
Key name: Run (S)
Last updated: 2013-01-12 14:13:19
Subkeys:
Values:
REG_SZ RESTART_STICKY_NOTES : (S) C:\Windows\System32\Malware.exe
REG_SZ IEPreload : (S) "C:\Users\John Doe\AppData\Roaming\malware.exe
Afficher les commandes en cours
volatility -f dump.raw --profile Win7SP1x86 cmdline
AvastUI.exe pid: 2720
Command line : "C:\Program Files\AVAST Software\Avast\AvastUI.exe" /nogui
************************************************************************
StikyNot.exe pid: 2744
Command line : "C:\Windows\System32\StikyNot.exe"
************************************************************************
iexplore.exe pid: 2772
Command line : "C:\Users\John Doe\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\iexplore.exe"
************************************************************************
SearchIndexer. pid: 2900
Command line : C:\Windows\system32\SearchIndexer.exe /Embedding
************************************************************************
wmpnetwk.exe pid: 3176
Command line : "C:\Program Files\Windows Media Player\wmpnetwk.exe"
************************************************************************
Afficher les fichiers de la mémoire en cache
volatility -f memory.dmp --profile=Win7SP1x86 filescan
Extraire tous les fichiers en cache (Long et gourmand en stockage)
volatility -f memory.dmp --profile=Win7SP1x86 dumpfiles -D files/ > files.txt
Extraire un fichier particulier
volatility -f memory.dmp --profile=Win7SP0x86 dumpfiles -D filedump/ -Q 0x000000001ee20118
#0x000000001ee20118 est l'adresse du fichier indiqué dans filescan
Extraire un processus en mémoire
volatility -f memory.dmp --profile=Win7SP0x86 procexedump -D procdump/ -p 2772
Analyse mémoire Linux
Créer le profile correspondant à l'image
Récupérez la version du noyau de la capture
strings memory.raw | grep BOOT
BOOT_IMAGE=/boot/vmlinuz-4.4.0-72-lowlatency
Dans l'exemple il s'agit d'un Linux Ubuntu 16.04 (Rechercher via google) Il faut installer une VM sous Linux ubuntu 16.04 et installer le noyau
Commandes à effectuer dans la VM Ubuntu :
apt-get install linux-image-4.4.0-72-lowlatency linux-headers-4.4.0-72-lowlatency
Rebootez pour démarrer sur le nouveau noyau (Si besoin modifier grub pour choisir le noyau)
vi /etc/default/grub
#Si GRUB_HIDDEN_TIMEOUT=0 modifiez le comme ci-dessous
GRUB_HIDDEN_TIMEOUT=5
GRUB_TIMEOUT=5
#Rechargez grub et redémarrez
sudo update-grub
Installer volatility
apt-get install volatility volatility-tools
Installer les outils pour générer le profil
apt-get install build-essential dwarfdump zip
Générez le profil linux pour volatility
cd /usr/src/volatility-tools/linux
make
zip linuxprofile4.4-72.zip module.dwarf /boot/System.map-4.4.0-72-lowlatency #Adaptez selon le noyau qu'il vous faut
Le fichier linuxprofile4.4-72.zip est le profile, copiez le sur votre VM de forensic et dans le dossier des profiles volatility
#L'emplacement dépend de votre configuration / installation
#Exemple1
cp linuxprofile4.4-72.zip /usr/lib/python2.7/dist-packages/volatility/plugins/overlays/
#Exemple 2
cp linuxprofile4.4-72.zip /usr/local/lib/python2.7/dist-packages/volatility-2.6.1-py2.7.egg/volatility/plugins/overlays/linux
#Exemple 3
cp linuxprofile4.4-72.zip /usr/share/volatility/volatility/plugins/overlays/linux/
Le profil linux est désormais disponible pour investigation
NOTE : des profiles sont aussi disponibles ici https://github.com/volatilityfoundation/profiles
Récupérer les clefs AES dans une capture
la Team Prime-CTF à écrit un outil automatisant l'attaque simple, pratique et efficace
https://github.com/TeamCTF-PRIME/auto_vol
./auto_vol -d memory.raw -f dump
#Répondez aux questions
Une fois la clef récupéré
cat key | xxd -r -p >> key.bin
Pour monter l'image disque chiffré par la clef précédente (Lukscrypt par exemple)
kpartx -a -v crypt.img
cryptsetup luksAddKey --master-key-file key.bin /dev/loop0
cryptsetup luksOpen /dev/loop0 CryptIMG
Dump la clef HFS+ MacOS (Pour ouvrir une image disque)
# Récuperer les offset de début
$fdisk -l s3cr3t.raw
...
Device Start End Sectors Size Type
disk.raw 40 1048535 1048496 512M Apple Core storage
# Récupérer la clef
$vol -f findmeback.dmp --profile=MacMountainLion_10_8_1_AMDx64 mac_filevault2
Volatility Foundation Volatility Framework 2.6.1
Address Volume Master Key
------------------ --------------------------------
0xffffff804c0b7000 79121544c.......
# Ouvrir la partition avec la clef
vdemount -k 79121544c... -o $((40*512)) disk.raw /mnt/MACOS/
fvdemount 20190104
# Monter la nouvelle partition déchiffrée
mount -o loop,ro /mnt/MACOS/fvde1 /mnt/DISKMac/
Quelques liens
https://digital-forensics.sans.org/media/volatility-memory-forensics-cheat-sheet.pdf
http://repository.root-me.org/Forensic/EN%20-%20Volatility%20cheatsheet%20v2.4.pdf