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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2026-98432-check — يتحقق مما إذا كان المضيف يتجاهل حزم SYN TCP IPv4 مع خيارات IP (تخفيف CVE-2026-98432) | Kitploit
أدوات/GitHubGitHub/marcelofmatos/cve-2026-98432-check
أدوات دفاعيةالتقاط وتحليل الحزمماسحات الثغرات الأمنيةتخطيط الشبكةتحليل الثغرات الأمنيةتدقيق التكوينأمن الشبكاتسوء التكوين
GitHubmarcelofmatos/cve-2026-98432-check

cve-2026-98432-check

يتحقق مما إذا كان المضيف يتجاهل حزم SYN TCP IPv4 مع خيارات IP (تخفيف CVE-2026-98432)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

cve-2026-98432-check

يتحقق مما إذا كان المضيف يتجاهل SYN TCP IPv4 مع خيارات IP، وهو التخفيف الشبكي الموصى به لـ CVE-2026-98432 (use-after-free في مصافحة TCP IPv4 لنواة Linux، CVSS 9.8، حتى صدور النواة المصححة).

لكل منفذ، يرسل SYN عاديًا وSYN مع IPv4 Record Route ويقارن الاستجابات. إنه غير ضار: لا يستغل شيئًا، بل يفتح (ولا يكمل) مصافحة فقط.

ما يقيسه الاختبار: ما إذا كان SYN مع خيارات IP يصل ويُقبل من قبل الهدف. فهو لا يقرأ إصدار النواة. النواة المصححة مسبقًا تستمر في قبول خيارات IP وتُخرج EXPOSTO — في هذه الحالة يعني EXPOSTO فقط "بدون تصفية خيارات IP"، ويُتحقق من التصحيح باستخدام uname -r.

الاستخدام

./verifica-cve-2026-98432.sh <host-ou-ip> [porta ...]      # porta padrão: 443
./verifica-cve-2026-98432.sh exemplo.com 443 80 22

بدون سكربت، مباشرة عبر الصورة (يجب أن يكون الهدف IPv4):

docker run --rm --network host --cap-add NET_RAW \
  ghcr.io/marcelofmatos/cve-2026-98432-check:latest 203.0.113.10 443 22
المخرجاتExitالمعنى
MITIGADO0SYN عادي مقبول، SYN مع IP options مُسقَط — ولا يوجد أي قفزة في المسار تُرشِّح IP options
EXPOSTO1SYN مع IP options قُبِل أيضًا: لا شيء في المسار ولا في الهدف يُرشِّح
INCONCLUSIVO2منفذ مغلق (RST) أو مُرشَّح — استخدم منفذًا مفتوحًا
SEM HOST2الهدف في الشبكة المحلية ولا أحد يرد على ARP عنه: IP حر أو جهاز مُطفأ. لا تُرسَل أي حزمة TCP استكشافية
NÃO CONFIÁVEL3إحدى قفزات المسار (VPN، مشغّل الشبكة) تُسقِط IP options بالفعل. "مُسقَط" لا يُثبت شيئًا عن الهدف: اختبر من نقطة أخرى في الشبكة
—64استخدام غير صحيح، أو اسم بلا IPv4

مع عدة منافذ، يكون exit هو أسوأ حالة: أي EXPOSTO → 1.

التفاصيل:

  • يُحلّ الاسم على المضيف (getent)، لذا تعمل أسماء VPN/DNS الداخلية.
  • هدف بعيد: يستخدم الحاوية شبكة المضيف. الهدف = الجهاز نفسه: يخرج الاختبار عبر bridge من Docker، ليدخل الحزمة عبر prerouting كما لو جاءت من الخارج.
  • كل حزمة استكشافية تُجرَّب 3 مرات (مهلة 2 ثانية) قبل استنتاج "لا استجابة".
  • الصورة: CHECK_IMAGE (الافتراضي ghcr.io/marcelofmatos/cve-2026-98432-check:latest). السطر الأول من السجل هو الإصدار: cve-2026-98432-check <versão> iniciando.

تنبيه: اختر نقطة الاختبار بعناية

العديد من شبكات VPN ومشغّلي الشبكات يُسقِطون الحزم التي تحمل IP options. عند الاختبار من خلف إحداها، يبدو كل هدف مُخفَّفًا. لذلك يمرّ المدقّق عبر المسار قفزة بقفزة (TTL متزايد) قبل الاختبار، وإذا أسقطت أي قفزة IP options، يُعيد NÃO CONFIÁVEL. الحد: مرشّح في قفزة لا ترد على ICMP يمرّ دون ملاحظة. تحقّق من نقطة الاختبار على هدف معروف بأنه بلا تخفيف: يجب أن يخرج EXPOSTO.

قد تكون نقطة الاختبار نفسها عليها التخفيف مُطبَّقًا

نظام Linux المعرّض للثغرة يُعيد IP options في SYN-ACK (يعود SYN مع Record Route بـ ihl=6 وخيار RR). في نقطة اختبار عليها قاعدة mitigacao/، يُسقَط هذا SYN-ACK في prerouting. ومع ذلك تكون النتيجة صحيحة: يلتقط scapy الاستجابة على مقبس الحزم، قبل netfilter. قياسًا: عند الاختبار، من مضيف عليه القاعدة، على هدف بلا القاعدة، كانت النتيجة EXPOSTO وارتفع عدّاد القاعدة بمقدار 1 (SYN-ACK أُسقِط بعد التقاطه). يغطّي الاختبار alvo sem a regra (container) -> EXPOSTO هذه الحالة في CI، الذي يشغّل الاختبارات مع runner بلا القاعدة ومعها.

استثناء: أهداف خلف bridge لنقطة الاختبار نفسها مع br_netfilter. مع تحميل الوحدة (net.bridge.bridge-nf-call-iptables = 1، الافتراضي في مضيف Docker Swarm والعديد من Proxmox)، يعمل prerouting لـ IPv4 داخل الـ bridge، قبل الالتقاط. في هذه الحالة، قاعدة نقطة الاختبار تُسقِط SYN-ACK لحاوية أو VM من تلك الـ bridge، وتكون النتيجة MITIGADO زائفًا. الأهداف التي يُوصَل إليها عبر بطاقة عادية (جهاز آخر في الشبكة) لا تتأثر. لاختبار حاويات أو VMs من مضيف عليه br_netfilter، استخدم نقطة اختبار خارجه، أو نقطة بلا القاعدة. تتخطّى الاختبارات هذه الحالة (SKIP) عندما تكتشف هذا التوليف.

منفذ مُمرَّر عبر DNAT في الهدف

إذا كان منفذ الهدف منشورًا عبر Docker (DNAT إلى حاوية)، فإن الهدف نفسه يرد بـ ICMP "TTL excedido" على الحزم الاستكشافية ذات TTL المنخفض، لأنه يُمرِّر الحزمة. يتعرّف المدقّق على هذا ICMP من عنوان IP المصدر (هو IP الهدف) ولا يعامله كقفزة في المسار. حتى الإصدار 1.1.0، كان يُعطي NÃO CONFIÁVEL زائفًا على هدف مُخفَّف عندما يكون المنفذ الأول في القائمة مُمرَّرًا. يغطّي الاختبار porta encaminhada no alvo mitigado -> MITIGADO هذه الحالة.

التخفيف (للهدف)

في mitigacao/:

  • cve-2026-98432.nft: جدول ip cve_2026_98432 الذي يُسقِط TCP IPv4 مع ip hdrlength > 5 في prerouting (priority -300). Idempotente.
  • cve-2026-98432-mitigation.service: وحدة systemd تُحمِّل القاعدة قبل أن ترتفع الشبكة.
sudo install -m 644 mitigacao/cve-2026-98432.nft /etc/cve-2026-98432.nft
sudo install -m 644 mitigacao/cve-2026-98432-mitigation.service /etc/systemd/system/
echo 'net.mptcp.enabled = 0' | sudo tee /etc/sysctl.d/90-cve-2026-98432-mptcp.conf
sudo sysctl -w net.mptcp.enabled=0
sudo systemctl daemon-reload && sudo systemctl enable --now cve-2026-98432-mitigation

التخفيف لا يحل محل النواة المصححة: قم بتثبيتها وإعادة التشغيل بمجرد أن تنشر توزيعتك التحديث.

البنية

flowchart LR
    U["Operador"] --> L["verifica-cve-2026-98432.sh<br/>resolve o nome com getent<br/>escolhe a rede do container"]
    L -->|"docker run --cap-add NET_RAW"| C["Container cve-2026-98432-check<br/>Alpine + Python + scapy"]
    C -->|"rede host: alvo remoto"| N["Caminho de rede<br/>VPN, operadora, internet"]
    C -->|"bridge: alvo é a própria máquina"| H["prerouting do host"]
    N --> A["Alvo IPv4<br/>porta TCP"]
    REG["GHCR<br/>ghcr.io/marcelofmatos/cve-2026-98432-check"] -.->|"docker pull"| C

سير العمل

flowchart TD
    S["Início: alvo e portas"] --> AQ{"Alvo na rede local<br/>e sem resposta ARP?"}
    AQ -->|"sim"| SH["SEM HOST — exit 2"]
    AQ -->|"não"| H["TTL = 1, 2, 3 ... até o alvo<br/>SYN normal e SYN com RR"]
    H --> HQ{"Algum salto responde ICMP ao normal<br/>e some com o RR?"}
    HQ -->|"sim"| FL["caminho FILTRA no salto N"]
    HQ -->|"não, chegou ao alvo, ICMP veio do próprio alvo<br/>ou 4 saltos mudos seguidos"| OK["nenhum filtro visto"]
    FL --> P
    OK --> P
    P["Por porta: SYN normal"] --> PQ{"SYN-ACK?"}
    PQ -->|"não"| INC["INCONCLUSIVO — exit 2"]
    PQ -->|"sim"| R["SYN com RR"]
    R --> RQ{"Alguma resposta?"}
    RQ -->|"sim"| EXP["EXPOSTO — exit 1"]
    RQ -->|"não, caminho filtra"| NC["NÃO CONFIÁVEL — exit 3"]
    RQ -->|"não, caminho limpo"| MIT["MITIGADO — exit 0"]

التطوير والاختبار

docker build --build-arg APP_VERSION=dev -t cve-2026-98432-check:dev .
# ESPERADO_LOCAL=1 num host sem a regra nft; 0 num host com a regra aplicada
CHECK_IMAGE=cve-2026-98432-check:dev ESPERADO_LOCAL=1 VERSAO_ESPERADA=dev ./tests/testes.sh

تقوم الاختبارات بتشغيل مستمع مؤقت على المضيف (المنفذ 18098) وتختبره من حاوية على جسر Docker. في CI (test.yml) يعمل الـ runner مرتين: بدون القاعدة (يجب أن يخرج EXPOSTO) ومع القاعدة المطبقة (يجب أن يخرج MITIGADO). وهذا يتحقق من صحة الطريقة في كلا الاتجاهين.

الإصدار

سير العمل اليدوي release-and-build.yml (Actions → Release and build → patch/minor/major): يشغّل الاختبارات، وينشئ وسم SemVer والإصدار، وينشر الصورة على GHCR مع الوسوم x.y.z وx.y وx وlatest. يدخل الإصدار إلى الصورة عبر APP_VERSION.

الترخيص

MIT

تنزيل الأداة