The Sleuth Kit

Collection d'outils forensiques en ligne de commande pour analyser des images disque et des systèmes de fichiers. Le moteur derrière Autopsy : utilisé pour la récupération de fichiers, les métadonnées et l'analyse de timeline. Collection of command-line forensic tools for analyzing disk images and filesystems. The backend behind Autopsy — used for file recovery, metadata, and timeline analysis.

↗ https://www.sleuthkit.org

Overview

The Sleuth Kit (TSK) is a collection of Unix-based command-line digital forensics tools. It analyzes volume systems, filesystems, and individual files from raw disk images. Autopsy is the GUI frontend built on top of TSK.

Image & Volume Tools

List partition layout of a disk image

mmls disk.dd
# Example output:
# DOS Partition Table
# Offset Sectors  Description
# 000000 000063   Unallocated
# 000063 2056320  NTFS (0x07)

Show volume system details

mmstat disk.dd

Show filesystem stats at a partition offset

fsstat disk.dd -o 63

Show filesystem stats for a specific filesystem type

fsstat -f ntfs disk.dd -o 63

File System Enumeration

List all files (including deleted, marked with *)

fls disk.dd -o 63

Recursive listing

fls -r disk.dd -o 63

List with full metadata

fls -l disk.dd -o 63

List only directories

fls -D disk.dd -o 63

List only files

fls -F disk.dd -o 63

Show deleted files only

fls -u disk.dd -o 63

File Extraction

Extract file by inode number (from fls output)

icat disk.dd -o 63 INODE > recovered_file.txt

Extract to stdout, pipe to file

icat disk.dd -o 63 128 > mft_entry.bin

Extract deleted file (if inode still exists)

icat disk.dd -o 63 INODE_OF_DELETED_FILE > deleted.doc

Metadata Analysis

Show file metadata by inode

istat disk.dd -o 63 INODE

Show metadata for specific file

istat disk.dd -o 63 128   # MFT entry 128 (NTFS)

Show MFT entries for NTFS

ifind -n "Documents/secret.txt" disk.dd -o 63

Timeline Generation

Generate MAC times from filesystem (bodyfile format)

fls -r -m / disk.dd -o 63 > bodyfile.txt

Convert bodyfile to human-readable timeline

mactime -b bodyfile.txt -d > timeline.csv

Filter by date range

mactime -b bodyfile.txt -d 2024-01-01 2024-12-31 > timeline_2024.csv

Sort by time

mactime -b bodyfile.txt -d | sort > sorted_timeline.txt

String Searching

Search for string in unallocated space

blkls disk.dd -o 63 | strings | grep -i "password"

Search for string in entire image

strings disk.dd | grep -i "admin"

Get block containing a string

sigfind -b 512 -t ntfs disk.dd   # Find NTFS signatures

Carving Deleted Files

Extract unallocated (deleted) space

blkls disk.dd -o 63 > unallocated.dd

Carve files from unallocated space (use foremost or scalpel)

foremost -t all -i unallocated.dd -o carved/

Tips

  • mmls first to get partition offset, then pass it with -o to all subsequent commands
  • fls with * prefix indicates deleted files — use icat to recover them
  • Combine fls -m bodyfile output with mactime for timeline analysis
  • TSK supports NTFS, FAT, ext2/3/4, HFS+, ISO9660, YAFFS2
Key commands reference
Volume tools:
  mmls        List partition table
  mmstat      Volume system stats
  mmcat       Output raw partition data

Filesystem tools:
  fsstat      Filesystem statistics
  fls         File/directory listing
  ffind       Find file by inode

File tools:
  icat        Extract file by inode
  istat       Inode metadata
  ifind       Find inode by name

Block tools:
  blkcat      Output data block content
  blkls       Extract unallocated blocks
  blkstat     Block metadata

Timeline:
  mactime     Generate timeline from bodyfile

Vue d’ensemble

The Sleuth Kit (TSK) est une collection d’outils forensiques numériques Unix en ligne de commande. Il analyse les systèmes de volumes, les systèmes de fichiers et les fichiers individuels à partir d’images disque brutes. Autopsy est l’interface graphique construite au-dessus de TSK.

Outils d’image et de volume

# Lister la table de partitions d'une image disque
mmls disk.dd
# Exemple de sortie :
# DOS Partition Table
# Offset Sectors  Description
# 000000 000063   Unallocated
# 000063 2056320  NTFS (0x07)
# Afficher les détails du système de volumes
mmstat disk.dd

# Afficher les stats du système de fichiers à un offset de partition
fsstat disk.dd -o 63

# Afficher les stats pour un type de système de fichiers spécifique
fsstat -f ntfs disk.dd -o 63

Énumération du système de fichiers

# Lister tous les fichiers (y compris supprimés, marqués d'un *)
fls disk.dd -o 63

# Listing récursif
fls -r disk.dd -o 63

# Listing avec métadonnées complètes
fls -l disk.dd -o 63

# Ne lister que les répertoires
fls -D disk.dd -o 63

# Ne lister que les fichiers
fls -F disk.dd -o 63

# N'afficher que les fichiers supprimés
fls -u disk.dd -o 63

Extraction de fichiers

# Extraire un fichier par numéro d'inode (depuis la sortie de fls)
icat disk.dd -o 63 INODE > recovered_file.txt

# Extraire vers stdout, rediriger vers un fichier
icat disk.dd -o 63 128 > mft_entry.bin

# Extraire un fichier supprimé (si l'inode existe encore)
icat disk.dd -o 63 INODE_OF_DELETED_FILE > deleted.doc

Analyse des métadonnées

# Afficher les métadonnées d'un fichier par inode
istat disk.dd -o 63 INODE

# Afficher les métadonnées d'un fichier spécifique
istat disk.dd -o 63 128   # Entrée MFT 128 (NTFS)

# Afficher les entrées MFT pour NTFS
ifind -n "Documents/secret.txt" disk.dd -o 63

Génération de timeline

# Générer les horodatages MAC depuis le système de fichiers (format bodyfile)
fls -r -m / disk.dd -o 63 > bodyfile.txt

# Convertir le bodyfile en timeline lisible
mactime -b bodyfile.txt -d > timeline.csv

# Filtrer par plage de dates
mactime -b bodyfile.txt -d 2024-01-01 2024-12-31 > timeline_2024.csv

# Trier par heure
mactime -b bodyfile.txt -d | sort > sorted_timeline.txt

Recherche de chaînes

# Rechercher une chaîne dans l'espace non alloué
blkls disk.dd -o 63 | strings | grep -i "password"

# Rechercher une chaîne dans l'image entière
strings disk.dd | grep -i "admin"

# Obtenir le bloc contenant une chaîne
sigfind -b 512 -t ntfs disk.dd   # Trouver les signatures NTFS

Carving de fichiers supprimés

# Extraire l'espace non alloué (supprimé)
blkls disk.dd -o 63 > unallocated.dd

# Carver des fichiers depuis l'espace non alloué (utiliser foremost ou scalpel)
foremost -t all -i unallocated.dd -o carved/

Conseils

  • mmls en premier pour obtenir l’offset de partition, puis le passer avec -o à toutes les commandes suivantes
  • fls avec le préfixe * indique les fichiers supprimés : utiliser icat pour les récupérer
  • Combiner la sortie bodyfile de fls -m avec mactime pour l’analyse de timeline
  • TSK supporte NTFS, FAT, ext2/3/4, HFS+, ISO9660, YAFFS2
Référence des commandes clés
Volume tools:
  mmls        List partition table
  mmstat      Volume system stats
  mmcat       Output raw partition data

Filesystem tools:
  fsstat      Filesystem statistics
  fls         File/directory listing
  ffind       Find file by inode

File tools:
  icat        Extract file by inode
  istat       Inode metadata
  ifind       Find inode by name

Block tools:
  blkcat      Output data block content
  blkls       Extract unallocated blocks
  blkstat     Block metadata

Timeline:
  mactime     Generate timeline from bodyfile