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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
vsftpd-deny-file-brace-child — vsftpd 3.0.5 - عالي - عن بُعد - بقايا صلاحيات - تجاوز deny_file لـ .private/secret | Kitploit
أدوات/GitHubGitHub/abraxas/vsftpd-deny-file-brace-child
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتأمن الشبكاتاختبار الاختراقمختبرات وتدريب عملي
GitHub
abraxas/vsftpd-deny-file-brace-child

vsftpd-deny-file-brace-child

vsftpd 3.0.5 - عالي - عن بُعد - بقايا صلاحيات - تجاوز deny_file لـ .private/secret

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - vsftpd-deny-file-brace-child

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vsftpd-deny-file-brace-child

vsftpd-deny-file-brace-child

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

vsftpd 3.0.5 - Chris Evans

مثال صفحة الدليل (vsftpd.conf.5) هو deny_file={*.mp3,*.mov,.private}. الأسماء المطابقة "يجب ألا تكون قابلة للوصول بأي شكل"، بما في ذلك "التنزيل، والدخول إلى الدليل، والتأثير على شيء داخل الدليل". تستدعي vsf_access_check_file (access.c:16-43) الدالة vsf_filename_passes_filter على مسار العميل كما هو مُعطى، ثم str_locate_str على كامل الإعداد القابل للضبط ذي الأقواس. يطابق الفلتر المكوّن الأخير / البادئة؛ يفشل المتبقي /secret؛ ويخطئ البحث الفرعي عن {*.mp3,*.mov,.private}.

يُرفض CWD .private (الاسم الأساسي يطابق). وينجح RETR .private/secret و RETR dir/.private. هذا "داخل الدليل" هو ما يكسره هذا المتبقي.

CVE-2015-1419 هو تصحيح realpath/basename خاص بتوزيعة عامة. الإصدار الرسمي 3.0.5 لم يأخذه أبدًا. لا يزال فرع الأقواس في Debian يطابق المسار الكامل، لذا يبقى هذا التجوال الفرعي قائمًا حتى على حزم التوزيعات المُرقّعة. لا تُعِد تقديم 2015-1419.

هذا المتبقي هو إخفاق في قائمة الرفض مقيّد بالإعداد. ليس RCE بدون مصادقة، وليس هروبًا من chroot، وليس قراءة /etc على المضيف.

المعرّفلا يوجد CVE بعد
الفئةصلاحية متبقية
الوصولعن بُعد (FTP مُصادَق عليه)
CWECWE-863، CWE-22
CVSSمرتفع: 7.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
المنتجvsftpd (Chris Evans)
المتأثرvsftpd 3.0.5 الحزمة الرسمية SHA-256 26b602ae454b0ba6d99ef44a09b6b9e0dfa7f67228106736df1f278c70bc91d3
المصادقةFTP USER/PASS مُصادَق عليه (مجهول في المختبر). deny_file مضبوط على قائمة أقواس (غير مضبوط افتراضيًا)
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط. مجهول للقراءة فقط. ملف شاهد.

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

من: مستخدم FTP مُصادَق عليه (مجهول ftp في المختبر). UID الجلسة بعد الإسقاط المعتاد في vsftpd. deny_file هي السياسة الإضافية التي كان يُفترض أن تسحب الصلاحيات من ذلك UID. وصفات المستخدم الافتراضي التي تذكرها صفحة الدليل تتشارك guest_username، لذا لا يفصلها DAC في Unix. الإصدار 3.0.5 الأصلي مع tunable_deny_file NULL ليس هذا المتبقي.

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

الطريقة + المخرجالصلاحية
RETR .private/secret مع deny_file={*.mp3,*.mov,.private} الموثّق بالأقواسhandle_retr str_open لملف اسم دليله على قائمة الرفض، بصلاحية uid الجلسة. المختبر: 150/226، 37 بايت، المحتوى VSFTPD-DENY-FILE-BRACE-CHILD-WITNESS
RETR dir/.privateنفس المخرج. ملف باسم .private تحت دليل آخر (must_match_at_current_pos يرفض تطابقًا عند فهرس > 0). المختبر: 150/226، المحتوى DIRDOT-VSFTPD-DENY-FILE-BRACE-CHILD-WITNESS

السلامة (مُستنتجة من نفس بوابة vsf_access_check_file؛ كان المختبر للقراءة فقط)

الطريقة + المخرجالصلاحية
STOR / APPE لنفس المسار عند write_enable=YEShandle_upload_common إنشاء / استبدال بصلاحية uid الجلسة
DELE / RNTO لنفس المسارstr_unlink / إعادة تسمية لاسم كان يُفترض أن تمنعه قائمة الرفض

الاستطلاع (مُستنتج)

الطريقة + المخرجالصلاحية
LIST .private/x (أو LIST داخل الشجرة المرفوضة)handle_dir_common يفحص الوصول للوسيط الكامل (يخطئ)، ثم str_opendir للبادئة .private بعد تقسيم الشرطة المائلة. الأسماء فقط. لا يزال DAC في Unix مطبّقًا

سلبيات مُثبتة مختبريًا (نفس التشغيل)

الطريقة + المخرجالنتيجة
CWD .private550 Permission denied. الاسم الأساسي .private يطابق الأقواس
RETR song.mp3550. *.mp3 نمط للمكوّن الأخير وهو يطابق فعلًا

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

  • الملفات التي لا يستطيع uid الجلسة فتحها في Unix
  • CWD .private نفسه (الاسم الأساسي يطابق)
  • إخفاء hide_file LIST للمُدخل (الاسم الأساسي من readdir؛ RETR لاسم مخفي موثّق كمقصود)
  • /etc على المضيف من chroot
  • HTTP بدون مصادقة (http_enable معطّل افتراضيًا؛ GET في وضع FTP يقتل الجلسة)
  • deny_file=.private بدون أقواس يُنقَذ بواسطة الاحتياط الفرعي (str_locate_str لـ .private في .private/secret)
  • تخطي تسجيل الدخول بدون مصادقة، ارتداد PORT، root، الهروب من chroot

كيف وجدته

ثبّتُّ الإصدار الرسمي vsftpd 3.0.5 (SHA-256 26b602ae...c91d3) بدلًا من نسخة GitHub أو شجرة Debian/Fedora. تسعة عشر بحثًا في المصدر. الخادم المُصرّف افتراضيًا لا يحتوي على متبقٍ حرج/مرتفع غير منشور. هذا يحتاج إلى أن ينسخ المشغّل مثال الأقواس من صفحة الدليل.

تطابق vsf_filename_passes_filter (ls.c) * / ? / {,} غير المتداخلة وتعمل بشكل مفيد فقط على نمط المكوّن الأخير. للاسم .private/secret مقابل {*.mp3,*.mov,.private}:

  1. تُطابَق بدائل الأقواس *.mp3، *.mov، .private عند بداية .private/secret. يفشل المتبقي /secret إلا إذا كانت العلامة *.
  2. يبحث الاحتياط الفرعي عن النص الحرفي {*.mp3,*.mov,.private} ويخطئ.

منعطف خاطئ منشور بالفعل: CVE-2015-1419 هو realpath خاص بالتوزيعة فقط. لا يحتوي سجل التغييرات الرسمي على مثل هذا الإصلاح. حتى فرع الأقواس في Debian ينسخ المسار المُطبّع الكامل، لذا لا يزال الأبناء يتجولون.

المختبر

cd lab
./run.sh

تحكم Loopback 127.0.0.1:18710، PASV 18711-18718. مشروع Compose vsftpd-deny-file-brace-child. حزمة 3.0.5 الرسمية، مجهول للقراءة فقط، deny_file={*.mp3,*.mov,.private}. الشاهد VSFTPD-DENY-FILE-BRACE-CHILD-WITNESS. السطر الأخير:

SUCCESS vsftpd-deny-file-brace-child cwd-dotprivate=550 retr-child=yes retr-dir-dotprivate=yes mp3=550 VSFTPD-DENY-FILE-BRACE-CHILD-WITNESS

الإصلاح

طابِق بدائل الأقواس مقابل كل مكوّن من مكوّنات المسار، أو استخدم realpath / basename قبل الفلتر (مع تحذيرات الروابط الرمزية المعتادة). يجب أن يرفض المثال الموثّق الأبناء فعلًا.

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

التواصل

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

تنزيل الأداة