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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
vsftpd-ssl-data-any-ticket — vsftpd 3.0.5 - عالي - عن بُعد - بقايا صلاحيات - بيانات FTPS تقبل أي تذكرة مستأنفة | Kitploit
أدوات/GitHubGitHub/abraxas/vsftpd-ssl-data-any-ticket
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الشبكاتالتشفيراختبار الاختراقالأوراق والأبحاثمختبرات وتدريب عملي
GitHub
abraxas/vsftpd-ssl-data-any-ticket

vsftpd-ssl-data-any-ticket

vsftpd 3.0.5 - عالي - عن بُعد - بقايا صلاحيات - بيانات FTPS تقبل أي تذكرة مستأنفة

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - vsftpd-ssl-data-any-ticket

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vsftpd-ssl-data-any-ticket

vsftpd-ssl-data-any-ticket

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

vsftpd 3.0.5 (Chris Evans) - ملف tarball الرسمي SHA-256 26b602ae454b0ba6d99ef44a09b6b9e0dfa7f67228106736df1f278c70bc91d3. تُصرّف توزيعات FTPS مع #define VSF_BUILD_SSL (بينما tarball الأصلي #undef) ويضبط المشغّلون ssl_enable=YES. الوضع المستقل listen=YES هو الافتراضي المُصرّف والنموذجي.

ssl_accept (ssl.c:494-501) هو نقطة ربط قناة البيانات. يتحقق فقط من SSL_session_reused(). لا يوجد مقارنة SSL_SESSION مع SSL قناة التحكم. لا يوجد FTP USER/PASS في SSL البيانات. يعمل ssl_init المستقل في المستمع قبل fork (main.c:147-150)، لذا ترث العمليات الفرعية SSL_CTX واحدًا. SSL_CTX_set_timeout(INT_MAX) (ssl.c:182-186). لا يوجد SSL_OP_NO_TICKET. تعني SSL_session_reused()==1 أن هذا ClientHello حمل تذكرة يمكن لهذه العملية فك تشفيرها، وليس أنها جلسة تحكم Alice.

تقول صفحة الدليل الخاصة بـ require_ssl_reuse إن إعادة الاستخدام تُثبت نفس المفتاح الرئيسي لقناة التحكم. لكن كود C لا يفعل ذلك. يختلف هذا عن إصلاح Tim Kosse في 3.0.3 الذي يقتل عند فشل إعادة الاستخدام (ftpdataio.c:184-187)، والذي لا يزال يُرجع 522 لمصافحة جديدة ولا يمنع Mallory من استئناف تذكرة صادرة على قناة تحكم مختلفة.

هذه الصلاحية المتبقية هي نقل FTPS واحد. ليست تجاوزًا لـ USER/PASS، وليست shell، وليست هروبًا من chroot.

المعرّفلا يوجد CVE بعد
التصنيفصلاحية متبقية (بيانات FTPS تقبل أي تذكرة مستأنفة)
الوصولعن بُعد (PASV من نفس IP؛ NAT المشترك هو AC:H)
CWECWE-345، CWE-287
CVSSمرتفع: 7.4 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
المنتجvsftpd (Chris Evans)
المتأثر3.0.5 مع VSF_BUILD_SSL و ssl_enable=YES. require_ssl_reuse=YES (افتراضي). require_cert=NO (افتراضي)
المصادقةMallory: AUTH TLS فقط (بدون USER/PASS). Alice: anonymous PBSZ/PROT P
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:18700 للتحكم، PASV 18701-18708. Compose vsftpd-ssl-data-any-ticket

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

من: عميل FTPS آخر (أو على المسار) يشارك عنوان IP المصدر الخاص بـ Alice. لا يزال accept في PASV يتطلب IP نظير التحكم (privops.c:212-218) ما لم يكن pasv_promiscuous. NAT المشترك هو الحالة المعتادة في FTPS التي أُضيف require_ssl_reuse لإيقافها. لا يسجّل Mallory الدخول أبدًا.

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

الطريقة + الهدفالصلاحية
Mallory AUTH TLS فقط، TLS 1.2 ALPN ftp، يحتفظ بتذكرة الجلسة من SSL_CTX الخاص بالمستمع. Alice anonymous PBSZ/PROT P، PASV، RETR secret.txt محجوب في get_remote_transfer_fd حتى accept. Mallory PASV من نفس IP، يستأنف تذكرته (session_reused=True)فك تشفير عملية RETR تلك. المختبر: مقبس البيانات 35 بايت VSFTPD-SSL-DATA-ANY-TICKET-WITNESS. Alice 150 ثم 226. يبقى TLS التحكم وكلمة المرور ملكًا لـ Alice. لا تجوال في الأدلة بعد ذلك النقل.

السلامة (مستنتجة من نفس بوابة ssl_accept؛ المختبر كان سرقة RETR)

الطريقة + الهدفالصلاحية
استئناف نفس التذكرة أثناء STOR / APPE من Aliceيُكتب ملف Alice المسمّى من النص الصريح لـ TLS الخاص بـ Mallory، بصلاحية uid الخاص بـ Alice / uid ftp المجهول، داخل chroot القائم

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

الطريقة + الهدفالصلاحية
مصافحة بيانات جديدة (reused=False)522 session reuse required (قتل 3.0.3). يموت ذلك النقل. يبقى التحكم ملكًا لـ Alice

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

  • PASV من IP مختلف (privops.c:212-218)
  • المصافحة الجديدة لا تزال 522
  • require_cert=YES مع شهادة مقدَّمة تربط ملخصات SHA-256
  • تجاوز USER/PASS
  • Shell
  • عملية أب ذات صلاحيات على زوج SSL
  • PROT C بنص صريح للمستخدمين المحليين (force_local_data_ssl افتراضي YES)
  • مشاركة مفتاح التذكرة لكل اتصال عبر inetd (لا وراثة ssl_init من المستمع)
  • ALPN غير ftp (vsftpd يُصدر FATAL)

كيف وجدته

ثبّتت tarball vsftpd 3.0.5 الرسمي بدلًا من نسخة GitHub أو شجرة Debian/Fedora. تسعة عشر بحثًا في المصدر. توقف بحث SSL عند ssl_accept: إعادة الاستخدام قيمة منطقية، وليست ربطًا بـ SSL_SESSION الخاص بقناة التحكم هذه. SSL_CTX الخاص بالمستمع مع عمر تذكرة INT_MAX هو الباقي.

مسارات خاطئة: يجب أن يكون ALPN هو ftp وإلا يُصدر vsftpd FATAL (صلاحية ALPACA المتبقية في 3.0.4 مغلقة بالفعل). احتاج ربط Arm64 إلى -lpam -lcap صراحةً؛ فسكربت vsf_findlibs.sh الأصلي يفحص مسارات x86_64 فقط. اعتبار قتل Tim Kosse في 3.0.3 هو هذا الخطأ: فهو يُرجع 522 لمصافحة جديدة على مقبس بيانات Alice ولا يمنع تذكرة صادرة على قناة تحكم مختلفة.

المختبر

cd lab
./run.sh

3.0.5 الرسمي مع #define VSF_BUILD_SSL. الإعداد: ssl_enable=YES، allow_anon_ssl=YES، force_anon_logins_ssl=YES، force_anon_data_ssl=YES، require_ssl_reuse=YES، require_cert=NO. Docker على loopback. عميلان من نفس IP. تذاكر TLS 1.2. ALPN ftp. التحكم 127.0.0.1:18700، PASV 18701-18708. Compose vsftpd-ssl-data-any-ticket. الشاهد VSFTPD-SSL-DATA-ANY-TICKET-WITNESS. السطر الأخير:

SUCCESS vsftpd-ssl-data-any-ticket reused-ticket=yes fresh-handshake=522 VSFTPD-SSL-DATA-ANY-TICKET-WITNESS

الإصلاح

اربط SSL_SESSION للبيانات بـ SSL_SESSION للتحكم (قارن معرّفات الجلسة / المفتاح الرئيسي). حدّد عمر التذكرة بعمر اتصال التحكم. أو SSL_OP_NO_TICKET مع ذاكرة تخزين مؤقت للجلسات مفهرسة حسب التحكم. يقارن ProFTPD 1.3.9d الجلسات.

استقبال المورّد هو [email protected] (security.appspot.com/vsftpd.html). لا تفتح issue عامًا على GitHub في أي نسخة من vsftpd.

التواصل

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

تنزيل الأداة