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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2024-58239 — استغلال ثغرة في نظام TLS لنواة لينكس لـ CVE-2024-58239، لتحقيق تصعيد الصلاحيات عبر ثغرة تحرير مزدوج في tcp_rcv_state_process. يتضمن بنية عميل-خادم ونصوص اختبار محلية. | Kitploit
أدوات/GitHubGitHub/khoatran107/cve-2024-58239
تحليل الثغرات الأمنيةالاستغلالCTFالتعلم والتعليماستغلال الملفات الثنائية
GitHubkhoatran107/cve-2024-58239

cve-2024-58239

استغلال ثغرة في نظام TLS لنواة لينكس لـ CVE-2024-58239، لتحقيق تصعيد الصلاحيات عبر ثغرة تحرير مزدوج في tcp_rcv_state_process. يتضمن بنية عميل-خادم ونصوص اختبار محلية.

عرض المستودع
42منذ 10 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2024-58239 استغلال تخفيف

هذا أول استغلال لي ليوم واحد.

التصحيح: tls: stop recv() if initial process_rx_list gave us non-DATA

رأيت exp407 في جدول kernelCTF وحاولت إعادة إنتاج الاستغلال.

تمكنت من تشغيل الاستغلال في بيئة kernelCTF والحصول على العلم: image

سأكتب شرحًا مفصلاً لهذا لاحقًا.

سجل الاستغلال طويل نوعًا ما، بسبب تحذير نواة (kernel WARNING) في المنتصف. ومع ذلك، التحذير ليس خطأ ولا يقتل استغلالي ;) image

هيكل المجلد

أزلت العديد من الملفات الثقيلة من هذا المجلد.

  • ./rootfs_v3.img
  • ./ramdisk_v1.img
  • ./releases/mitigation-v4-6.6/bzImage
  • ./releases/mitigation-v4-6.6/vmlinux
  • يمكنك الحصول على الملفات الثلاثة الأولى عن طريق تشغيل original local_runner.sh

    أما بالنسبة للملف الرابع والكود المصدري، فيمكنك الاتصال بخادم kernelCTF للحصول على روابط للتحميل.

    ولكن لتسهيل الأمر لديك، إليك معلومات مثيل mitigation-v4-6.6:

    root@kitploit:~
    Kernel image (bzImage): https://storage.googleapis.com/kernelctf-build/releases/mitigation-v4-6.6/bzImage
    Kernel image (vmlinux): https://storage.googleapis.com/kernelctf-build/releases/mitigation-v4-6.6/vmlinux.gz
    Kernel config: https://storage.googleapis.com/kernelctf-build/releases/mitigation-v4-6.6/.config
      -> derived from COS config: https://storage.googleapis.com/kernelctf-build/releases/mitigation-v4-6.6/lakitu_defconfig
    Source code info: https://storage.googleapis.com/kernelctf-build/releases/mitigation-v4-6.6/COMMIT_INFO
    

    أيضًا، الأوامر لتحميل ملفات .img:

    root@kitploit:~
    wget https://storage.googleapis.com/kernelctf-build/files/rootfs_v3.img.gz
    gzip -d rootfs_v3.img.gz
    wget https://storage.googleapis.com/kernelctf-build/files/ramdisk_v1.img
    

    بناء الاستغلال

    root@kitploit:~
    cd ./exploit/mitigation-v4-6.6/
    make
    

    تشغيل الاستغلال

    ينقسم هذا الاستغلال إلى جزئين:

    • الخادم الذي يتم تشغيله على VPS أولاً.
    • العميل الذي يتم تشغيله على الجهاز الهدف لاحقًا.

    الخادم:

    root@kitploit:~
    ./server --port <port>
    

    العميل:

    root@kitploit:~
    ./client --ip <server_ip> --port <port>
    

    الاختبار محليًا

    كتبت سكربتين لاختبار الاستغلال محليًا:

    test.py

    هذا السكربت يبدأ تشغيل الخادم في الخلفية، ثم يشغل العميل في جهاز qemu الافتراضي.

    الإعداد

    أولاً، اذهب إلى exploit/mitigation-v4-6.6، وابدأ خادم http على المنفذ 3000، لتحميل الاستغلال إلى جهاز qemu الافتراضي لاحقًا

    root@kitploit:~
    cd exploit/mitigation-v4-6.6
    python3 -m http.server 3000
    

    الاستخدام

    ثم، في طرفية أخرى، ابدأ السكربت:

    root@kitploit:~
    python3 test.py <your_ip> <port>
    
    • <your_ip> هو عنوان IP الخاص ببطاقة الإنترنت الخاصة بك. بالنسبة لي، أقوم بتشغيل كل شيء في WSL، وأشغل ip a، وأحصل على عنوان IP الخاص بواجهة eth0، 172.30.248.93
    root@kitploit:~
    ➜  CVE-2024-58239 git:(main) ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet 10.255.255.254/32 brd 10.255.255.254 scope global lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:15:5d:22:a0:d1 brd ff:ff:ff:ff:ff:ff
        inet 172.30.248.93/20 brd 172.30.255.255 scope global eth0
           valid_lft forever preferred_lft forever
        inet6 fe80::215:5dff:fe22:a0d1/64 scope link
           valid_lft forever preferred_lft forever
    
    • <port> هو أي منفذ غير مستخدم على جهازك المحلي. إنه لاتصال TLS بين العميل والخادم.

    calc_AC_rate.py

    هذا السكربت يشغل الاستغلال عددًا من المرات ويقيس معدل نجاحه.

    الإعداد

    كما في استخدام test.py، اذهب إلى exploit/mitigation-v4-6.6، وابدأ خادم http على المنفذ 3000، لتحميل الاستغلال إلى جهاز qemu الافتراضي لاحقًا

    root@kitploit:~
    cd exploit/mitigation-v4-6.6
    python3 -m http.server 3000
    

    الاستخدام

    root@kitploit:~
    python3 calc_AC_rate.py <your_ip> <port> <number_of_time_to_run>
    

    على سبيل المثال، في WSL الخاص بي، أشغله كـ python3 calc_AC_rate.py 172.30.248.93 1118 100.

    معدل النجاح

    ما زلت أعمل على معدل النجاح، حيث أنه غير مستقر نوعًا ما الآن.

    شغلت calc_AC_rate.py لاختبار الاستغلال 100 مرة، وكانت النتيجة 50/100.

    بالنسبة للمحاولات الفاشلة، فهي بسبب ظهور common_interrupt في المنتصف، مما يؤدي إلى تشغيل اكتشاف التحرير المزدوج الساذج (naive double free detection) في slab النواة، كما هو موضح في هذا التتبع الخلفي.

    سأجد طريقة لتعطيله.

    root@kitploit:~
    [    4.050330]  ? die+0x32/0x80
    [    4.050809]  ? do_trap+0xd6/0x100
    [    4.051365]  ? __slab_free+0x16c/0x380
    [    4.052198]  ? do_error_trap+0x6a/0x90
    [    4.052767]  ? __slab_free+0x16c/0x380
    [    4.053350]  ? exc_invalid_op+0x4c/0x60
    [    4.053916]  ? __slab_free+0x16c/0x380
    [    4.055031]  ? asm_exc_invalid_op+0x16/0x20
    [    4.055675]  ? tcp_rcv_state_process+0x791/0xef0
    [    4.056527]  ? __slab_free+0x16c/0x380
    [    4.057097]  ? lock_timer_base+0x61/0x80
    [    4.057795]  ? tcp_get_metrics+0x142/0x380
    [    4.058560]  ? tcp_rcv_state_process+0x791/0xef0
    [    4.059265]  kmem_cache_free+0x599/0x5e0
    [    4.059915]  tcp_rcv_state_process+0x791/0xef0
    [    4.060918]  ? security_sock_rcv_skb+0x31/0x50
    [    4.061857]  ? sk_filter_trim_cap+0x11a/0x290
    [    4.062558]  tcp_v4_do_rcv+0xcd/0x280
    [    4.063281]  tcp_v4_rcv+0xf81/0x1010
    [    4.063832]  ? raw_local_deliver+0xcd/0x250
    [    4.064668]  ip_protocol_deliver_rcu+0x32/0x320
    [    4.065355]  ip_local_deliver_finish+0x7a/0xa0
    [    4.066455]  ip_sublist_rcv_finish+0x7e/0x90
    [    4.067231]  ip_sublist_rcv+0x1e1/0x220
    [    4.067919]  ? __netif_receive_skb_core.constprop.0+0xbf/0x1080
    [    4.068822]  ip_list_rcv+0x139/0x170
    [    4.069362]  __netif_receive_skb_list_core+0x29d/0x2c0
    [    4.070173]  ? __pfx_csum_block_add_ext+0x10/0x10
    [    4.071054]  netif_receive_skb_list_internal+0x1e1/0x310
    [    4.072068]  napi_complete_done+0x6e/0x1a0
    [    4.072752]  virtnet_poll+0x40d/0x5a0
    [    4.073313]  __napi_poll+0x28/0x1c0
    [    4.073854]  net_rx_action+0x14c/0x2d0
    [    4.074622]  ? vp_vring_interrupt+0x73/0x90
    [    4.075746]  __do_softirq+0xf6/0x30f
    [    4.076379]  __irq_exit_rcu+0x79/0xc0
    [    4.077356]  common_interrupt+0xb9/0xd0
    
    تنزيل الأداة