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
Point-to-Point-Protocol-Daemon-RCE-Vulnerability-CVE-2020-8597- — Universitätsaufgabe, die CVE-2020-8597 dokumentiert, einen Stack-Pufferüberlauf im EAP-Parser von pppd, mit einer Remote-Code-Ausführungs-Exploit-Demonstration unter Verwendung eines pppoe-Servers und Clients. | Kitploit
Tools/GitHubGitHub/dilan-diaz/point-to-point-protocol-daemon-rce-vulnerability-cve-2020-8597-
SchwachstellenanalyseExploitationPenetrationstestsLernen & BildungBinary-ExploitationLabs & Praxis
GitHubdilan-diaz/point-to-point-protocol-daemon-rce-vulnerability-cve-2020-8597-

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

Universitätsaufgabe, die CVE-2020-8597 dokumentiert, einen Stack-Pufferüberlauf im EAP-Parser von pppd, mit einer Remote-Code-Ausführungs-Exploit-Demonstration unter Verwendung eines pppoe-Servers und Clients.

Repository anzeigen
vor 6 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

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

Sri Lanka Institute of Information Technology

                Aufgabe 1
              M. P. D. M. Dias
                 IT19165530
              MLB_WD_Y2S1_13.1                                             
       Point to Point Protocol Daemon RCE    
        Schwachstelle (CVE-2020-8597)






    System- und Netzwerkprogrammierung– IE2012

Inhalt

  1. Einführung
  2. Referenz: Wer die Schwachstelle gefunden hat
  3. Wie sie gefunden wurde
  4. Wann sie gefunden wurde
  5. Welchen Schaden sie verursachen kann
  6. Welche Ausnutzungstechniken gibt es
  7. Welche Exploit-Methode gewählt wurde
  8. Screenshots des Exploits
  9. Fazit
  10. Referenzen

Einführung

Das Point-to-Point-Protokoll (PPP) ist ein Vollduplex-Protokoll, das es ermöglicht, einfache Daten zu kapseln und über Layer-2- oder Data-Link-Infrastrukturen zu verteilen, die von DFÜ-Verbindungen über DSL-Breitband bis hin zu virtuellen privaten Netzwerken (VPNs) mit SSL-Verschlüsselung reichen. Da diese Protokolle keine Punkt-zu-Punkt-Kommunikation ermöglichen, wird PPP auch verwendet, um IP und TCP über zwei direkt verbundene Knoten zu übertragen. Pppd ist ein Daemon, der auf Unix-ähnlichen Betriebssystemen verwendet wird, um den Aufbau von PPP-Sitzungen und die Beendigung von Sitzungen zwischen zwei Knoten zu verwalten.

PPP ist das Protokoll, mit dem Internetverbindungen über DFÜ-Modems, DSL-Verbindungen und verschiedene andere Formen von Punkt-zu-Punkt-Verbindungen über virtuelle private Netzwerke (VPN) wie das Peer-to-Point-Tunneling-Protokoll (PPTP) hergestellt werden. Das pppd-Programm kann außerdem einen Peer authentifizieren, der sich mit dem Netzwerk verbindet, und/oder dem Peer Authentifizierungsdetails mithilfe verschiedener Authentifizierungsprotokolle wie EAP bereitstellen.

Aufgrund eines Fehlers bei der Verarbeitung von Paketen des Extensible Authentication Protocol (EAP) durch den Point-to-Point-Protocol-Daemon (pppd) kann ein nicht authentifizierter entfernter Angreifer einen Stack-Pufferüberlauf verursachen, der eine beliebige Codeausführung auf dem Zielsystem ermöglichen kann. Diese Schwachstelle wird durch einen Fehler bei der Validierung der Eingabegröße ausgelöst, bevor die bereitgestellten Daten in den Speicher kopiert werden. Da die Validierung der Datengröße fehlerhaft ist, können beliebige Daten in den Speicher kopiert werden, was Speicherkorruption auslösen und zu unbeabsichtigter Codeausführung beitragen kann.

Die Schwachstelle liegt in der Logik des EAP-Parsing-Codes, genauer gesagt in den Funktionen eap request) (und eap response) (in eap.c, die von einem Netzwerk-Eingabehandler aufgerufen werden. Diese Funktionen verwenden das erste Byte als Typ und nehmen einen Zeiger und eine Länge als Eingabe. Wenn der Typ EAPT MD5CHAP(4) ist, betrachtet die Funktion einen eingebetteten Bereich mit einer Länge von 1 Byte. Die Logik in diesem Code soll sicherstellen, dass die eingebettete Länge kleiner ist als die Gesamtlänge des Pakets. Nach dieser Überprüfung versucht die Funktion, die bereitgestellten Daten (Hostname) zu kopieren, die sich in einem lokalen Stack-Puffer nach dem eingebetteten Längenfeld befinden. Diese Grenzwertprüfung ist fehlerhaft und ermöglicht das Kopieren von Speicher mit einer beliebigen Datenlänge.

Ein zusätzlicher logischer Fehler führt dazu, dass die Funktion eap input) (nicht prüft, ob EAP während des Line-Control-Protocol-Prozesses (LCP) ausgehandelt wurde. Dadurch kann ein nicht authentifizierter Angreifer ein EAP-Paket senden, selbst wenn ppp die Aushandlung der Authentifizierung verweigert hat, weil EAP nicht unterstützt wird oder weil in der LCP-Phase eine vereinbarte, vorab geteilte Passphrase nicht eingehalten wurde. In eap input muss der unsichere pppd-Code das EAP-Paket dennoch verarbeiten und den Stack-Pufferüberlauf verursachen. Diese unverifizierten Daten unbekannter Größe können verwendet werden, um den Speicher des Zielgeräts zu kompromittieren. pppd läuft außerdem mit hohen Privilegien (System oder Root) und arbeitet mit Kernel-Treibern zusammen.

Das pppd-Programm wird auch mit dem LWIP-Projekt (Lightweight IP) verwendet, um pppd-Funktionen auf sehr kleinen Computern bereitzustellen. Die Standardinstallation von lwIP ist nicht anfällig für diesen Pufferüberlauf. Wenn jedoch der lwIP-Quellcode verwendet und explizit so geändert wird, dass EAP zur Kompilierzeit zugelassen wird, kann das Programm anfällig für einen Pufferüberlauf sein.

CVE-2020-8597 ist ein Pufferüberlauf-Fehler in pppd, der auf einen konzeptionellen Fehler im Paketprozessor des Extensible Authentication Protocol (EAP) zurückzuführen ist. Ein nicht autorisierter entfernter Angreifer, der ein speziell präpariertes EAP-Paket an einen anfälligen PPP-Client oder -Server sendet, kann einen Denial-of-Service-Zustand oder eine beliebige Codeausführung verursachen. Da pppd mit Kernel-Treibern zusammenarbeitet und außerdem hohe Privilegien besitzt, wie etwa System- oder sogar Root-Rechte, kann jede Codeausführung ebenfalls mit denselben Privilegien erfolgen.

Referenz: Wer die Schwachstelle gefunden hat

Entdeckt wurde die kritische Schwachstelle von Ilja Van Sprundel, Sicherheitsforscher bei IOActive. Es handelt sich um eine Stack-Pufferüberlauf-Schwachstelle, die aufgrund eines logischen Fehlers im Parser des Extensible-Authentication-Protocol-Moduls (EAP) von pppd-Anwendungen auftritt – einer Erweiterung, die Unterstützung für zusätzliche Authentifizierungsmethoden in PPP-Verbindungen bietet.

Die Schwachstelle, die als CVE-2020-8597 mit einem CVSS-Score von 9.8 erfasst ist, kann von nicht autorisierten Angreifern ausgenutzt werden, um auf betroffenen Geräten aus der Ferne beliebigen Code auszuführen und die vollständige Kontrolle über sie zu erlangen.

Wie sie gefunden wurde

Diese Schwachstelle wird auf einen Fehler bei der Validierung der Eingabegröße zurückgeführt, bevor die Daten in den Speicher übertragen werden. Da die Validierung der Datengröße fehlerhaft ist, können beliebige Daten in den Speicher kopiert werden und Speicherkorruption auslösen, was wahrscheinlich zur Ausführung von nicht autorisiertem Code beiträgt.

Die Schwachstelle befindet sich in der Logik des EAP-Parsing-Codes, genauer gesagt in den Funktionen eap request) (und eap response) (in eap.c, die vom Netzwerk-Eingabehandler aufgerufen werden.

Es ist falsch anzunehmen, dass pppd sicher ist, wenn EAP nicht zugelassen ist oder wenn EAP nicht von einem entfernten Peer mithilfe eines Passworts oder einer Passphrase initiiert wurde. Ein nicht authentifizierter Angreifer kann nämlich jederzeit ein unaufgefordertes EAP-Paket senden, um einen Pufferüberlauf auszulösen.

Die Schwachstelle wurde im Daemon des Point-to-Point-Protokolls (PPP), kurz pppd, identifiziert. PPP ist ein Layer-2-Protokoll, das zum Aufbau von Verbindungen über DFÜ-Modems, DSL-Verbindungen und viele andere physische Netzwerke, einschließlich mobiler Netzwerke, verwendet wird. PPP wurde in weitere Protokolle integriert und erweitert, wie etwa das Point-to-Point Tunneling Protocol (PPTP), das in virtuellen privaten Netzwerken (VPNs) zur Bereitstellung verschlüsselter Verbindungen verwendet wird.

In diesem Zusammenhang arbeitete das SEI-CERT-Kooperationsteam mit dem Sicherheitsanalysten Ilja Van Sprundel (IOActive), der diesen Fehler entdeckte, und dem Softwareentwickler Paul Mackerras (OZlabs), der den Quellcode verwaltet, zusammen, um das Problem zu untersuchen und einen Workaround zu finden. Bei dem Problem handelte es sich um einen Pufferüberlauf im pppd-Quellcode, der auf einen grundlegenden Fehler im booleschen Ausdruck und in der Umsetzung der daraus resultierenden Bedingungsanweisungen zurückzuführen war. Die folgende Anweisung kann dazu verleitet werden, Eingaben unbekannter Länge zuzulassen und sie in einen Stack-Puffer zu kopieren. Dies wird allgemein als Frame-Überlauf oder Stack-Pufferüberlauf bezeichnet.

Tool herunterladen