Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2019-17147 | Kitploit
Strumenti/GitHubGitHub/imnot-ye/cve-2019-17147
Sicurezza Sistemi EmbeddedSicurezza IoTAnalisi delle VulnerabilitàExploitReverse EngineeringShellcodeHacking HardwareSicurezza HardwarePaper e RicercaApprendimento e FormazioneAnalisi del FirmwareBinary Exploitation
46 mesi 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
GitHubimnot-ye/cve-2019-17147

CVE-2019-17147

Vedi Repository

CVE-2019-17147: Exploit di TP-Link TL-WR841N

Banner

Panoramica

Questo repository documenta l'analisi ingegneristica inversa completa e lo sfruttamento di CVE-2019-17147, una vulnerabilità critica di esecuzione remota di codice (RCE) nel router TP-Link TL-WR841N (architettura MIPSEL). La vulnerabilità risiede nel demone del server web httpd, dove una validazione impropria degli input consente un Stack Buffer Overflow tramite una funzione personalizzata cstr_strncpy, portando all'esecuzione di codice arbitrario senza autenticazione.

VulnerabilitàCVE-2019-17147
CVSS v3.18.8 (High)
VectorAV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
TipoStack-based Buffer Overflow
Componente/usr/bin/httpd

Infrastruttura e Strumenti

L'ambiente di analisi è stato realizzato utilizzando i seguenti componenti:

  • Hardware: Router TP-Link TL-WR841N.
  • Strumenti Hardware: Programmatore CH341A (Dump della Flash SPI), Convertitore USB-TTL (Console UART), Clip SOIC8.
  • Strumenti Software: flashrom (Dump della memoria), binwalk (Estrazione del firmware), IDA Pro (Analisi statica), GDB-Multiarch (Debug remoto), QEMU (Emulazione MIPSEL).
  • Versione Firmware: TL-WR841N(US)_V14_180319.

Analisi Tecnica

1. Analisi Statica

La vulnerabilità è stata identificata nel binario /usr/bin/httpd. L'analisi statica tramite IDA Pro ha rivelato una funzione personalizzata di copia delle stringhe, cstr_strncpy, utilizzata durante il parsing delle intestazioni HTTP (in particolare l'intestazione Host).

IDA Graph

La funzione cstr_strncpy accetta un parametro copy_len derivato dalla lunghezza della stringa sorgente piuttosto che dalla dimensione del buffer di destinazione. Ciò consente un classico stack buffer overflow quando viene fornita un'intestazione eccessivamente lunga. Inoltre, la funzione http_parser_argStrToList, che gestisce una struttura a lista collegata, è interessata da questo overflow, consentendo il controllo dei puntatori next e prev.

2. Analisi Dinamica

Il debug in fase di esecuzione con gdbserver ha confermato il crash e il controllo del flusso di esecuzione. L'analisi della mappa di memoria (vmmap) ha rivelato una critica mancanza di hardening:

  • Heap: permessi RWX (Read, Write, Execute).
  • ASLR: Limitato/Inefficace per questo binario.
  • NX: Disabilitato.

VMMap

Questa configurazione consente l'esecuzione diretta dello shellcode posizionato nell'Heap, evitando la necessità di complesse catene ROP.

Strategia di Exploit

La catena di exploit utilizza una primitiva Write-What-Where derivata dai puntatori corrotti della lista collegata per ottenere la RCE.

  1. Heap Spraying: Lo shellcode viene iniettato nell'Heap. Grazie alla persistenza dell'heap tra le richieste, questa operazione può essere eseguita in più fasi.
  2. Iniezione a Stadi: Per bypassare le restrizioni dei byte nulli in strcpy, il payload viene inviato in più richieste:
    • Stage 1: Scrivere l'indirizzo dello shellcode in un'area di staging.
    • Stage 2: Scrivere l'indirizzo GOT di destinazione nell'area di staging.
  3. Overwrite del GOT: La voce della funzione atol nella Global Offset Table (GOT) viene sovrascritta con l'indirizzo dello shellcode.
  4. Trigger di Esecuzione: L'exploit forza una chiamata a atol (tramite un'intestazione Content-Length), reindirizzando l'esecuzione allo shellcode iniettato.

Exploit Diagram

Verifica dell'Exploit

Lo script Python finale automatizza con successo l'attacco, generando una shell di root sulla porta 31337.

Root Shell

Mitigazione

La vulnerabilità deriva da pratiche di codifica non sicure nella gestione dei buffer.

  • Correzione del Codice Sorgente: Sostituire l'uso di cstr_strncpy con alternative sicure che impongano rigorosamente i limiti del buffer di destinazione (ad esempio, strncpy con un controllo esplicito dei limiti basato su sizeof(dest)).
  • Hardening del Binario: Abilitare NX (No-Execute) per impedire l'esecuzione di codice sullo stack e sull'heap. Abilitare ASLR completo e PIE (Position Independent Executable) per randomizzare il layout della memoria.

Documentazione Completa

Per una guida dettagliata passo passo sull'intero processo, inclusa l'analisi del codice e la configurazione dell'ambiente, fare riferimento alle guide complete incluse in questo repository:

  • 🇮🇹 Guida Completa (Italiano)
  • 🇬🇧 Full Guide (English)

Autori

  • Angelo Zullo
  • Simone Vitto
  • Vincenzo Cantatore

Disclaimer

Questo progetto ha esclusivamente scopi educativi e di ricerca. Le informazioni fornite sono intese a migliorare la sicurezza dei dispositivi IoT. Gli autori non sono responsabili di qualsiasi uso improprio delle informazioni o del codice contenuto nel presente documento.


Basato su ricerca e analisi originali.

Scarica lo strumento