Création d'un dump de RAM utilisable avec Volatility

Dump à partir de VBox avec Volatility...

Imagem de capa

Contexte

Nous utilisons ici une VM Xubuntu 17.04 avec la version 1.06 BETA de PasswordSafe : https://sourceforge.net/projects/passwordsafe/files/Linux-BETA/

L’idée est d’arriver à récupérer un maximum d’information à partir du dump de RAM de la VM, peut être les mot de passe, et sinon des informations contenues dans le navigateur. En particulier, celles contenues dans la page d’accueil de Gmail.

Installation de Password PasswdSafe

Un package .deb est disponible à l’adresse mentionnée ci-dessus.

Dump de RAM à partir de VBox

VBoxManage debugvm MyVm dumpvmcore --filename=MyVM.elf

readelf --program-headers MyVM.elf

Type de fichier ELF est CORE (fichier core)
Point d'entrée 0x0
Il y a 11 en-têtes de programme, débutant à l'adresse de décalage 64

En-têtes de programme :
  Type           Décalage           Adr.virt           Adr.phys.
                 Taille fichier     Taille mémoire      Fanion Alignement
  NOTE           0x00000000000002a8 0x0000000000000000 0x0000000000000000
                 0x0000000000002280 0x0000000000002280  R      0
  LOAD           0x0000000000002528 0x0000000000000000 0x0000000000000000
                 0x0000000080000000 0x0000000080000000  R      0
  LOAD           0x0000000080002528 0x0000000000000000 0x00000000e0000000
                 0x0000000001000000 0x0000000001000000  R      0
  LOAD           0x0000000081002528 0x0000000000000000 0x00000000f0000000
                 0x0000000000000000 0x0000000000020000  R      0
  LOAD           0x0000000081002528 0x0000000000000000 0x00000000f0400000
                 0x0000000000400000 0x0000000000400000  R      0
  LOAD           0x0000000081402528 0x0000000000000000 0x00000000f0800000
                 0x0000000000004000 0x0000000000004000  R      0
  LOAD           0x0000000081406528 0x0000000000000000 0x00000000f0804000
                 0x0000000000000000 0x0000000000001000  R      0
  LOAD           0x0000000081406528 0x0000000000000000 0x00000000f0806000
                 0x0000000000000000 0x0000000000002000  R      0
  LOAD           0x0000000081406528 0x0000000000000000 0x00000000fec00000
                 0x0000000000000000 0x0000000000001000  R      0
  LOAD           0x0000000081406528 0x0000000000000000 0x00000000fee00000
                 0x0000000000000000 0x0000000000001000  R      0
  LOAD           0x0000000081406528 0x0000000000000000 0x00000000ffff0000
                 0x0000000000010000 0x0000000000010000  R      0

# Le premier load nous intéresse :
# 0x0000000000002528 est le début du dump
# 0x0000000080000000 est la taille du dum

size=0x80000000;off=0x2528;head -c $(($size+$off)) test.elf|tail -c +$(($off+1)) > MyVM.raw

Installation du profil Linux

Récupération du bon profil sur GitHub :

https://github.com/volatilityfoundation/profiles/blob/master/Linux/Ubuntu/x64/Ubuntu1604.zip L’installation se fait en déposant le .zip, sous le chemin volatility/plugins/overlays/linux/Ubuntu1604.zip .

# Vérification de l'installation du profil
volatility --info | grep Ubuntu

# Lister les commandes disponibles
volatility -f MyVM.raw --profile=LinuxUbuntu1604x64 --help  --cache

Cependant ici le profil Linux n’est pas disponible, il faut alors créer son propre profil en suivant la procédure décrite ici .

Ressources

https://medium.com/@m4lv0id/and-i-did-oscp-589babbfea19