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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-39247 — HikCentral Professional - تسريب ActiveCode الرخصة قبل المصادقة | Kitploit
أدوات/GitHubGitHub/sita-technologies/cve-2025-39247
الاستطلاعتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةجمع المعلوماتأمن الويبالتشفيراختبار الاختراقتحليل الملفات الثنائية
GitHubsita-technologies/cve-2025-39247

CVE-2025-39247

HikCentral Professional - تسريب ActiveCode الرخصة قبل المصادقة

36منذ 5 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-39247

  • الهدف: HikCentral Professional (HCMP، خادم VMS مركزي)
  • CVE: CVE-2025-39247 — ثغرة في التحكم بالوصول
  • CVSS 3.1: 8.6 (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N)
  • المتأثر: V2.3.1 – V2.6.2 و V3.0.0
  • المُعالَج: V2.6.3 / V3.0.1 / حزمة الإصلاح CVE-2025-39247
  • تاريخ الإفصاح: 2025-08-28
  • تاريخ التحليل: 2026-05-21

1. مرحلة جمع المعلومات مفتوحة المصدر

قبل تنزيل أي شيء، ما هو متاح للعموم بالفعل:

المصدرما يخبرنا به
نشرة أمان Hikvision"فحوصات مصادقة مفقودة على نقاط النهاية API"، نصيحة بالترقية إلى V2.6.3 / V3.0.1
NVD CVE-2025-39247مقاييس CVSS؛ المتجه شبكي، لا مصادقة، نطاق متغير، سرية عالية
ملخصات Wiz, ZeroPath, SentinelOne, OffSeq, gbhackers, cybersecuritynewsجميعها تعيد صياغة النشرة؛ لا تفاصيل فنية، ولا PoC، ولا نقطة نهاية متأثرة مسماة
مجمعات PoC على GitHub (poc-in-github, 0xMarcio/cve, إلخ)لا يوجد PoC مفهرس
المنتديات (ipcamtalk, cctvforum, reddit)، مفهرسات التورنتلا PoC، ولا مُثبّتات مسربة؛ في ipcamtalk يوجد موضوع حول استخدام HikCentral لكن لا شيء متعلق بالاستغلال

إذاً، حتى تاريخ التحليل، لا يوجد أي مستند فني عام يكشف الثغرة. أي عملية إعادة إنتاج تبدأ من المقارنة الثنائية.


2. الاستحواذ

2.1 المُثبّت المتأثر (حزمة V2.6.2 الكاملة)

بعد نشر CVE-2025-39247 تم إلغاء إدراج صفحة تنزيل V2.6.2، لكن الملف على CDN لم يُحذف أبداً. يمكن استرداد اسم الملف من مرآة خارجية قامت بفهرسة الصفحة قبل الإلغاء (FileHorse — نشر اسم الملف وMD5). بهذا الاسم، يكفي طلب GET بسيط إلى CDN الخاص بـ Hikvision — باستخدام User-Agent عادي للمتصفح ورأس Referer مطابق — ليبقى الملف متاحاً.```bash curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0"
-H "Referer: https://www.hikvision.com/en/support/download/software/hikcentral-professional-v2-6-2/"
-O
"https://www.hikvision.com/content/dam/hikvision/en/support/download/vms/hcp-2-6-2/HikCentral-Professional_Full-Pack_V2.6.2.202501211507_Win_x64_Installer.exe"

النتيجة:
- الحجم: 1,314,043,792 بايت (1.22 جيجابايت)
- MD5: `76d42e7cb16dc0e177b9a35d0fed7ced` — يطابق القيمة المنشورة من FileHorse، مما يؤكد أن المثبت موقع من Hikvision (وليس إعادة حزم من طرف ثالث)
- رؤوس استجابة CDN: `HTTP/2 200`, `content-type: application/x-msdownload`, `eo-cache-status: HIT`, `age: 2520395` (حوالي 29 يومًا في ذاكرة التخزين المؤقت للحافة لـ Tencent EdgeOne دون إخلاء)

**ملاحظة جانبية تستحق الإبلاغ إلى Hikvision PSIRT:** إن "إزالة القائمة" لصفحة V2.6.2 هي تجميلية. الملف المهجور يمكن الوصول إليه على CDN دون مصادقة ودون بوابة URL موقعة. الحزم الكاملة V2.5.1 و V2.6.0 تستجيب بنفس الطريقة.

### 2.2 المثبت المصحح (الحزمة الأساسية V2.6.3)

مرتبط حاليًا من صفحة تنزيل V2.6.3؛ نفس طريقة الاسترجاع:```
https://www.hikvision.com/content/dam/hikvision/en/support/download/vms/hcp-2-6-3/HikCentral-Professional_Base-Pack_V2.6.3.202508280142_Win_x64_Installer.exe
  • الحجم: 932,813,264 بايت (890 MB)
  • آخر تعديل: 2025-08-28 (تاريخ الكشف عن CVE)

2.3 حزمة الإصلاح

لا يزال مرتبطًا من صفحة تنزيل V2.6.2 (تريد Hikvision من المستخدمين تطبيقه):``` https://www.hikvision.com/content/dam/hikvision/en/support/download/vms/cve-2025-39247-security-vulnerability-patch/HikCentral-Professional_CVE-2025-39247_FixPack_V2.3.1-V2.6.2V3.0.0_20250904.exe

- الحجم: 32,599,504 بايت (31 ميجابايت)

---

## 3. الاستخراج الثابت

جميع الثلاثة عبارة عن أغلفة PE من نمط InstallShield. يقوم `7z` بتقشيرها في خطوتين:```bash
# pass 1 — extract PE resources
7z x -o./extracted/v262/pe downloads/<v2.6.2 installer>
7z x -o./extracted/v263/pe downloads/<v2.6.3 installer>

# pass 2 — extract the nested 7-Zip streams hiding in PE resources
# (note: the resource-type label says "ZIP" but the byte signature is 7-Zip)
for ver in v262 v263; do
  for z in extracted/$ver/pe/.rsrc/2052/ZIP/*; do
    sz=$(stat -c %s "$z"); [ "$sz" -lt 1048576 ] && continue
    7z x -o"extracted/$ver/payload/$(basename $z)" "$z"
  done
done

كلا المثبتين يتوسعان إلى حوالي أربعة وعشرين أرشيف حمولة مُسمى. تكشف أدلة المستوى الأعلى عن البنية:

الأرشيفالمحتويات
246/Nginx + 246/wwwطبقة ويب Nginx (الباب الأمامي) وواجهة مستخدم ويب SPA
244/binثنائيات خدمة C++ أصلية + شهادات
240PostgreSQL مُجمّع + نصوص تهيئة قاعدة البيانات
238وقت تشغيل Bee* (BeeAgent, BeeGuard, …)
282خدمات التطبيق والإضافات (الجزء الأكبر من كود الخلفية C++)
281, 283-284, 396, 398-399, 513, 520, 538-541, 573إضافات أصغر، مكونات إضافية، ودعامات ترقية/إلغاء التثبيت

الأهم من ذلك، لا توجد ملفات JARs/WARs لجافا في أي مكان. الخلفية هي C++ على Nginx — مهم لأنه يخبرك مقدمًا أن أي ثغرة في المصادقة ستكون في الثنائيات المُجمّعة، وليس في كود بايت WAR/JAR حيث يكون فك التجميع تافهًا.


4. الفرق على مستوى الملف```python

Build inventories

for ver in v262 v263: find . -type f -print0 | xargs -0 md5sum | sort -k2 > inv_$ver.txt

Sets: common-path + different MD5 → the patched files

v262 = {ln[34:]: ln[:32] for ln in open("inv_v262.txt")} v263 = {ln[34:]: ln[:32] for ln in open("inv_v263.txt")} common = set(v262) & set(v263) changed = [p for p in common if v262[p] != v263[p]]

النتيجة: 239 ملفًا تم تغييرها في المسارات الشائعة. التوزيع:

| الجرافة | العدد | ملاحظة |
|---|---|---|
| `246/www/*.js` (أجزاء واجهة الويب) | ~200 | في الغالب تجزئة أصول محدثة الإصدار؛ تجاهل |
| `246/Nginx/conf/nginx_location.conf` | **1** | **فرق ملف تكوين Nginx أحادي الملف — ابدأ من هنا** |
| `246/Nginx*/install.bat` | 6 | نصوص التثبيت، غير متعلقة |
| `244/bin/*.{exe,dll}` | 6 | ثنائيات أصلية (`DistributionFilter.dll`, `FilterChain.dll`, أدوات الوسائط) |
| `282/*.{exe,dll}` | 55 | خدمات التطبيق (أكبر مجموعة — `platform.dll`, `PersonCredential.dll`, `baseacs.*`, …) |
| `240/bin/pg_*` | 6 | إعادة بناء Postgres، غير متعلقة |
| `284/hplugin/dahua_plugin/*` | 4 | تحديث SDK المورد (+10.97 MB) — غير متعلقة |
| `284/hplugin/onvif_plugin/*` | 4 | تحديث SDK المورد (+0.99 MB) — غير متعلقة |
| upgrade/uninstall stubs, crash reporters | ~30 | إعادة بناء طوابع زمنية PE بنفس الحجم، تجاهل |

بعد تصفية تحديث SDK المورد، وانجراف الطوابع الزمنية لنظام البناء، والارتفاعات التجميلية البحتة للأصول، فإن الفروقات *الفعلية* ذات الصلة بالأمن تقل إلى:

- ملف تكوين Nginx واحد
- عدد صغير من الثنائيات C++ في `282/` (أبرزها `platform.dll`، خدمة الخلفية HCMP، +57 KB)

---

## 5. فرق Nginx: موقع الخلل بدون تكلفة

`diff -u nginx_location.conf` بين V2.6.2 و V2.6.3 ينتج بالضبط رقعة واحدة: كتلة `location =` جديدة تمامًا في V2.6.3.```nginx
#禁止非127.0.0.1和::1的重置密码                   ← "Forbid non-127.0.0.1/::1 password reset"
location = /ISAPI/Bumblebee/Platform/V0/Permission/ChangeDefaultUserPassword {
    if ($remote_addr ~ ^(127\.0\.0\.1|::1)$) { set $allowed 1; }
    if ($allowed != "1")   { return 403; }
    if ($scheme = "http")  { proxy_pass http://http_backend;  }
    if ($scheme = "https") { proxy_pass http://http2_backend; }
}

هذه الإضافة المكونة من 21 سطرًا هي التصحيح الكامل لـ CVE-2025-39247 على مستوى البوابة الأمامية، وهي تخبرك بكل شيء:

  • نقطة النهاية: PUT /ISAPI/Bumblebee/Platform/V0/Permission/ChangeDefaultUserPassword
  • فئة الخلل: في الإصدار V2.6.2، يمر الطلب عبر توجيه الوكيل الشامل /ISAPI/Bumblebee/Platform/V0/* إلى الواجهة الخلفية بدون تقييد لعنوان البعيد وبدون فحص مصادقة على مستوى Nginx.
  • دلالات الواجهة الخلفية: المعالج موجود لتعيين كلمة المرور الافتراضية للمسؤول أثناء التثبيت (أي يثق أن المتصل هو المثبت المحلي)؛ التصحيح يجعل هذه الثقة صريحة.

التعليق الصيني مهم: ترجمته الحرفية هي "منع إعادة تعيين كلمة المرور من غير 127.0.0.1/::1".


6. شكل الطلب من واجهة المستخدم للويب

JavaScript واجهة المستخدم للويب (مصغرة، في 246/www/Portal/*.js) تستدعي نقطة النهاية كالتالي:```js // API definition (de-minified): changeDefaultUserPassword: function (sid, payload, opts) { return http.put({ url: "ISAPI/Bumblebee/Platform/V0/Permission/ChangeDefaultUserPassword", data: { ChangeDefaultUserPasswordRequest: payload }, params: { SID: sid } }, opts); }

تنزيل الأداة