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

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Point-to-Point-Protocol-Daemon-RCE-Vulnerability-CVE-2020-8597- — Assegnazione universitaria che documenta CVE-2020-8597, un buffer overflow dello stack nel parser EAP di pppd, con dimostrazione di exploit di esecuzione remota di codice utilizzando una configurazione pppoe-server e client. | Kitploit
Strumenti/GitHubGitHub/dilan-diaz/point-to-point-protocol-daemon-rce-vulnerability-cve-2020-8597-
Analisi delle VulnerabilitàExploitPenetration TestingApprendimento e FormazioneBinary ExploitationLab e Pratica
GitHubdilan-diaz/point-to-point-protocol-daemon-rce-vulnerability-cve-2020-8597-

Point-to-Point-Protocol-Daemon-RCE-Vulnerability-CVE-2020-8597-

Assegnazione universitaria che documenta CVE-2020-8597, un buffer overflow dello stack nel parser EAP di pppd, con dimostrazione di exploit di esecuzione remota di codice utilizzando una configurazione pppoe-server e client.

Vedi Repository
6 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

Point-to-Point-Protocol-Daemon-RCE-Vulnerability-CVE-2020-8597-

Sri Lanka Institute of Information Technology

                Compito 1
              M. P. D. M. Dias
                 IT19165530
              MLB_WD_Y2S1_13.1                                             
       Point to Point Protocol Daemon RCE    
        Vulnerabilità (CVE-2020-8597)






    Programmazione di Sistemi e Reti – IE2012

Contenuto

  1. Introduzione
  2. Riferimenti su chi ha trovato la vulnerabilità
  3. Come è stata trovata
  4. Quando è stata trovata
  5. Quali danni può causare
  6. Quali sono le tecniche di sfruttamento
  7. Quale metodo di exploit hai scelto
  8. Schermate dell'exploit
  9. Conclusione
  10. Riferimenti

Introduzione

Il Point-to-Point Protocol (PPP) è un protocollo full-duplex che consente di incapsulare e distribuire dati semplici attraverso infrastrutture di Livello 2 o data-link che spaziano dalla connettività dial-up alla banda larga DSL, fino alle reti private virtuali (VPN) che incorporano la crittografia SSL. Poiché questi protocolli non consentono comunicazioni punto-punto, PPP viene utilizzato anche per instradare IP e TCP su due nodi direttamente connessi. Pppd è un demone utilizzato nei sistemi operativi Unix-like per gestire l'instaurazione di sessioni PPP e la terminazione delle sessioni tra due nodi.

PPP è il protocollo utilizzato per creare connessioni Internet tramite modem dial-up, connessioni DSL e diverse altre forme di connessioni punto-a-punto attraverso reti private virtuali (VPN), come il Peer to Point Tunneling Protocol (PPTP). Il programma pppd può anche autenticare un peer che si connette alla rete e/o fornire al peer i dettagli di autenticazione utilizzando vari protocolli di autenticazione come EAP.

A causa di un difetto nella gestione dei pacchetti Extensible Authentication Protocol (EAP) da parte del Point-to-Point Protocol Daemon (pppd), un attaccante remoto non autenticato può causare un overflow del buffer di stack che può consentire l'esecuzione arbitraria di codice sul sistema target. Questa debolezza è innescata da un errore nella validazione della dimensione dell'input prima di copiare i dati forniti in memoria. Poiché la validazione della dimensione dei dati è errata, dati arbitrari possono essere copiati in memoria, il che può innescare la fuga di file e contribuire a un'esecuzione di codice non intenzionale.

La debolezza risiede nella logica del codice di parsing EAP, in particolare nelle funzioni eap request() e eap response() in eap.c, chiamate da un gestore di input di rete. Queste funzioni, utilizzando il primo byte come tipo, accettano un puntatore e una lunghezza come input. Se il tipo è EAPT MD5CHAP(4), viene esaminata un'area incorporata di lunghezza 1 byte. La logica di questo codice è intesa a garantire che la durata incorporata sia inferiore alla lunghezza totale del pacchetto. Dopo questa verifica, tenta di copiare i dati forniti (hostname), che si trovano in un buffer locale dello stack dopo il campo di lunghezza incorporato. Questo controllo dei limiti non è corretto e consente la copia in memoria con una lunghezza arbitraria dei dati.

Un ulteriore errore logico fa sì che la funzione eap input() non verifichi se EAP è stato risolto durante il processo del Line Control Protocol (LCP). Ciò consente a un attaccante non autenticato di inviare un pacchetto EAP anche se ppp ha rifiutato di negoziare l'autenticazione a causa della mancanza di supporto per EAP o della non conformità con una passphrase pre-condivisa concordata nella fase LCP. In eap input, il codice pppd insicuro deve comunque elaborare il pacchetto EAP e causare l'overflow del buffer di stack. Questi dati non verificati e di dimensione sconosciuta possono essere utilizzati per compromettere la memoria del dispositivo target. Inoltre, pppd viene eseguito con privilegi elevati (system o root) e opera in tandem con i driver del kernel.

Il programma pppd è utilizzato anche con il progetto LWIP (lightweight IP) per fornire funzionalità pppd a computer di piccole dimensioni. L'installazione predefinita di lwIP non è suscettibile a questo overflow del buffer. Tuttavia, se si utilizza il codice sorgente di lwIP e lo si modifica esplicitamente per consentire EAP in fase di compilazione, il programma può essere suscettibile a un overflow del buffer.

CVE-2020-8597 è un bug di overflow del buffer in pppd dovuto a un difetto concettuale nel processore di pacchetti Extensible Authentication Protocol (EAP). Un attaccante remoto non autorizzato che invia un pacchetto EAP appositamente predisposto a un client o server PPP vulnerabile può causare una condizione di denial of service o un'esecuzione arbitraria di codice. Poiché pppd opera in tandem con i driver del kernel e dispone anche di privilegi elevati, come device o addirittura core, qualsiasi esecuzione di codice può essere eseguita con gli stessi privilegi.

Riferimenti su chi ha trovato la vulnerabilità

Scoperto dal ricercatore di sicurezza di IOActive Ilja Van Sprundel, il problema cruciale è un difetto di overflow del buffer di stack che si verifica a causa di un errore logico nel parser del modulo Extensible Authentication Protocol (EAP) delle applicazioni pppd, un'estensione che offre supporto per ulteriori metodi di autenticazione nelle connessioni PPP.

La debolezza, monitorata come CVE-2020-8597 con punteggio CVSS 9.8, può essere sfruttata da attaccanti non autorizzati per eseguire remotamente codice arbitrario sui dispositivi interessati e ottenere il controllo completo di essi.

Come è stata trovata

Questa debolezza è attribuita a un errore nella validazione della dimensione dell'input prima di trasferire i dati in memoria. Poiché la validazione della dimensione dei dati è errata, dati casuali possono essere copiati in memoria e possono innescare la frammentazione del database, contribuendo probabilmente all'esecuzione di codice non autorizzato.

La vulnerabilità si trova nella logica del codice di parsing EAP, in particolare nelle funzioni eap request() e eap response() in eap.c, che vengono chiamate dal gestore di input di rete.

È sbagliato concludere che pppd non sia insicuro se EAP non è consentito o se EAP non è stato avviato da un peer remoto tramite password o passphrase. Questo perché un intruso autenticato potrebbe essere sempre in grado di inviare un pacchetto EAP non richiesto per indurre un overflow del buffer.

La vulnerabilità è stata identificata nel daemon del Point-to-Point Protocol (PPP), o pppd. PPP è un protocollo di Livello 2 utilizzato per stabilire connessioni tramite modem dial-up, connessioni DSL e molte altre reti fisiche, incluse le reti mobili. PPP è stato incluso ed esteso per includere protocolli aggiuntivi, come il Point-to-Point Tunneling Protocol (PPTP), utilizzato nelle reti private virtuali (VPN) per fornire connessioni crittografate.

In questa situazione, il team di collaborazione SEI CERT ha collaborato con l'analista di sicurezza Ilja Van Sprundel (IOActive), che ha trovato questo difetto, e con lo sviluppatore software Paul Mackerras (OZlabs), che gestisce il codice sorgente, per esaminare facilmente il problema e trovare una soluzione. Il problema riguardava un overflow del buffer nel codice sorgente di pppd, dovuto a un overflow del buffer di base nell'espressione booleana e nell'implementazione delle istruzioni condizionali che ne derivavano. L'istruzione seguente può essere aggirata per consentire un input di lunghezza sconosciuta e copiarlo in un buffer dello stack. Questo è comunemente definito frame overload o overflow del buffer di stack.

if (vallen >= len + sizeof(rhostname)) { // Copy to buffer rhostname

La correzione per la vulnerabilità è stata semplicemente cambiare l'istruzione precedente nella logica booleana seguente.

if (len-vallen >= sizeof(rhostname)) { // Copy to buffer rhostname
Scarica lo strumento