Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2023-27216 — Approccio da neofita all'hacking del firmware | Kitploit
Strumenti/GitHubGitHub/hoangrealer/cve-2023-27216
Sicurezza Sistemi EmbeddedSicurezza IoTAnalisi delle VulnerabilitàReverse EngineeringDebuggerHacking HardwareApprendimento e FormazioneAnalisi del FirmwareBinary Exploitation
GitHubhoangrealer/cve-2023-27216

CVE-2023-27216

Approccio da neofita all'hacking del firmware

3352 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

CVE-2023-27216 - Router DLink

Questo documento è la mia esperienza personale in qualità di principiante nel reversing e nello sfruttamento di firmware. Firmwhere??

Scopo

A scopo dimostrativo, analizzeremo e riprodurremo CVE-2023-27216.

  • Numero CVE: CVE-2023-27216
  • Descrizione della vulnerabilità: Un problema trovato in D-Link DSL-3782 v.1.03 consente a utenti autenticati remoti di eseguire codice arbitrario - come root tramite la pagina delle impostazioni di rete.
  • Modello del dispositivo: D-Link DSL-3782
  • Versione del firmware: DSL-3782_A1_EU_1.01
  • Sito web ufficiale del produttore: http://www.dlink.com.cn/
  • Indirizzo del firmware: https://media.dlink.eu/support/products/dsl/dsl-3782/driver_software/dsl-3782_a1_eu_1.01_07282016.zip

Attività

Per sfruttare qualsiasi firmware, sono necessari i seguenti passaggi:

  • Ottenere i firmware. Ci sono 2 modi: estrarli direttamente dall'hardware (fotocamera, router, stampante, ecc.) oppure scaricarli dal sito web del produttore. Questo sarà discusso in un altro documento.
  • Analizzare il firmware e trovare eventuali vulnerabilità
  • Emulare il firmware.
  • Compilare staticamente gdbserver per il debug.

Analisi del firmware

Di solito un file binario del firmware contiene un bootloader (uBoot), un file del kernel, l'header del kernel per il bootloader (uImage), un file system compresso (generalmente in formato SquashFS), una tabella CRC/MD5 (per verificare l'integrità dei file) e altri file vari.

Per prima cosa, individua un metodo per analizzare il firmware; dopo qualche ricerca, ecco alcune risorse:

  • Binwalk per analizzare ed estrarre il firmware
  • Come emulare: https://boschko.ca/qemu-emulating-firmware/ Verifica della firma con Binwalk

Estrarre i file importanti

Estrai il firmware usando binwalk: binwalk -Me DSL-3782_A1_EU_1.01_07282016.bin Estrazione con Binwalk

Ho ottenuto la cartella squashfs-root estratta e alcuni file strani. File estratti

Bonus: Se non vedi la cartella squashfs-root, puoi usare unsquashfs su qualsiasi file .squashfs che trovi. Sono come file zip 😅.

Analizzare come funziona il firmware

Controlla l'architettura e l'endianness del firmware. Puoi farlo esaminando alcuni binari estratti dal firmware. Controlla l'architettura e il firmware: file <binary> Architettura del firmware

Qui possiamo quasi confermare che il firmware gira su un'architettura MIPS 32-bit MSB. Il motivo del "quasi" è che alcuni firmware potrebbero girare su un'architettura diversa ma MIPS Compatible, come Lexra.

Controllando la cartella squashfs-root ho trovato alcuni file interessanti:

  • usr/etc/init.d/rcS => Questo è lo script che viene eseguito all'avvio del firmware
  • usr/etc/passwd => Questo è il file che contiene le informazioni degli utenti
  • userfs/romfile.cfg => Ci sono delle credenziali admin:admin

Controllando il file rcS ho trovato del codice interessante:

echo "admin:$1$$iC.dUsGpxNNJGeOm1dFio/:0:0:root:/:/bin/sh" > /usr/etc/passwd
  • Questo codice viene usato per scrivere le informazioni utente nel file passwd
  • Viene eseguito un server web chiamato boa server. Boa è un server web antico, usato principalmente in dispositivi embedded come i router negli anni 2000. Tuttavia, lo sviluppo di boa server si è fermato nel 2005! Anche se Boa server è morto quasi 20 anni fa, vive ancora oggi grazie al nostro produttore. Avvio di Boa

Emulazione completa del firmware

Consiglio di usare un OS basato su Debian per il processo di emulazione, come Ubuntu o Kali. C'è anche un altro OS incentrato sull'hacking di firmware chiamato AttifyOS. In questo documento ho usato Kali Linux. Per iniziare il processo di emulazione, ci sono 2 strumenti:

  • QEMU => Non reinventare la ruota 🙏 🛐
  • FAT- Firmware-analysis-toolkit => Funziona, puoi leggere il codice sorgente per sapere cosa fa.

Tieni duro

Vediamo come usare FAT per emulare completamente un firmware. Per prima cosa, cloniamo la repo da GitHub sulla tua macchina Kali. Poi seguiamo la procedura di setup. Devi anche modificare il file fat.config, altrimenti non funzionerà.

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

cd firmware-analysis-toolkit

./setup.sh

vi fat.config # Modify to your sudo password.

Poi copiamo il binario del firmware (quello scaricato dal produttore) nella cartella di FAT sulla nostra macchina Kali e lo eseguiamo.

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

Nota: Durante il processo di setup di FAT si potrebbero incontrare errori. Potrebbe dire che manca libmagic. Esecuzione FAT fallita

Basta semplicemente eseguire

pip unistall python-magic
pip install python-magic

Questo dovrebbe risolvere il problema; poi eseguiamo di nuovo il comando di build. Ora dovrebbe funzionare a meraviglia.

FAT eseguito correttamente

Premi Enter per eseguire. Il processo di emulazione dovrebbe funzionare correttamente: puoi visitare http://192.168.1.1 (sulla macchina Kali) per verificare se funziona o no.

Pagina principale del router

Puoi anche accedere alla console se hai le credenziali. Ecco admin:admin.

Accesso alla console

Se decidi di spegnere il firmware emulato, premi semplicemente Ctrl+A X. Quando devi eseguirlo di nuovo, non rilanciare fat.py perché il firmware è già stato convertito in un'immagine. Devi solo eseguire lo script che è già stato generato.

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

Riesecuzione dell'immagine

Debugger

Compila gdbserver per il debug. Ci sono molti modi per compilare gdbserver. Puoi anche scaricare un server compilato staticamente. C'è una repo che contiene alcune versioni statiche. Tuttavia, preferisco compilare gdbserver da solo perché quelle nella repo GitHub sono piuttosto vecchie e potrebbero avere problemi di compatibilità.

Scarica lo strumento