Maintenant, on change de sujet et on va parler un peu « forensic ».

On m’a envoyé une image au format E01. Kézako? C’est quoi cette extension?

L’extension *.E01 ou Encase Ex01 Bitstream, sont des containers dits forensic au format « Expert Witness Format ».

Autrement dit, ce sont des volumes qui contiennent une preuve. Leur particularité est que le contenu de ces volumes est inviolable, non-modifiable.

Le conteneur contient de nombreuses informations sur son contenu, notamment:

  • La somme de contrôle (hash) de son contenu, ce qui fait que toute modification forcée entraînerait une erreur.
  • Le logiciel ayant servi a le créer.
  • Les informations du cas et de l’expert.
  • La date de création.
  • La taille du disque.
  • Etc…

Quoi faire avec un E01? Nous pouvons dans un premier temps prendre quelques informations. Nous allons pour cela utiliser une machine virtuelle https://tsurugi-linux.org qui contient tous les outils nécessaires, notamment tous les outils de la librairie libewf.

Pour prendre des informations, rien de plus simple, nous allons utiliser ewfinfo:

[email protected]:~$ ewfinfo /media/tsurugi/usb/image.E01
ewfinfo 20180403

Acquiry information
	Case number:		decepticon
	Examiner name:		Super_Forensic_Guy
	Notes:			Good_Luck
	Acquisition date:	Fri Sep 10 11:45:31 2019
	System date:		Fri Sep 10 11:45:31 2019
	Operating system used:	Windows 8
	Software version used:	3.22g
	Password:		N/A

EWF information
	File format:		EnCase 3
	Sectors per chunk:	64
	Error granularity:	1
	Compression method:	deflate
	Compression level:	best compression

Media information
	Media type:		fixed disk
	Is physical:		yes
	Write blocked:		Tableau
	Bytes per sector:	512
	Number of sectors:	1953525168
	Media size:		931 GiB (1000204886016 bytes)

Digest hash information
	MD5:			fcd26b1115c2e2483e04ebbd4381940e

 

Ok, nous voici avec pas mal d’informations. Nous savons notamment qu’il s’agit d’une image d’un disque de 1To. Mais soyons honnêtes, nous ce qu’on veut, c’est voir ce qu’il y a dedans…

Il va falloir monter cette image, afin qu’elle nous révèle son contenu en « raw ».

Pour monter une image, nous avons besoin des droits root, d’une image bien sûr et d’un point de montage. Chez Tsurugi, certains points sont déjà créés dans /mnt/. Nous allons donc y aller:

Pour cela, nous allons cette fois utiliser l’outil ewfmount:

[email protected]:~# ewfmount /media/tsurugi/usb/image.E01 /mnt/ewf1

Si tout se passe bien, nous avons maintenant une image raw nommée ewf1 dans le sous répertoire /mnt/ewf1.

Regardons de plus près:

[email protected]:~# fdisk -l /mnt/ewf1/ewf1
Disk /mnt/ewf1/ewf1: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0002d6af

Device           Boot      Start        End    Sectors   Size Id Type
/mnt/ewf1/ewf1p1 *          2048     487423     485376   237M 83 Linux
/mnt/ewf1/ewf1p2          489470 1953523711 1953034242 931.3G  5 Extended
/mnt/ewf1/ewf1p5          489472 1953335295 1952845824 931.2G 83 Linux
/mnt/ewf1/ewf1p6      1953337344 1953523711     186368    91M 82 Linux swap / Solaris

Bien, nous en savons maintenant un peu plus. Il s’agit d’une image d’un disque, probablement système, contenant une installation de type linux.

Pour en avoir le cœur net et pour enfin découvrir le contenu de notre image, montons la grosse partition de notre disque « raw » (ewf1p5) sur le point de montage /mnt/raw1/.

[email protected]:~# sudo mount -o ro,loop,offset=$((489472*512)) /mnt/ewf1/ewf1 /mnt/raw1


Sauf que chez moi, ça n’a pas fonctionné. une erreur « cannot mount /dev/loop0 read-only » m’est apparue. Il a fallu que je rajoute l’option « norecovery »:

[email protected]:~# mount -o ro,norecovery,loop,offset=$((489472*512)) /mnt/ewf1/ewf1 /mnt/raw1

Une petite vérification:

[email protected]:~# ls /mnt/raw1/
bin  boot  dev	etc  home  initrd.img  lib  lib64  lost+found  mad  media  mnt	opt  proc  root  run  sbin  srv  sys  tmp  usr  var	vmlinuz

Nous sommes bien en présence d’une partition système linux… Il ne nous reste plus qu’à aller plonger dans les entrailles de la bête…

-*-_-* -*-_-* -*-_-* -*-_-* -*-_-* -*-_-* -*-_-* -*-_-* –

Ok, ça, c’est la version qu’on trouve partout. Mais il y a un autre outil que j’aime bien. Il s’appelle Xmount.

https://github.com/mika/xmount

1.0 What is xmount? – A short description xmount allows you to convert on-the-fly between multiple input and output harddisk image types. xmount creates a virtual file system using FUSE (Filesystem in Userspace) that contains a virtual representation of the input image. The virtual representation can be in raw DD, VirtualBox’s virtual disk file format, Microsoft’s Virtual Hard Disk Image format or in VmWare’s VMDK file format. Input images can be raw DD, EWF (Expert Witness Compression Format) or AFF (Advanced Forensic Format) files. In addition, xmount also supports virtual write access to the output files that is redirected to a cache file. This makes it possible to boot acquired harddisk images using QEMU, KVM, VirtualBox, VmWare or alike.

O h, ça m’a l’air bien ça…. « convert on-the-fly between multiple input and output » […] « Input images can be raw DD, EWF » […] « This makes it possible to boot acquired harddisk images using QEMU, KVM, VirtualBox, VmWare or alike. »

En gros, je peux monter un E01||raw en vdi||vmdk||raw, tout en créant un fichier de cache pour une illusion d’écriture sur le support et booter avec virtualbox||workstation, ou tout simplement lire le contenu…. ^^

Pour simplement lire le contenu de notre disque on pourrait faire:

[email protected]:~# xmount --in ewf /media/tsurugi/usb/image.E01 /mnt/ewf1

Ok. Jusque là, rien de neuf. Mais si je voulais virtualiser mon support pour créer une machine virtuelle, je devrai passer par une étape de conversion longue et consommatrice de stockage.

Pour monter un E01 en vdi et avec un fichier de cache, je peux faire:

[email protected]:~# xmount --in ewf --out vdi --cache /home/tsurugi/Desktop/d1.Cache /media/tsurugi/usb/image.E01 /mnt/ewf1

Et la, j’ai un vdi exploitable dans /mnt/ewf1…

Prety cool hein?

Laisser un commentaire