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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
sel4-ics-gateway-demo — عرض توضيحي للأمن الدفاعي: بوابة seL4 microkernel تحمي ICS الضعيفة من CVE-2019-14462 | Kitploit
أدوات/GitHubGitHub/spanwich/sel4-ics-gateway-demo
أدوات دفاعيةأمن الحاوياتتحليل الثغرات الأمنيةالاستغلالأمن SCADA/ICSأمن الشبكاتكشف التسللالتعلم والتعليم
GitHubspanwich/sel4-ics-gateway-demo

sel4-ics-gateway-demo

عرض توضيحي للأمن الدفاعي: بوابة seL4 microkernel تحمي ICS الضعيفة من CVE-2019-14462

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

الأكثر شعبية

عرض الكل →

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

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

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

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

seL4 ICS Gateway Demo

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

التوثيق:

  • بنية الشبكة - رسومات الشبكة وتدفق الحركة
  • بنية الحاويات - علاقات حاويات Docker
  • شروحات الثغرات - تفاصيل الثغرات وآليات الهجوم

الدافع البحثي

تواجه أنظمة ICS/SCADA الحديثة هجمات متطورة مثل FrostyGoop، والذي استهدف أنظمة التدفئة المحلية الأوكرانية عبر Modbus TCP في يناير 2024، مما ترك أكثر من 600 منزل بدون تدفئة خلال درجات حرارة تحت الصفر. تستخدم الحلول الأمنية التقليدية (الجدران النارية، أنظمة كشف التسلل) بنية توجيه الحزم التي تفحص الحركة على الخط ولكنها تحافظ على اتصال TCP واحد من النهاية إلى النهاية.

يقدم هذا المشروع بديلاً: بوابة كسر البروتوكول تستخدم النواة المصغرة seL4 المُثبتة رسميًا. من خلال إنهاء اتصالات TCP والتحقق من دلالات البروتوكول قبل إنشاء اتصالات جديدة بالأجهزة المحمية، توفر هذه البنية ضمانات أمنية أقوى.

النتائج الرئيسية

الجانبكسر البروتوكول (seL4)توجيه الحزم (Snort)
CVE-2019-14462محظور (التحقق من الطول)مكتشف (قواعد Quickdraw)
CVE-2022-0367محظور (التحقق من العنوان)مكتشف (قواعد مخصصة)
CVE-2022-20685محصن (بدون معالج مسبق)قابل للاختراق (حرمان خدمة IDS)
CVE-2024-1086محصن (بدون نواة Linux)قابل للاختراق (مشارك نواة المضيف)
المتغيرات غير المعروفةمحظور (التحقق البنيوي)غير مكتشف (لا توقيع)
هجمات حالة TCPمحظور (تم إنهاء الاتصال)ممكن
سطح الهجوم~1,000 سطر من الكود (نواة مصغرة)~500,000 سطر من الكود (Linux + Snort)

Architecture

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────────────┐
│ Docker Network: ics-untrusted (192.168.96.0/24)                             │
│                                                                             │
│   ┌───────────────────────┐       ┌───────────────────────┐                │
│   │ seL4 Gateway          │       │ Snort IDS             │                │
│   │ Port 502              │       │ Port 503              │                │
│   │                       │       │                       │                │
│   │ • Protocol-break      │       │ • Packet-forwarding   │                │
│   │ • TCP termination     │       │ • Inline inspection   │                │
│   │ • Length validation   │       │ • Rule-based detection│                │
│   └───────────┬───────────┘       └───────────┬───────────┘                │
│               │                               │                             │
├───────────────┼───────────────────────────────┼─────────────────────────────┤
│ Docker Network: ics-protected (192.168.95.0/24)                             │
│               │                               │                             │
│               └───────────────┬───────────────┘                             │
│                               ▼                                             │
│               ┌───────────────────────────────┐                             │
│               │ PLC (District Heating)        │                             │
│               │ Vulnerable libmodbus 3.1.2    │                             │
│               │ Port 5020 (direct access)     │                             │
│               └───────────────────────────────┘                             │
└─────────────────────────────────────────────────────────────────────────────┘

بداية سريعة

المتطلبات الأساسية

  • Docker و Docker Compose v2
  • صورة نواة بوابة seL4 (يقدمها المستخدم)
  • ~4GB رام لـ QEMU

1. إضافة صورة seL4

root@kitploit:~
# Place your seL4 kernel image at:
gateway/sel4-image/capdl-loader-image-arm-qemu-arm-virt

2. البناء والتشغيل

root@kitploit:~
# Build all containers
sudo docker compose build

# Start individual containers
sudo docker compose up plc        # PLC only
sudo docker compose up gateway    # seL4 gateway + PLC
sudo docker compose up snort      # Snort IDS + PLC

# Start all
sudo docker compose up

3. اختبار الاتصالات

root@kitploit:~
# Through seL4 gateway (protected - protocol-break)
echo -ne '\x00\x01\x00\x00\x00\x06\x01\x03\x00\x00\x00\x01' | nc localhost 502 | xxd

# Through Snort IDS (protected - packet-forwarding)
echo -ne '\x00\x01\x00\x00\x00\x06\x01\x03\x00\x00\x00\x01' | nc localhost 503 | xxd

# Direct to PLC (unprotected - vulnerable)
echo -ne '\x00\x01\x00\x00\x00\x06\x01\x03\x00\x00\x00\x01' | nc localhost 5020 | xxd

تعيينات المنافذ

ملاحظة: يعمل PLC الافتراضي الآن في وضع CVE-2022-0367 مع ASAN. استخدم --profile cve14462 لاختبار CVE-2019-14462.

عروض توضيحية للثغرات

CVE-2019-14462: تجاوز سعة المخزن المؤقت للكومة في libmodbus

يستخدم PLC مكتبة libmodbus 3.1.2 المعرضة للخطر عن قصد. يستغل الهجوم حقول طول MBAP الموثوقة:

root@kitploit:~
# Start PLC in CVE-2019-14462 mode
sudo docker compose --profile cve14462 up plc-14462

# Build attack tools
cd cve_tools && make

# Attack unprotected PLC (crashes)
./cve_14462_attack 127.0.0.1 5022

# Attack through seL4 (BLOCKED)
./cve_14462_attack 127.0.0.1 502

# Attack through Snort (DETECTED by Quickdraw rules)
./cve_14462_attack 127.0.0.1 503

CVE-2022-0367: نقص سعة المخزن المؤقت للكومة في libmodbus

خلل في التحقق من الحدود في modbus_mapping_new_start_address() يسمح بنقص سعة الكومة عبر كود الوظيفة 0x17 (كتابة وقراءة السجلات):

root@kitploit:~
# Default PLC runs in CVE-2022-0367 mode with ASAN
sudo docker compose up plc

# Build attack tools
cd cve_tools && make

# Attack PLC - ASAN will detect heap-buffer-overflow
./cve_0367_attack 127.0.0.1 5020

# Attack with custom parameters
./cve_0367_attack 127.0.0.1 5020 88 0x4141  # Corrupt tab_registers pointer
./cve_0367_attack 127.0.0.1 5020 72 0xFFFF  # Corrupt nb_registers

# Attack through seL4 (BLOCKED - address validation)
./cve_0367_attack 127.0.0.1 502

# Attack through Snort (DETECTED by custom rules)
./cve_0367_attack 127.0.0.1 503

تفاصيل تقنية:

  • الخادم يستخدم start_registers=100، العناوين الصالحة هي 100-109
  • الهجوم يرسل write_address < 100، مما يسبب فهرس مصفوفة سالب
  • نقص سعة الكومة يمكن أن يفسد حقول بنية mb_mapping بما في ذلك المؤشرات

CVE-2022-20685: حرمان خدمة معالج Modbus المسبق في Snort

يعاني Snort 2.9.18 من تجاوز عدد صحيح في معالج Modbus المسبق مما يسبب حلقة لا نهائية، مما يمنع كل الحركة عبر IDS:

root@kitploit:~
# 1. Verify Snort is working (should return Modbus response)
echo -ne '\x00\x01\x00\x00\x00\x06\x01\x03\x00\x00\x00\x01' | nc -w 2 localhost 503 | xxd

# 2. Attack the Snort IDS
./cve_20685_attack 127.0.0.1 503

# 3. Verify Snort is frozen (should timeout with NO response)
echo -ne '\x00\x01\x00\x00\x00\x06\x01\x03\x00\x00\x00\x01' | nc -w 5 localhost 503 | xxd

# 4. Check Snort CPU (should be 100%)
sudo docker exec ics-snort top -b -n 1 | grep snort

# 5. seL4 is IMMUNE (no Modbus preprocessor to exploit)
./cve_20685_attack 127.0.0.1 502  # No effect on seL4

# 6. Restart Snort after demo
sudo docker compose restart snort

لماذا هذا مدمر: يستخدم Snort وضع NFQUEUE المضمن، مما يعني أن الحزم محتجزة في قائمة انتظار النواة حتى يعيد Snort حكمًا. عندما يتوقف Snort عن العمل، لا تُعاد الأحكام، وتتوقف كل الحركة - ليس فقط عمى IDS، بل حرمان كامل من الخدمة.

CVE-2024-1086: تصعيد الصلاحيات في نواة Linux

استخدام بعد التحرير في netfilter nf_tables في Linux (النوى v5.14-v6.6) يمكن من الهروب من الحاوية:

root@kitploit:~
# Check if host is vulnerable
uname -r  # Vulnerable: v5.14 - v6.6 (before patches)

# The exploit is available at:
ls cve_tools/cve-2024-1086/

لماذا هذا مهم: تشترك حاويات Docker في نواة المضيف. إذا تمكن مهاجم من اختراق Snort (مثلاً عبر CVE-2022-20685)، يمكنه استخدام CVE-2024-1086 للهروب من الحاوية والحصول على صلاحيات الجذر على المضيف. seL4 محصن لأنه يعمل بنواة مصغرة، وليس Linux.

نصوص العرض التوضيحي

root@kitploit:~
# Full demo with 4 quadrants (PLC, seL4, Snort, User terminal)
./scripts/demo.sh

# Snort-only demo with 3 panes (PLC, Snort, User terminal)
./scripts/demo-snort.sh

تجربة المقارنة الكاملة

root@kitploit:~
# Run automated comparison
./scripts/run_comparison.sh

ملفات تعريف قواعد Snort

تتوفر تكوينات متعددة لـ Snort لقياس كفاءة الكشف:

root@kitploit:~
# Run Snort with specific profile
sudo docker compose --profile snort-talos up

# Compare detection efficiency
sudo docker compose --profile snort-quickdraw up -d
./cve_tools/cve_0367_attack 127.0.0.1 503  # Test detection
sudo docker compose --profile snort-quickdraw down

sudo docker compose --profile snort-combined up -d
./cve_tools/cve_0367_attack 127.0.0.1 503  # Test detection
sudo docker compose --profile snort-combined down

مقارنة تغطية القواعد

كسر البروتوكول مقابل توجيه الحزم

توجيه الحزم (IDS/IPS التقليدي)

root@kitploit:~
Client ────TCP────► Snort ────TCP────► PLC
          (same connection flows through)
  • اتصال TCP واحد من النهاية إلى النهاية
  • المهاجم يمكنه التلاعب بحالة TCP
  • يمكن مهاجمة IDS (CVE-2022-20685)
  • يتطلب توقيعات لكل متغير هجوم

كسر البروتوكول (بوابة seL4)

root@kitploit:~
Client ────TCP1────► seL4 ────TCP2────► PLC
              (terminates, validates, new connection)
  • اتصالي TCP مستقلين
  • العميل لا يمكنه التأثير على حالة TCP الخاصة بـ PLC
  • التحقق قبل وصول أي بيانات إلى PLC
  • يلتقط فئات كاملة من الإدخال المشوه

المكونات

أدوات الثغرات

محاكاة PLC

يحاكي PLC وحدة تحكم تدفئة محلية مع دعم متعدد الماجستير (بنية خيط لكل عميل، نموذجية في PLCs الحديثة).

أوضاع PLC

الوضعالخدمةالمنفذالوصف
CVE-2022-0367plc (افتراضي)5020
root@kitploit:~
# Default mode (CVE-2022-0367 with ASAN)
sudo docker compose up plc

# CVE-2019-14462 mode
sudo docker compose --profile cve14462 up plc-14462

سجلات Modbus

في وضع CVE-2022-0367، السجلات في العناوين 100-109 (استخدم العنوان 40101 في أدوات SCADA):

إشعار أمني

يحتوي هذا المشروع على رمز معرض للخطر عن قصد لأغراض البحث الأمني الدفاعي. تم تضمين libmodbus 3.1.2 و Snort 2.9.18 المعرضين للخطر لتوضيح المفاهيم الأمنية.

لا تنشر المكونات غير المحمية في بيئات الإنتاج.

المراجع

الثغرات

  • CVE-2019-14462 - تجاوز سعة المخزن المؤقت للكومة في libmodbus (طول MBAP)
  • CVE-2022-0367 - نقص سعة المخزن المؤقت للكومة في libmodbus (start_address)
  • CVE-2022-20685 - حرمان خدمة معالج Modbus المسبق في Snort
  • CVE-2024-1086 - تصعيد الصلاحيات في nf_tables لنواة Linux

البحث الأمني

  • Claroty Team82 - تحليل Snort CVE-2022-20685
  • libmodbus Issue #614 - الإفصاح عن CVE-2022-0367
  • CVE-2024-1086 PoC - استغلال النواة بنسبة نجاح 99.4%

موارد ICS/SCADA

  • seL4 Microkernel - نواة مصغرة مُثبتة رسميًا
  • Digital Bond Quickdraw - قواعد Snort المعيارية لـ ICS/SCADA
  • Dragos FrostyGoop Report - تحليل برامج ضارة ICS (هجوم أوكرانيا يناير 2024)
  • The Record - FrostyGoop - 600 أسرة أوكرانية بدون تدفئة

الترخيص

لأغراض البحث الأمني الدفاعي المصرح به والتعليم فقط.

تنزيل الأداة
المنفذالمسارالبنيةالحماية
502عميل → seL4 → PLCكسر البروتوكوليتحقق من بنية Modbus
503عميل → Snort → PLCتوجيه الحزمIDS قائم على القواعد
5020عميل → PLC (ASAN)مباشروضع CVE-2022-0367
5022عميل → PLCمباشروضع CVE-2019-14462 (profile: cve14462)
الملفالأمرالقواعدالوصف
defaultdocker compose up snort12Quickdraw (المعيار الصناعي)
quickdraw--profile snort-quickdraw12Digital Bond Quickdraw فقط
talos--profile snort-talos40نمط Talos مع كلمات مفتاحية modbus_func
modbus--profile snort-modbus13قواعد كشف الثغرات المخصصة فقط
combined--profile snort-combined65جميع القواعد مجتمعة
CVEQuickdrawTalosCustom Modbus
CVE-2019-14462 (طول MBAP)✅✅✅
CVE-2022-0367 (نقص سعة الكومة)❌✅✅
CVE-2022-20685 (حرمان خدمة Snort)❌✅✅
عمليات الكتابة❌✅✅
الاستطلاع✅✅✅
أكواد دالة الحرمان من الخدمة✅✅❌
الدليلالوصف
gateway/حاوية بوابة seL4 (QEMU + نواة seL4)
snort/Snort 2.9.18 IDS مع عدة ملفات تعريف قواعد (معرض لـ CVE-2022-20685)
plc/محاكاة للتدفئة المحلية (libmodbus 3.1.2 معرضة، وضع CVE-2022-0367)
cve_tools/أدوات هجوم لعروض الثغرات
scripts/نصوص مساعدة وتجربة
docs/توثيق مع رسومات Mermaid (الشبكة، الحاويات، الثغرات)
الأداةالهدفالوصف
cve_14462_attacklibmodbusتجاوز سعة المخزن المؤقت للكومة عبر عدم تطابق طول MBAP
cve_0367_attacklibmodbusنقص سعة المخزن المؤقت للكومة عبر عنوان كتابة غير صالح (FC 0x17)
cve_20685_attackSnortحلقة لا نهائية لمعالج Modbus المسبق (حرمان خدمة)
cve-2024-1086/نواة Linuxتصعيد الصلاحيات عبر nf_tables (الهروب من الحاوية)
بناء ASAN، سجلات في العناوين 100-109
CVE-2019-14462plc-144625022بناء عادي، سجلات في العناوين 0-9
العنوانالسجلالوصفقراءة/كتابة
100HR[0]درجة الحرارة الداخلية (درجة مئوية ÷10)R
101HR[1]أمر الصمام (0-100%)R/W
102HR[2]نقطة ضبط درجة الحرارة (درجة مئوية ÷10)R/W
103HR[3]الوضع (0=يدوي، 1=تلقائي)R/W
104HR[4]درجة الحرارة الخارجية (درجة مئوية ÷10)R
105-109HR[5-9]الحالة، الموضع، درجة حرارة الإمداد، وقت التشغيل، الطاقةR