Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2023-27216 — L'approche d'un débutant au hacking de firmware | Kitploit
Outils/GitHubGitHub/hoangrealer/cve-2023-27216
Sécurité des Systèmes EmbarquésSécurité IoTAnalyse des VulnérabilitésRétro-ingénierieDébogueursHacking MatérielApprentissage et ÉducationAnalyse de MicrologicielExploitation de Binaires
GitHubhoangrealer/cve-2023-27216

CVE-2023-27216

L'approche d'un débutant au hacking de firmware

317il y a 2 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt

CVE-2023-27216 - Routeur DLink

Ce document relate mon expérience personnelle en tant que débutant dans la rétro-ingénierie et l'exploitation de firmware. Firmware où ??

Portée

Pour la démonstration, nous allons analyser et reproduire CVE-2023-27216.

  • Numéro CVE : CVE-2023-27216
  • Description de la vulnérabilité : Un problème trouvé dans le D-Link DSL-3782 v.1.03 permet à des utilisateurs authentifiés à distance d'exécuter du code arbitraire - en tant que root via la page des paramètres réseau.
  • Modèle d'équipement : D-Link DSL-3782
  • Version du firmware : DSL-3782_A1_EU_1.01
  • Site Web officiel du fabricant : http://www.dlink.com.cn/
  • Adresse du firmware : https://media.dlink.eu/support/products/dsl/dsl-3782/driver_software/dsl-3782_a1_eu_1.01_07282016.zip

Tâches

Afin d'exploiter des firmwares, voici les étapes à suivre :

  • Obtenir les firmwares. Il y a 2 méthodes : les extraire directement du matériel (caméra, routeur, imprimante, etc.) ou les récupérer depuis le site Web du fabricant. Ce point sera abordé dans un autre document.
  • Analyser le firmware et trouver d'éventuelles vulnérabilités
  • Émuler le firmware.
  • Compiler gdbserver de manière statique afin de déboguer.

Analyse du firmware

En général, un fichier binaire de firmware contient un chargeur de démarrage (uBoot), un fichier noyau, un en-tête de noyau pour le chargeur de démarrage (uImage), un système de fichiers compressé (généralement au format SquashFS), une table CRC/MD5 (pour vérifier l'intégrité des fichiers) et d'autres fichiers divers.

Cherchez d'abord un moyen d'analyser le firmware, faites des recherches, voici quelques ressources :

  • Binwalk pour analyser et extraire le firmware
  • Comment émuler : https://boschko.ca/qemu-emulating-firmware/ Vérification de la signature avec Binwalk

Extraire les fichiers importants

Extrayez le firmware avec binwalk : binwalk -Me DSL-3782_A1_EU_1.01_07282016.bin Extraction avec Binwalk

On obtient le dossier squashfs-root extrait et des fichiers étranges. Fichiers extraits

Bonus : Si vous ne voyez pas le dossier squashfs-root, utilisez unsquashfs sur les fichiers ".squashfs" que vous voyez. Ce sont comme des fichiers zip 😅.

Analyser le fonctionnement du firmware

Vérifiez l'architecture et l'endianness du firmware. Cela peut être vérifié en examinant certains binaires extraits du firmware. Vérifiez l'architecture et le firmware : file <binary> Architecture du firmware

Ici, nous pouvons presque confirmer que le firmware fonctionne sur une architecture MIPS 32 bits MSB. La raison du « presque » est que certains firmwares peuvent fonctionner sur une architecture différente MIPS Compatible telle que Lexra.

En inspectant le dossier squashfs-root, on trouve des fichiers intéressants :

  • usr/etc/init.d/rcS => C'est le script qui s'exécute au démarrage du firmware
  • usr/etc/passwd => C'est le fichier qui contient les informations utilisateur
  • userfs/romfile.cfg => Il y a des identifiants admin:admin

En inspectant le fichier rcS, on trouve du code intéressant :

echo "admin:$1$$iC.dUsGpxNNJGeOm1dFio/:0:0:root:/:/bin/sh" > /usr/etc/passwd
  • Ce code est utilisé pour écrire les informations utilisateur dans le fichier passwd
  • Exécute un serveur web appelé boa server. Boa est un serveur web ancien, principalement utilisé dans les appareils embarqués comme les routeurs dans les années 2000. Cependant, le serveur boa a arrêté son développement en 2005 ! Même si le serveur Boa est mort il y a presque 20 ans, il vit encore aujourd'hui grâce à notre fabricant. Démarrage de Boa

Émulation complète du firmware

Je recommande d'utiliser un OS basé sur Debian pour le processus d'émulation, comme Ubuntu ou Kali. Il existe un autre OS centré sur le hacking de firmware appelé AttifyOS. Dans ce document, j'ai utilisé Kali Linux. Pour commencer le processus d'émulation, voici 2 outils :

  • QEMU => Ne réinventons pas la roue 🙏 🛐
  • FAT- Firmware-analysis-toolkit => Cela fonctionne, vous pouvez lire le code source pour savoir ce qu'il fait.

Persévérez

Voyons comment utiliser FAT pour émuler complètement un firmware. Tout d'abord, nous clonons le dépôt depuis GitHub sur votre machine Kali. Ensuite, nous suivons le processus d'installation. Vous devez aussi modifier le fichier fat.config, sinon cela ne fonctionnera pas.

git clone https://github.com/attify/firmware-analysis-toolkit.git

cd firmware-analysis-toolkit

./setup.sh

vi fat.config # Modify to your sudo password.

Ensuite, nous copions le binaire du firmware (celui téléchargé depuis le fabricant) dans le dossier de FAT sur notre machine Kali et nous l'exécutons.

./fat.py DSL-3782_A1_EU_1.01_07282016.bin

Remarque : Pendant le processus d'installation de FAT, nous pouvons rencontrer des erreurs. Il peut indiquer « no libmagic ». Échec de FAT

Il suffit de lancer

pip unistall python-magic
pip install python-magic

Cela devrait résoudre le problème, puis nous relançons la commande de build. Cela devrait maintenant fonctionner à merveille.

FAT fonctionne bien

Appuyez sur Entrée pour lancer. Le processus d'émulation devrait bien fonctionner : vous pouvez naviguer vers http://192.168.1.1 (sur la machine Kali) pour vérifier si cela fonctionne.

Page principale du routeur

Vous pouvez également vous connecter à la console si vous avez les identifiants. Voici admin:admin.

Connexion à la console

Si vous décidez d'éteindre le firmware émulé, appuyez simplement sur Ctrl+A X. Lorsque vous devez le relancer, ne relancez pas fat.py, car le firmware a déjà été transformé en image. Vous n'avez qu'à exécuter le script qui a déjà été généré.

cd firmadyne/scratch/<Image-ID>
./run.sh

Relancer l'image

Télécharger l’outil