SysFailure

Imprimer

Libewf

.

Montage de fichiers avec ewfmount

La commande la plus intéressante est ewfmount. Elle permet de monter un fichier EWF sur l'ordinateur. Ewfmount se limite à créer, à l'aide de FUSE et juste en-dessous du point de montage, un fichier virtuel nommé ewf1 donnant accès au contenu du fichier EWF. Il est ensuite possible d'utiliser divers outils d'analyse sur l'image ainsi accessible.

Le démontage du fichier virtuel ewf1 se fait indifféremment avec umount ou fusermount -u.

Dans l'exemple suivant, nous utilisons l'image d'une clé USB de 8 Gio formattée en ext2, et nous nous servons des outils de Sleuthkit.

$ ewfmount USB.E01 /mnt/ici
$ ls -l /mnt/ici
-r--r--r-- 1 root root 8242855936 Jan  6 11:30 ewf1
$ fsstat /mnt/ici/ewf1
FILE SYSTEM INFORMATION
--------------------------------------------
File System Type: Ext2
Volume Name:

Volume ID: 770b5c3e1382fe9fb44d85fd5aefb668

Last Written at: 2018-01-06 00:59:18 (CET)
Last Checked at: 2018-01-06 00:43:51 (CET)
Last Mounted at: empty
Unmounted properly

Source OS: Linux
Dynamic Structure
Compat Features: Ext Attributes, Resize Inode, Dir Index
InCompat Features: Filetype,
Read Only Compat Features: Sparse Super, Large File
$ fls /mnt/ici/ewf1
d/d 11: lost+found
r/r 12: Tokyo-01.jpg
r/r 13: Tokyo-02.jpg
r/r 14: Tokyo-03.jpg
r/r 15: Tokyo-04.jpg
r/r 16: Tokyo-05.jpg
r/r 17: Tokyo-06.jpg
r/r 18: Tokyo-07.jpg
r/r 19: Tokyo-08.jpg
r/r 20: Tokyo-09.jpg
r/r 21: Tokyo-10.jpg
r/r 22: Tokyo-11.jpg
r/r 23: Tokyo-12.jpg

Le montage fait par ewfmount peut ne pas  suffire. Il est souvent utile de monter les différentes partitions du disque afin d'en examiner le contenu avec des commandes et outils classiques. Cela suppose d'utiliser le fichier virtuel ewf1 comme source pour mount. Ceci nécessite que l'utilisateur root puisse accéder au fichier ewf1, ce qui est normalement interdit. Il faut donc

  1. ajouter, dans le fichier /etc/fuse.conf (ou tout autre chemin, selon votre installation) la directive user_allow_other
  2. transmettre à FUSE, via ewfmount, l'option allow_other
$ ewfmount -X allow_other Disque-1To.E01 /mnt/disque/EWF
ewfmount 20170703
$ ls -l /mnt/disque/EWF
-r--r--r-- 1 root root 1000204886016 Jan  6 21:31 ewf1

 Il est alors possible de monter l'une des partitions du disque

$ cd /mnt/disque
$ mmls EWF/ewf1
GUID Partition Table (EFI)
Offset Sector: 0
Units are in 512-byte sectors

      Slot      Start        End          Length       Description
000:  Meta      0000000000   0000000000   0000000001   Safety Table
001:  -------   0000000000   0000002047   0000002048   Unallocated
002:  Meta      0000000001   0000000001   0000000001   GPT Header
003:  Meta      0000000002   0000000033   0000000032   Partition Table
004:  000       0000002048   0000534527   0000532480   EFI system partition
005:  001       0000534528   0000796671   0000262144   Microsoft reserved partition
006:  002       0000796672   1920139263   1919342592   Basic data partition
007:  003       1920139264   1921662975   0001523712   Basic data partition
008:  004       1921662976   1953517567   0031854592   Basic data partition
009:  -------   1953517568   1953525167   0000007600   Unallocated
$ mount -o ro,loop,offset=$((512*796672)) EWF/ewf1 p3

$ ls p3
BOOTNXT                 pagefile.sys         SWSetup
Documents and Settings  PerfLogs             SYSTEM.SAV
$GetCurrent             ProgramData          System Volume Information
hiberfil.sys            Program Files        Users
hp                      Program Files (x86)  Windows
inetpub                 Recovery             Windows10Upgrade
Intel                   $Recycle.Bin         $WINDOWS.~BT
KVRT_Data               swapfile.sys

 Il reste un dernier point important à signaler. Si vous voulez monter plusieurs partitions du même disque, cela ne se passera probablement pas aussi bien que vous le souhaiteriez :

$ mount -o ro,loop,offset=$((512*1920139264)) EWF/ewf1 p4
mount: p4: overlapping loop device exists for /mnt/disque/EWF/ewf1.

Cela vient de ce que, sans autre information, mount considère que la partition que l'on monte va jusqu'à la fin du fichier source. Il faut utiliser l'option sizelimit en plus de offset pour monter les partitions :

$ umount p3
$ mount -o ro,loop,offset=$((512*796672)),sizelimit=$((512*1919342592)) EWF/ewf1 p3
$ mount -o ro,loop,offset=$((512*1920139264)),sizelimit=$((512*1523712)) EWF/ewf1 p4