Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
synipopt — IPv4 SYN مع خيارات IP، هدف مختبري واحد لكل تشغيل، لأبحاث CVE-2026-98432. محلّل إزاحة الترويسة، واختبارات الانحدار، وتحليل بعدي لمستغِل تلقائي معطّل. | Kitploit
أدوات/GitHubGitHub/raahilmw/synipopt
أدوات دفاعيةالتقاط وتحليل الحزمتحليل الثغرات الأمنيةالاستغلالالاختبار العشوائيأمن الشبكاتالأوراق والأبحاث
GitHubraahilmw/synipopt

synipopt

IPv4 SYN مع خيارات IP، هدف مختبري واحد لكل تشغيل، لأبحاث CVE-2026-98432. محلّل إزاحة الترويسة، واختبارات الانحدار، وتحليل بعدي لمستغِل تلقائي معطّل.

عرض المستودع
2منذ 4 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

synipopt

أداة فحص أحادي الهدف لثغرة CVE-2026-98432، وهي ثغرة use-after-free في بروتوكول IPv4 TCP في نواة لينكس تم إصلاحها في أكتوبر 2026.

تبني حزمة SYN من نوع IPv4 تحمل خيارات IP (24 بايت NOP افتراضيًا، مما يرفع IHL إلى 11)، وترسلها إلى مضيف واحد، وتقرأ الرد عبر إزاحة الترويسة بدلًا من مطابقة الأنماط. تعمل منطقية الحزم أيضًا دون اتصال: التشغيل التجريبي يطبع الحزمة المصممة ويعيد تحليلها، ومحلل الست عشري يحلل حركة المرور الملتقطة، ومجموعة الاختبارات لا تحتاج إلى صلاحيات الجذر ولا إلى شبكة.

ما ليست هذه الأداة

لا توجد معالجة لقوائم الأهداف، ولا تكامل مع Shodan، ولا وضع دفعي. عنوان واحد لكل تشغيل، وترفض واجهة سطر الأوامر أي شيء خارج نطاقات المختبر ما لم تمرر --allow-public. تفترض الأداة أنك تملك الهدف أو لديك إذن كتابي لاختباره.

التثبيت

python3 -m pip install -e ".[test]"

Python 3.9 أو أحدث. المكتبة القياسية فقط.

البدء السريع

تشغيل تجريبي، دون صلاحيات، ودون إرسال أي حزمة:

synipopt --dry-run --target 192.0.2.10

تحليل الحزمة من سجل السكربت الأصلي، تلك التي أبلغ عنها كـ SYN-ACK:

synipopt --analyze-hex "$(cat docs/fixtures/original-log-packet.hex)"

فحص جهاز افتراضي في المختبر ومقارنة حزم SYN الحاملة للخيارات مع حزم SYN العادية:

sudo synipopt --target 192.168.56.101 --dport 443 --retries 3 --compare --log probe.jsonl

الحزمة

التصميم الافتراضي، 64 بايت على الشبكة:

  • ترويسة IP: 44 بايت (IHL 11)، 24 بايت من حشو 0x01 NOP
  • ترويسة TCP: 20 بايت، علم SYN، المجموع الاختباري عبر الترويسة الزائفة IPv4
  • حقل الطول الإجمالي: 64

حزمة SYN التي تحمل خيارات هي ما يضع ireq->ireq_opt على مقبس الطلب. تُجمّع النواة كتلة الخيارات، والحشو المكوّن من NOP خالص يُجمّع إلى كتلة فارغة، لذا يعود SYN-ACK للتصميم الافتراضي دون خيارات IP. أما الخيارات التي تحمل حمولة، مثل record route، فتُعاد كما هي. قيس ذلك أثناء التطوير مقابل مقبس في وضع الاستماع:

خيارات SYNترويسة IP في SYN-ACKالخيارات المعادة
24 بايت NOP20 بايت (IHL 5)لا شيء
Record Route، 12 بايت32 بايت (IHL 8)12 بايت
لا شيء20 بايت (IHL 5)لا شيء

كلا الأمرين مهمان للعمل المختبري: طول ترويسة الرد يخبرك ما إذا كانت الحزمة احتفظت بكتلة الخيارات، والمحلل الصحيح يبدأ ترويسة TCP عند IHL * 4، وليس عند الإزاحة 20.

ما أخطأ فيه السكربت الأصلي

السكربت المتداول الذي يقف خلف هذا المستودع (cve_2026_98432_auto.zip) شحن سجل تشغيله الخاص. كل SYN-ACK "ناجح" في ذلك السجل يحمل reply_sport=257 وtcp_seq=16843009. تلك هي بايتات حشو NOP: 0x0101 هو 257 و0x01010101 هو 16843009. مسح المحلل بحثًا عن بتات الأعلام في أي مكان في الحزمة وهبط عند الإزاحة 55، داخل حشو الخيارات. التحليل الصحيح لتلك الحزمة ذات 84 بايت يجد IHL 5، والبروتوكول TCP، ومقطع TCP بايت أعلامه 0x00، لا SYN ولا ACK.

الحمولة هي حزمة SYN المصممة من السكربت نفسه (0x4b عند الإزاحة 20). الترويسة الخارجية تنتمي إلى النواة: لم يضبط السكربت IP_HDRINCL، فبنى لينكس ترويسة IPv4 الخاصة به وأخذ الحزمة المصممة كحمولة. لم يُرسل أي شيء بناه كحزمة قط. تراكم فشلان: الحزمة لم تغادر كما صُممت، والمحلل قرأ بايتات الحشو كأنها الرد.

كانت مرحلة dork خاملة دون مفتاح. كانت تقرأ --shodan-key أو SHODAN_KEY؛ ومع غياب كليهما، كانت تكتب 192.168.56.101 (القيمة الافتراضية لـ VirtualBox host-only) إلى targets.txt وتستمر. ومع وجود مفتاح كانت ستستعلم من Shodan عن مضيفين عامين وتطلق النار عليهم، وهو ما لا تحتاجه أي أداة مختبرية والذي يؤدي إلى إزالة المستودعات.

يحتفظ synipopt بفكرة الحزمة الواحدة على الشبكة، ويزيل مرحلة الاستهداف، ويستبدل المحلل الاستدلالي بتحليل إزاحة الترويسة، ويحوّل قيم السجل القديمة إلى اختبار انحدار في tests/test_packet.py.

حقائق CVE

CVE-2026-98432، شبكات IPv4 في نواة لينكس، use-after-free، CVSS 3.1 بنتيجة 9.8 من Linux CNA. تصنفها Red Hat كحرجة (RHSB-2026-016) وتدرج RHEL 8 و9 و10 وOpenShift ضمن المنتجات المتأثرة.

السباق، كما هو موصوف في commit الإصلاح: ينقل tcp_v4_syn_recv_sock() قيمة ireq->ireq_opt إلى socket الابن (newinet->inet_opt) دون نسخ. يمكن لوحدة معالجة مركزية أخرى معالجة SYN معاد إرساله لنفس request socket وإرسال SYN-ACK من tcp_check_req(). يقرأ tcp_v4_send_synack() وinet_csk_route_req() قيمة ireq->ireq_opt تحت rcu_read_lock() فقط، ثم يقرأ ip_build_and_send_pkt() وip_options_build() قيمة opt->optlen مرتين. ولأن request sockets تُعالَج دون قفل المستمع (commit 079096f103fa)، يمكن تحرير الابن بينما لا يزال SYN-ACK قيد البناء. تفتقر child sockets إلى SOCK_RCU_FREE، وكان inet_sock_destruct() يحرّر inet_opt باستخدام kfree() عادي، لذا كان بإمكان ip_options_build() قراءة ذاكرة محرَّرة.

الإصلاح في mainline هو commit e3f33b0a1d89d738e2b913dab519226eaf76e15b، "ipv4: free inet_opt and ireq_opt after an RCU grace period" (Eric Dumazet، دُمج في 2026-10-05). يستبدل kfree() بـ kfree_rcu() في inet_sock_destruct() وtcp_v4_reqsk_destructor(). ويشير نفس commit إلى مسار ثانٍ عبر ترحيل request socket (net.ipv4.tcp_migrate_req=1 أو برنامج BPF reuseport)، حيث يشارك inet_reqsk_clone() قيمة ireq_opt بين request socket القديم ونسخته.

التخفيف المؤقت من Red Hat يُسقط حزم TCP IPv4 الواردة التي تحمل خيارات IP:

table inet cve_2026_98432 {
    chain input {
        type filter hook input priority -310; policy accept;
        ip protocol tcp ip hdrlength > 5 counter drop
    }
}

يختبر --compare هذا الفلتر تحديدًا: تبقى حزم SYN الحاملة للخيارات دون رد بينما تتلقى حزم SYN العادية ردًا.

المصادر:

  • https://www.cve.org/CVERecord?id=CVE-2026-98432
  • https://git.kernel.org/linus/e3f33b0a1d89d738e2b913dab519226eaf76e15b
  • https://access.redhat.com/security/vulnerabilities/RHSB-2026-016
  • https://www.bleepingcomputer.com/news/security/critical-linux-kernel-flaw-allows-remote-root-attacks-on-mptcp-servers/
  • https://thehackernews.com/2026/10/linux-kernel-tcp-flaw-with-98-cvss.html

مخطط المختبر

لا يمكن لمجسّات الشبكة إثبات تلف الذاكرة. ما يمكنها إظهاره: هل يستجيب المضيف لحزم SYN التي تحمل خيارات IP، وهل يعيد SYN-ACK تلك الخيارات، وهل يوجد فلتر hdrlength في المسار.

  1. أقلع جهازًا افتراضيًا بنواة تسبق إصلاح المورّد لـ CVE-2026-98432. تحقق من uname -r مقابل استشارة توزيعتك.
  2. على الجهاز الافتراضي، راقب الحزم الحاملة للخيارات: tcpdump -ni eth0 'tcp and (ip[0] & 0x0f) > 5'
  3. من مضيف المختبر: sudo synipopt --target VM_IP --dport 22 --retries 5 --compare --log run.jsonl
  4. اقرأ ملف JSONL: يصنّف reply_kind الرد، ويحمل كتلة tcp الترويسة المُحلَّلة. يُظهر ip_options_len الصدى، الذي يظهر لكتل الخيارات ذات الحمولة (record route، timestamp)؛ أما حشو NOP الصرف فيُحذف عند الترجمة ويعود كترويسة بحجم 20 بايت.
  5. لإشارات أمان الذاكرة، ابنِ نواة الاختبار مع KASAN وراقب dmesg. الشبكة تُظهر معالجة الحزم فقط.

السلامة

اختبر المضيفين الذين تملكهم أو المصرّح لك باختبارهم. يرفض الحارس الافتراضي العناوين خارج RFC 1918 وloopback وlink-local وCGNAT ونطاقات التوثيق. يوجد --allow-public للمهام المصرّح بها على مضيفين تتحكم بهم. إطلاق حزم SYN مصنوعة على أطراف ثالثة ليس غرض هذه الأداة.

الاختبارات

python3 -m pytest -q

تغطي الحزمة خصائص checksum، ودورات البناء والتحليل ذهابًا وإيابًا، وحدود طول الخيارات، وتصنيف الردود (SYN-ACK، RST، ICMP، تدفق خاطئ)، وحارس CLI والتشغيل التجريبي، وحزمة السجل الأصلية كعيّنة اختبار انحدار. يشغّل CI إصدارَي Python 3.10 و3.12.

المصدر

مشتق من سكربت auto-exploiter متداول جمع بين Shodan dorking ومجسّ سباق SYN خام. يحتفظ هذا الإصدار المُعاد كتابته بالفكرة على مستوى الشبكة، ويحذف مرحلة الاستهداف الجماعي، ويستبدل المحلل الاستدلالي بتحليل إزاحة الترويسة. تُحفظ قيم سجل التشغيل الأصلية كعيّنة اختبار.

تتبع الوثائق قواعد الكتابة antislop وhumanizer.

الترخيص

MIT، انظر LICENSE.

تنزيل الأداة