Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2023-27216 — Der Ansatz eines Neulings beim Firmware-Hacking | Kitploit
Tools/GitHubGitHub/hoangrealer/cve-2023-27216
Embedded-System-SicherheitIoT-SicherheitSchwachstellenanalyseReverse EngineeringDebuggerHardware-HackingLernen & BildungFirmware-AnalyseBinary-Exploitation
GitHubhoangrealer/cve-2023-27216

CVE-2023-27216

Der Ansatz eines Neulings beim Firmware-Hacking

335vor 2 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen

CVE-2023-27216 - DLink Router

Dieses Dokument beschreibt meine persönliche Erfahrung als Neuling im Reverse Engineering von Firmware und deren Ausnutzung. Firmwhere??

Umfang

Zur Demonstration werden wir CVE-2023-27216 analysieren und reproduzieren.

  • CVE-Nummer: CVE-2023-27216
  • Schwachstellenbeschreibung: Ein Problem in D-Link DSL-3782 v.1.03 ermöglicht es entfernten authentifizierten Benutzern, beliebigen Code als root über die Netzwerkeinstellungsseite auszuführen.
  • Gerätemodell: D-Link DSL-3782
  • Firmware-Version: DSL-3782_A1_EU_1.01
  • Offizielle Website des Herstellers: http://www.dlink.com.cn/
  • Firmware-Adresse: https://media.dlink.eu/support/products/dsl/dsl-3782/driver_software/dsl-3782_a1_eu_1.01_07282016.zip

Aufgaben

Um Firmware auszunutzen, sind folgende Schritte erforderlich:

  • Die Firmware beschaffen. Es gibt zwei Wege: entweder direkt aus der Hardware (Kamera, Router, Drucker usw.) extrahieren oder von der Website des Herstellers herunterladen. Dies wird in einem anderen Dokument behandelt.
  • Die Firmware analysieren und Schwachstellen finden.
  • Die Firmware emulieren.
  • gdbserver statisch erstellen, um Debugging zu ermöglichen.

Firmware-Analyse

Normalerweise enthält eine Firmware-Binärdatei einen Bootloader (uBoot), eine Kernel-Datei, einen Kernel-Header für den Bootloader (uImage), ein komprimiertes Dateisystem (meist im SquashFS-Format), eine CRC/MD5-Tabelle (zur Überprüfung der Dateiintegrität) und andere diverse Dateien.

Zunächst einen Weg finden, die Firmware zu analysieren, etwas recherchieren, einige Ressourcen gefunden:

  • Binwalk zur Analyse und Extraktion der Firmware
  • Wie man die Firmware emuliert: https://boschko.ca/qemu-emulating-firmware/ Binwalk check signature

Wichtige Dateien extrahieren

Extrahieren Sie die Firmware mit binwalk: binwalk -Me DSL-3782_A1_EU_1.01_07282016.bin Binwalk extract

Habe den extrahierten Ordner squashfs-root und einige seltsame Dateien erhalten. Extracted files

Bonus: Wenn Sie keinen squashfs-root-Ordner sehen, verwenden Sie unsquashfs auf einer beliebigen .squashfs-Datei, die Sie sehen. Sie sind wie ZIP-Dateien 😅.

Analysieren, wie die Firmware funktioniert

Überprüfen Sie die Architektur und Endianness der Firmware. Dies kann durch Überprüfung einiger aus der Firmware extrahierter Binärdateien erfolgen. Überprüfen Sie die Architektur und Firmware: file <binary> Firmware Architecture

Hier können wir fast bestätigen, dass die Firmware auf MIPS 32-Bit-MSB-Architektur läuft. Der Grund für 'fast' ist, dass einige Firmware auf einer anderen Architektur mit MIPS-kompatibel laufen kann, wie z.B. Lexra.

Überprüfen Sie den Ordner squashfs-root und finden Sie einige interessante Dateien:

  • usr/etc/init.d/rcS => Dies ist das Skript, das beim Hochfahren der Firmware ausgeführt wird
  • usr/etc/passwd => Dies ist die Datei, die die Benutzerinformationen enthält
  • userfs/romfile.cfg => Es gibt eine Anmeldeinformation admin:admin

Überprüfen Sie die Datei rcS und finden Sie interessanten Code:

echo "admin:$1$$iC.dUsGpxNNJGeOm1dFio/:0:0:root:/:/bin/sh" > /usr/etc/passwd
  • Dieser Code wird verwendet, um die Benutzerinformationen in die Datei passwd zu schreiben
  • Es wird ein Webserver namens Boa Server ausgeführt. Boa ist ein uralter Webserver, der hauptsächlich in eingebetteten Geräten wie Routern in den 2000er Jahren verwendet wurde. Allerdings wurde die Entwicklung des Boa-Servers bereits 2005 eingestellt! Obwohl der Boa-Server seit fast 20 Jahren tot ist, lebt er dank unseres Herstellers bis heute weiter. Boa boot

Vollständige System-Firmware-Emulation

Ich empfehle die Verwendung eines Debian-basierten Betriebssystems für den Emulationsprozess, wie Ubuntu oder Kali. Es gibt ein weiteres Betriebssystem, das sich auf Firmware-Hacking konzentriert, genannt AttifyOS. In diesem Dokument habe ich Kali Linux verwendet. Beginnen Sie mit dem Emulationsprozess. Es gibt zwei Tools:

  • QEMU => Erfinden Sie das Rad nicht neu 🙏 🛐
  • FAT - Firmware-analysis-toolkit => Es funktioniert. Sie können den Quellcode lesen, um zu verstehen, was es tut.

Stick with it

Lassen Sie uns durchgehen, wie man FAT verwendet, um eine Firmware vollständig zu emulieren. Zuerst klonen wir das Repository von GitHub auf Ihre Kali-Maschine. Und durchlaufen den Einrichtungsprozess. Sie müssen auch die Datei fat.config ändern, sonst funktioniert es nicht.

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

cd firmware-analysis-toolkit

./setup.sh

vi fat.config # Modify to your sudo password.

Dann kopieren wir die Firmware-Binärdatei (die, die wir vom Hersteller heruntergeladen haben) in den Ordner von FAT auf unserer Kali-Maschine und führen sie aus.

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

Hinweis: Während des Einrichtungsprozesses von FAT können Fehler auftreten. Es kann 'no libmagic' anzeigen. Fat run fail

Führen Sie einfach aus:

pip unistall python-magic
pip install python-magic

Dies sollte Ihr Problem beheben. Dann führen wir den Build-Befehl erneut aus. Es sollte jetzt einwandfrei funktionieren. Fat run nice

Drücken Sie Enter, um es auszuführen. Der Emulationsprozess sollte gut funktionieren. Sie können zu http://192.168.1.1 (auf der Kali-Maschine) navigieren, um zu überprüfen, ob es funktioniert. Router main page

Sie können sich auch an der Konsole anmelden, wenn Sie die Anmeldedaten haben. Hier ist admin:admin. Console login

Wenn Sie die emulierte Firmware ausschalten möchten, drücken Sie einfach Strg+A X. Wenn Sie sie erneut ausführen müssen, führen Sie nicht erneut fat.py aus, da die Firmware bereits in ein Image eingebaut wurde. Sie müssen nur das bereits generierte Skript ausführen.

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

Rerun the image

Tool herunterladen