Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2019-1663-Binary-Analysis — Binäranalyse und Ausnutzung von CVE-2019-1663, einem Pufferüberlauf in der Webverwaltung von Cisco-Routern, einschließlich Ursachenanalyse, Exploit-Schritten und ROP-Gadget-Entdeckung. | Kitploit
Tools/GitHubGitHub/wolffcorentin/cve-2019-1663-binary-analysis
Embedded-System-SicherheitSchwachstellenanalyseExploitationReverse EngineeringBinäranalysePapers & ForschungLernen & BildungBinary-Exploitation

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHub
wolffcorentin/cve-2019-1663-binary-analysis

CVE-2019-1663-Binary-Analysis

Binäranalyse und Ausnutzung von CVE-2019-1663, einem Pufferüberlauf in der Webverwaltung von Cisco-Routern, einschließlich Ursachenanalyse, Exploit-Schritten und ROP-Gadget-Entdeckung.

Repository anzeigen
2vor 1 JahrNoch nicht geprüft

Binäranalyse von CVE-2019-1663

Autor: Corentin Wolff


Ursprung der Schwachstelle

Quelle der Schwachstelle

Die Schwachstelle stammt von der Funktion 0x0002BF64, die die strcpy-Funktion missbraucht, was sie anfällig für Pufferüberlauf-Angriffe macht. Zur Klarheit wurde diese Funktion in Login umbenannt. Nachfolgend ein Ausschnitt, der das Problem veranschaulicht:

root@kitploit:~
undefined4 Login(char *param_1, char *param_2, char *param_3, int param_4) { ... }

In diesem Ausschnitt wird die strcpy-Funktion unsachgemäß verwendet, was eine Pufferüberlauf-Schwachstelle verursacht:

root@kitploit:~
if (param_4 == 0) {  
    iVar2 = strncmp(acStack_fa, "enc=", 4);  
    if (iVar2 != 0) {  
        strcpy(acStack_15e, acStack_fa);  
        strcpy(acStack_1c2, param_2);  
        goto LAB_0002c264;  
    }  
}

Benutzername-Identifikation

Dieser Teil des Codes überprüft den Benutzernamen:

root@kitploit:~
if (iVar2 != 0) {  
    syslog(6, "Web management login failed, user=%s\n", param_1);  
}

Der Parameter param_1 wird als Feld für den Benutzernamen identifiziert.

Passwort-Verifikation

Ebenso entspricht param_2 dem Passwort, während param_3 als httpd_user identifiziert wird.

Login-Flags

Die Variable login_flag stellt Verbindungszustände dar:

root@kitploit:~
0 → Login-Fehler
1 → Admin-Login erfolgreich
2 → Admin-Login aufgrund einer bestehenden Sitzung verweigert
3 → Admin-Login erzwingt Abmeldung

Art der Schwachstelle

Pufferüberlauf und strcpy

Die Schwachstelle ist ein Pufferüberlauf, der durch unsachgemäße Verwendung der strcpy-Funktion verursacht wird.

Wie strcpy versagt

Die strcpy-Funktion überprüft nicht die Größe des Quellstrings gegen die Kapazität des Zielpuffers. Dies ermöglicht das Überschreiben benachbarter Speicherbereiche.

Ausnutzungskontext

CVE-2019-1663 nutzt das Fehlen einer Eingabegrößenvalidierung in bestimmten Cisco-Router-Modellen aus.

Schritte der Ausnutzung

root@kitploit:~
a. Keine Längenprüfung: Nicht bereinigte Benutzereingabe wird an strcpy übergeben.
b. Speicherüberlauf: Überschüssige Daten überschreiben kritische Speicherbereiche.
c. Willkürliche Codeausführung: Angreifer injizieren und führen schädlichen Code aus.
d. Voraussetzungen für die Ausnutzung: Zugriff auf den Web-Konfigurationsserver des Routers.
e. Auswirkung: Privilegierter Zugriff, der Netzwerkspionage, Verkehrsumleitung, Malware-Installation oder Hintertüren ermöglicht.

Fernausnutzung der Schwachstelle

  1. Bedingungen für Fernausnutzung Die Ausnutzung erfordert Zugriff auf den Web-Konfigurationsserver des Routers. Wenn der Server nicht im WAN freigegeben ist, ist die Ausnutzung auf LAN-Zugriff beschränkt.
  2. Angriffsverfahren Sobald Zugriff erlangt wurde, fängt der Angreifer eine Anfrage ab und modifiziert sie, indem er eine schädliche Nutzlast anhängt wie:
    root@kitploit:~
    &enc=1&user=cisco&pwd=AAAA...AAAAZZZZ&sel_lang=EN  
    

Dies löst einen Segmentierungsfehler aus. Durch Bestimmen der optimalen Puffergröße können Angreifer schädlichen Code injizieren und ausführen.

Exploit | Gadgets : Ropper

root@kitploit:~
ibc.so.0/ELF/ARM)> disasm_address 0x00034410
Instructions
============
0x00034410: pop {r0, pc}

(libc.so.0/ELF/ARM)> disasm_address 0x00041304
Instructions
============
0x00041304: mov r2, r0

(libc.so.0/ELF/ARM)> search %mov r2, r0%
[INFO] Searching for gadgets: %mov r2, r0%
[INFO] File: libc.so.0
0x00041304: mov r2, r0; mov r0, sp; blx r2;

Bibliografie

  1. MITRE CWE-120: Puffer kopieren ohne Größenprüfung der Eingabe
    https://cwe.mitre.org/data/definitions/120.html

  2. MITRE CWE-787: Schreiben außerhalb der Grenzen
    https://cwe.mitre.org/data/definitions/787.html

  3. OWASP Übersicht über Pufferüberläufe
    https://owasp.org/www-community/vulnerabilities/Buffer_Overflow

  4. „Pufferüberlauf“ auf Microsoft Learn
    https://learn.microsoft.com/en-us/cpp/security/security-best-practices-for-c-cpp

  5. CERT Sichere Codierungsstandards - STR31-C
    https://wiki.sei.cmu.edu/confluence/display/c/STR31-C.+Guarantee+that+storage+for+strings+has+sufficient+space+for+character+data+and+the+null+terminator

  6. Ausnutzen von CVE-2019-1663 - Write-up von Quentin Kaiser
    https://quentinkaiser.be/exploitdev/2019/08/30/exploit-cve-2019-1663

Tool herunterladen