#Analyser
# Signatures et offsets
binwalk firmware.bin
# Entropie (zones compressées/chiffrées)
binwalk -E firmware.bin
# Signature + entropie + opcodes
binwalk -A firmware.bin
# Rechercher une signature précise
binwalk -R "\x50\x4b\x03\x04" firmware.bin
# Extraire automatiquement
binwalk -e firmware.bin
# Extraction récursive (attention à la taille)
binwalk -Me firmware.bin
# Extraire uniquement certains types
binwalk -e --include='squashfs' firmware.bin
| Option | Effet |
|---|---|
-e |
Extraction automatique |
-M |
Extraction récursive (matryoshka) |
-E |
Entropie |
-A |
Opcodes |
-R |
Recherche d'une signature |
-D |
Extraction avec type spécifié |
#Identifier et monter
file firmware.bin
strings -n 8 firmware.bin | head -50
# Systèmes de fichiers extraits
file _firmware.bin.extracted/*
unsquashfs _firmware.bin.extracted/squashfs-root.squashfs
jefferson _firmware.bin.extracted/jffs2-root.jffs2 -d out/
# Monter une image ext4
sudo mount -o loop,ro rootfs.ext4 /mnt/fw
sudo mount -t squashfs -o loop squashfs-root.squashfs /mnt/fw
#Workflow firmware
# 1. Hashes et type
sha256sum firmware.bin
file firmware.bin
# 2. Entropie et signatures
binwalk -E firmware.bin
binwalk firmware.bin
# 3. Extraction
binwalk -Me firmware.bin
# 4. Recherche de secrets et binaires intéressants
grep -rInE "password|secret|api[_-]?key|BEGIN (RSA|OPENSSH)" _firmware.bin.extracted/ 2>/dev/null
find _firmware.bin.extracted -type f -name "*.so" -o -name "*.cgi" | head
# 5. Analyse des services exposés
cat _firmware.bin.extracted/etc/init.d/*