PassManager Write-up

2018-07-05

L’énoncé du challenge

PassManager

1
2
3
* Euh Teampass?
* Quoi? le truc de Pelos dév par un mec tout seul dans son coin qui a pris
genre 7 CVE cette année... Mais non, bien plus hardcore :)

Url: https://blog.schermi.fr/static/pass_manager.ova

Niveau: Très difficile

Ouverture de l’OVA avec virtualbox

OVA

La machine virtuelle importée est une debian 64 bits et peu de ressources :

J’ai d’abord démarré la machine pour identifier la version de debian et sortir les dernières commandes tapé.
La machine est une debian stretch et les commandes sont :

cat /root/.bash_history

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mkdir /mnt/usb-key-found
mount /dev/sdb1 /mnt/usb-key-found
cd /mnt/usb-key-found
ls
. ./suspicious_autorun.sh
ls
umount /mnt/usb-key-found
rm -rf /mnt/usb-key-found
apt update
apt install -y git build-essential libsqlite3-dev libssl-dev
cd /usr/src
git clone https://github.com/nrosvall/titan.git
cd titan
make
make install
sh

cat /home/jdoe/.bash_history

1
2
3
4
mkdir ~/.titan
titan -i ~/.titan/my-flags.db
titan -a
titan -e

L’historique des commandes permet d’identifier le gestionnaire de mot de passe titan, qui stocke les mots de passes dans une base sqlite chiffrée en AES.

Export du disque pour analyse forensique

Le disque a été ensuite analysé avec DiskEditor afin de chercher les fichiers effacés.
Seul le fichier /home/jdoe/.titan/my-flags.db.titan qui est effacé semble intéressant.
Mais le md5 du fichier /home/jdoe/.titan/my-flags.db.titan et le même que le fichier /home/jdoe/.titan/my-flags.db

Analyse du processus de chiffrement de la base de titan

Le man de l’outil en ligne de commande titan montre que l’option -i initialise une base de donnée et enfin l’option -e chiffre la base de donnée.

Le système de fichier doit donc avoir à un moment la base non chiffrée.

Scalpel

J’ai donc fait un carving à l’aide de scalpel à la recherche de base sqlite.
Scalpel n’a récupéré qu’une base de donnée avec ce contenu :

1
2
3
4
5
sqlite> .tables
entries
sqlite> select * from entries;
1|ndh|||flag-55ffabb0-7724-11e8-a115-07ebd48f4922||2018-06-23 22:32:04
sqlite>