bulk_extractor

Outil de forensique numérique qui parcourt images disque et fichiers à la recherche de motifs : e-mails, URLs, cartes bancaires, numéros de téléphone, coordonnées GPS, et plus. Aucun parsing de système de fichiers requis. Digital forensics tool that scans disk images and files for patterns — emails, URLs, credit cards, phone numbers, GPS coordinates, and more. No filesystem parsing required.

↗ https://github.com/simsong/bulk_extractor

Overview

bulk_extractor scans disk images, memory dumps, or files at the byte level — without parsing the filesystem — to extract structured data: email addresses, URLs, credit card numbers, GPS coordinates, phone numbers, JSON, and more. It handles compressed and carved data automatically, making it invaluable for forensic analysis of raw media.

Basic Usage

Scan a disk image

bulk_extractor disk.img -o output/

Scan a specific file

bulk_extractor file.bin -o output/

Scan a directory of files

bulk_extractor /path/to/files/ -o output/

Scan with specific scanner only

bulk_extractor disk.img -o output/ -E email

Exclude specific scanners

bulk_extractor disk.img -o output/ -x email -x url

Output Structure

output/
  email.txt          — extracted email addresses
  url.txt            — extracted URLs
  ccn.txt            — credit card numbers
  domain.txt         — domain names
  telephone.txt      — phone numbers
  gps.txt            — GPS coordinates
  json.txt           — JSON fragments
  wordlist.txt       — words for password cracking
  zip.txt            — compressed data found
  pdf.txt            — PDF fragments
  alerts.txt         — high-priority findings
  report.xml         — full XML report

Targeted Scans

Email extraction only

bulk_extractor disk.img -o out/ -E email

URL and domain extraction

bulk_extractor disk.img -o out/ -E url

Credit card numbers

bulk_extractor disk.img -o out/ -E ccn

WiFi/network info

bulk_extractor disk.img -o out/ -E wifi

Extract all strings (large output)

bulk_extractor disk.img -o out/ -E wordlist

Performance

Multi-threaded (default uses all cores)

bulk_extractor disk.img -o out/ -j 8

Set scan size limit (for testing)

bulk_extractor disk.img -o out/ -b 100000000  # 100MB

Skip first N bytes (skip partition table)

bulk_extractor disk.img -o out/ -s 1048576

Process only specific sector

bulk_extractor disk.img -o out/ -s 0 -b 512

Memory Dump Analysis

Scan a memory dump (e.g., from volatility or LiME)

bulk_extractor memory.dmp -o out/

Find recently visited URLs in browser memory

cat out/url.txt | grep "http" | sort -u

Find credentials in memory

cat out/email.txt

Extract WiFi passwords from Windows memory

cat out/wifi.txt

Post-Processing

Sort and deduplicate email addresses

sort -u out/email.txt > unique_emails.txt

Count domain occurrences (most common first)

cat out/domain.txt | sort | uniq -c | sort -rn | head -20

Find specific company in emails

grep "@targetcorp.com" out/email.txt

Visualize with BEViewer (GUI)

beviewer

Tips

  • bulk_extractor works on raw bytes — no filesystem needed (works on unallocated space, slack space)
  • The wordlist.txt output is useful for targeted password cracking on related accounts
  • Always look at alerts.txt first — highest confidence findings
  • For memory forensics, combine with Volatility for process/network context
Available Scanners
email           Email addresses
url             URLs
domain          Domain names
ccn             Credit card numbers
telephone       Phone numbers
gps             GPS coordinates
json            JSON data
pdf             PDF fragments
zip             Compressed data
winprefetch     Windows prefetch files
wifi            WiFi SSIDs and passwords
aes             AES keys
base64          Base64 encoded data
elf             ELF binaries
exif            EXIF metadata
find            Custom regex patterns

Vue d’ensemble

bulk_extractor parcourt les images disque, dumps mémoire ou fichiers au niveau de l’octet, sans parser le système de fichiers, pour extraire des données structurées : adresses e-mail, URLs, numéros de carte bancaire, coordonnées GPS, numéros de téléphone, JSON, et plus. Il gère automatiquement les données compressées et découpées, ce qui le rend inestimable pour l’analyse forensique de médias bruts.

Utilisation de base

# Parcourir une image disque
bulk_extractor disk.img -o output/

# Parcourir un fichier spécifique
bulk_extractor file.bin -o output/

# Parcourir un répertoire de fichiers
bulk_extractor /path/to/files/ -o output/

# Parcourir avec un seul scanner spécifique
bulk_extractor disk.img -o output/ -E email

# Exclure des scanners spécifiques
bulk_extractor disk.img -o output/ -x email -x url

Structure de sortie

output/
  email.txt          : adresses e-mail extraites
  url.txt            : URLs extraites
  ccn.txt            : numéros de carte bancaire
  domain.txt         : noms de domaine
  telephone.txt      : numéros de téléphone
  gps.txt            : coordonnées GPS
  json.txt           : fragments JSON
  wordlist.txt       : mots pour le crack de mot de passe
  zip.txt            : données compressées trouvées
  pdf.txt            : fragments PDF
  alerts.txt         : découvertes hautement prioritaires
  report.xml         : rapport XML complet

Scans ciblés

# Extraction d'e-mails uniquement
bulk_extractor disk.img -o out/ -E email

# Extraction d'URLs et de domaines
bulk_extractor disk.img -o out/ -E url

# Numéros de carte bancaire
bulk_extractor disk.img -o out/ -E ccn

# Infos WiFi/réseau
bulk_extractor disk.img -o out/ -E wifi

# Extraire toutes les chaînes (grosse sortie)
bulk_extractor disk.img -o out/ -E wordlist

Performance

# Multi-threadé (utilise tous les cœurs par défaut)
bulk_extractor disk.img -o out/ -j 8

# Fixer une limite de taille de scan (pour tester)
bulk_extractor disk.img -o out/ -b 100000000  # 100MB

# Sauter les N premiers octets (sauter la table de partitions)
bulk_extractor disk.img -o out/ -s 1048576

# Ne traiter qu'un secteur spécifique
bulk_extractor disk.img -o out/ -s 0 -b 512

Analyse de dump mémoire

# Parcourir un dump mémoire (par exemple depuis volatility ou LiME)
bulk_extractor memory.dmp -o out/

# Trouver les URLs récemment visitées dans la mémoire du navigateur
cat out/url.txt | grep "http" | sort -u

# Trouver des identifiants en mémoire
cat out/email.txt

# Extraire les mots de passe WiFi de la mémoire Windows
cat out/wifi.txt

Post-traitement

# Trier et dédupliquer les adresses e-mail
sort -u out/email.txt > unique_emails.txt

# Compter les occurrences de domaines (les plus fréquents d'abord)
cat out/domain.txt | sort | uniq -c | sort -rn | head -20

# Trouver une entreprise précise dans les e-mails
grep "@targetcorp.com" out/email.txt

# Visualiser avec BEViewer (GUI)
beviewer

Conseils

  • bulk_extractor travaille sur les octets bruts : aucun système de fichiers nécessaire (fonctionne sur l’espace non alloué, le slack space)
  • La sortie wordlist.txt est utile pour un crack de mot de passe ciblé sur des comptes liés
  • Regardez toujours alerts.txt en premier : les découvertes avec le plus haut niveau de confiance
  • Pour la forensique mémoire, combinez avec Volatility pour le contexte processus/réseau
Scanners disponibles
email           Email addresses
url             URLs
domain          Domain names
ccn             Credit card numbers
telephone       Phone numbers
gps             GPS coordinates
json            JSON data
pdf             PDF fragments
zip             Compressed data
winprefetch     Windows prefetch files
wifi            WiFi SSIDs and passwords
aes             AES keys
base64          Base64 encoded data
elf             ELF binaries
exif            EXIF metadata
find            Custom regex patterns