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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
vsftpd-cmds-denied-alias — vsftpd 3.0.5 - عالي - عن بُعد - بقايا صلاحيات - cmds_denied يفوّت الأسماء المستعارة وفق RFC (XRMD) | Kitploit
أدوات/GitHubGitHub/abraxas/vsftpd-cmds-denied-alias
أدوات دفاعيةتحليل الثغرات الأمنيةالاستغلالتدقيق التكوينأمن الشبكاتاختبار الاختراقالأوراق والأبحاثمختبرات وتدريب عملي
GitHubabraxas/vsftpd-cmds-denied-alias

vsftpd-cmds-denied-alias

vsftpd 3.0.5 - عالي - عن بُعد - بقايا صلاحيات - cmds_denied يفوّت الأسماء المستعارة وفق RFC (XRMD)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - vsftpd-cmds-denied-alias

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vsftpd-cmds-denied-alias

التحليل المكتوب: https://abraxaslabs.tech/research/vsftpd-cmds-denied-alias

vsftpd-cmds-denied-alias

الفئة: صلاحية متبقية الوصول: عن بُعد

vsftpd 3.0.5 - Chris Evans

ثبّتُّ الأرشيف الرسمي (tarball)، وليس نسخة مرآة من GitHub ولا نسخة متفرعة من توزيعة. SHA-256 26b602ae454b0ba6d99ef44a09b6b9e0dfa7f67228106736df1f278c70bc91d3. vsftpver.h VSF_VERSION "3.0.5".

cmds_denied هو مطابقة دقيقة لرمز مكتوب بأحرف كبيرة في process_post_login (postlogin.c:140-184). ثم يقوم الإرسال (dispatch) بدمج أسماء بديلة من RFC 775 على نفس المعالجات عبر OR: RMD||XRMD (:263-264)، وكذلك CWD||XCWD، MKD||XMKD، PASV||P@SW، بالإضافة إلى EPSV / STOU / APPE المنفصلة. المشغّل الذي يضع RMD في قائمة الحظر (وصفة DELE,RMD الشائعة) لا يزال يسمح لـ XRMD بحذف الدليل.

هذه الصلاحية المتبقية هي انتهاك لسلامة FTP بعد المصادقة في ظل قائمة حظر ظنّ المشغّل أنها مغلقة. وهي ليست وصولاً غير مُصادَق، وليست صلاحية root، وليست هروبًا من chroot، وليست RCE.

المعرّفلا يوجد CVE بعد
الفئةصلاحية متبقية (cmds_denied مطابقة دقيقة للرمز)
الوصولعن بُعد (FTP بعد المصادقة)
CWECWE-863
CVSSعالٍ: 7.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
المنتجvsftpd (Chris Evans)
المتأثرvsftpd 3.0.5 الأرشيف الرسمي
المصادقةFTP USER/PASS (المختبر: anonymous ftp)
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:18720 فقط

ما يمكن للمهاجم فعله

من: مستخدم FTP بعد المصادقة (مجهول أو محلي) على خادم (daemon) حيث ضبط المشغّل cmds_denied. القيمة الافتراضية غير مضبوطة. وصفات المستخدمين الافتراضيين التي تذكرها صفحة الدليل (man page) تتشارك uid الضيف، لذا لا يمكن لـ Unix DAC الفصل بينها. الجلسة هي بالفعل الـ uid المُعيَّن داخل chroot المعتاد. كان cmds_denied هو الضابط الإضافي الذي كان يُفترض أن يزيل الفعل (verb).

السلامة (مُثبَتة في المختبر)

الطريقة + الهدفالصلاحية
XRMD labdir بعد cmds_denied=RMDhandle_rmd -> str_rmdir لدليل يمكن لـ uid الجلسة حذفه عبر Unix-rmdir. المختبر: RMD labdir 550، XRMD labdir 250، CWD labdir 550 (اختفى الدليل). MKD labctrl الثاني لا يزال 550 على RMD.

السلامة (مستنتجة من نفس بوابة المطابقة الدقيقة للرمز؛ وليست من المختبر)

الطريقة + الهدفالصلاحية
XMKD dir بعد cmds_denied=MKDhandle_mkd -> mkdir بصلاحية uid الجلسة
XCWD path بعد cmds_denied=CWDhandle_cwd -> chdir. ثم RETR إذا كان download_enable مفعّلًا
STOU / APPE بعد cmds_denied=STORhandle_upload_common إنشاء / إلحاق. يتطلب write_enable
EPSV / P@SW بعد cmds_denied=PASVhandle_pasv يفتح مستمع بيانات (data listener) كانت قائمة الحظر تهدف إلى إيقافه

أثبت المختبر XRMD بعد RMD فقط. الأسماء البديلة الأخرى تتشارك نفس بوابة str_equal ونفس OR في الإرسال (dispatch). لم أختبرها.

الاستطلاع (Recon)

لا شيء كصلاحية متبقية من الدرجة الأولى. cmds_denied ليس إخفاءً. XRMD لا يسرد الأسماء.

التوافر

ليس ضمن النطاق. إزالة دليل هي انتهاك للسلامة. أي CWD / RETR لاحق لذلك الاسم يعيد 550 كأثر جانبي.

ما لا تمنحه هذه الصلاحية المتبقية

  • cmds_denied غير مُصادَق عليه (تسجيل الدخول المسبق يتجاهله؛ تبقى USER/PASS/QUIT في جدول ما قبل تسجيل الدخول)
  • الجذر
  • الهروب من Chroot (allow_writeable_chroot معطّل افتراضيًا؛ يكتب المختبر فقط تحت /incoming لذا يظل المنع قائمًا)
  • cmds_allowed يفشل مغلقًا: الأفعال غير المدرجة بما في ذلك XRMD تبقى 550
  • write_enable=NO لا يزال يحظر عائلة الكتابة (STOR/MKD/RMD/DELE/RNFR/RNTO/SITE/APPE/STOU)
  • Unix DAC عندما لا يتشارك المستخدمون نفس uid
  • تجاوز حالة الأحرف SITE مقابل site (ftpcmdio.c str_upper)
  • cmds_denied=CHMOD لا يتطابق أبدًا؛ اقتل chmod باستخدام chmod_enable=NO أو cmds_denied=SITE

كيف وجدته

بحثت عن hide/deny/cmds_denied على الإصدار الرسمي 3.0.5. البوابة عبارة عن مرور واحد على رموز الفاصلة وstr_equal مقابل الفعل المكتوب بأحرف كبيرة. لا يوجد فحص ثانٍ داخل handle_rmd. لا يزال RFC 775 يشحن XRMD كـ RMD. النصيحة الشائعة هي cmds_denied=DELE,RMD. تلك السلسلة لا تذكر XRMD أبدًا.

منعطف خاطئ: التعامل مع SITE مقابل site كتجاوز. يتم تحويل الأفعال إلى أحرف كبيرة. التعامل مع cmds_allowed بالطريقة نفسها: تلك القائمة تفشل مغلقة، لذا تبقى الأسماء المستعارة غير المدرجة ممنوعة.

المختبر

cd lab
./run.sh

Loopback 127.0.0.1:18720. مشروع Compose vsftpd-cmds-denied-alias. أرشيف tarball الرسمي 3.0.5 في lab/ (SHA-256 أعلاه). cmds_denied=RMD، write_enable=YES، مجهول، الكتابة فقط تحت /incoming. الشاهد VSFTPD-CMDS-DENIED-ALIAS-WITNESS. السطر الأخير:

SUCCESS vsftpd-cmds-denied-alias rmd=550 xrmd=250 dir-gone=yes VSFTPD-CMDS-DENIED-ALIAS-WITNESS

إصلاح

ارفض الأسماء المستعارة لـ RFC عند رفض الفعل الحديث، أو طابِق الأسماء المستعارة في cmds_denied (XCWD / XMKD / XRMD / XPWD / XCUP / P@SW / EPSV / STOU / APPE). يُفضَّل استخدام cmds_allowed (قائمة السماح).

استقبال تقارير المورّدين عبر [email protected] (vsftpd). بدون مقابل. لا تفتح مشكلة عامة على GitHub في أي نسخة مرآة من vsftpd.

التواصل

Abraxas Labs - abraxaslabs.tech - github.com/abraxas - @abraxas_null - [email protected]

تنزيل الأداة