
نص روبي يقوم بمسح التطبيقات الويب التابعة لجهات خارجية القابلة للاستغلال والثغرات على الشبكة
ياسو هو سكربت روبي يقوم بمسح التطبيقات الويب الضعيفة من جهات خارجية.
أثناء العمل في تقييم أمن الشبكات (داخلي، خارجي، مهام فريق الأحمر، إلخ)، غالبًا ما نصادف تطبيقات ويب ضعيفة من جهات خارجية أو واجهات أمامية للويب تسمح لنا باختراق الخادم البعيد عن طريق استغلال ثغرات معروفة للجمهور. بعض التطبيقات الشائعة والمفضلة هي واجهة إدارة Apache Tomcat و JBoss jmx-console و Hudson Jenkins وهكذا.
إذا بحثت في Exploit-db، ستجد أكثر من 10,000 ثغرة قابلة للاستغلال عن بُعد موجودة في العديد من تطبيقات/واجهات الويب، والتي يمكن أن تسمح للمهاجم باختراق الخادم الخلفي بالكامل. تتراوح هذه الثغرات من RCE إلى رفع الملفات الخبيثة إلى SQL injection إلى RFI/LFI إلخ.
تم بناء ياسو لمسح الشبكة بسرعة بحثًا عن مثل هذه التطبيقات الضعيفة، وبالتالي تقديم أهداف قابلة للاختراق على طبق من فضة.
ستحتاج إلى تثبيت الجواهر التالية:
bundle install --path vendor
bundler exec ./yasuo.rb -f [myfile]
يوفر ياسو الخيارات التالية لسطر الأوامر:
-r :: إذا كنت تريد من ياسو إجراء مسح للمنافذ، استخدم هذا المفتاح لتوفير عنوان IP أو نطاق IP
-l :: إذا كنت تريد من ياسو إجراء مسح للمنافذ، استخدم هذا المفتاح لتوفير ملف إدخال يحتوي على عناوين IP مفصولة بأسطر جديدة، مشابه لخيار -iL في nmap
-s :: قم بتوفير ملف توقيع مخصص. [./yasuo.rb -s mysignatures.yaml -f nmap.xml] [الافتراضي - signatures.yaml]
-f :: إذا كنت لا تريد من ياسو إجراء مسح للمنافذ وكان لديك بالفعل مخرجات nmap بصيغة xml، استخدم هذا المفتاح لتغذية ياسو بمخرجات nmap
-u :: يأخذ ملفًا مفصولًا بأسطر جديدة لعناوين URL المحفوظة من تشغيل سابق لياسو. انظر أدناه لمزيد من التفاصيل.
-n :: يخبر ياسو بعدم إجراء ping للمضيف أثناء إجراء مسح المنافذ. خيار nmap قياسي.
-p :: استخدم هذا المفتاح لتوفير رقم/أرقام المنفذ أو النطاق
-A :: استخدم هذا المفتاح لمسح جميع المنافذ الـ 65535. خيار nmap قياسي.
-b [all/form/basic] :: إذا كان التطبيق المكتشف يطبق مصادقة، استخدم هذا المفتاح لتنفيذ هجوم القوة العمياء على المصادقة. "all" سيهاجم كلاً من المصادقة المستندة إلى النموذج والمصادقة الأساسية HTTP. "form" سيهاجم فقط المصادقة المستندة إلى النموذج. "basic" سيهاجم فقط المصادقة الأساسية HTTP.
-t :: حدد الحد الأقصى لعدد الخيوط
-h :: حسنًا، خمن
عند تشغيل ياسو، يقوم بعدة خطوات قبل البدء في تعداد التطبيقات الضعيفة. إذا قمت بتوفير عنوان IP أو نطاق، فسيقوم بإجراء مسح للمنافذ ضد الأهداف المقدمة. إذا قمت بتوفير ملف مخرجات nmap بصيغة xml لياسو، فسيقوم بتحليل هذا الملف وتعداد المضيفين مع منافذ ويب مفتوحة. ثم يرسل طلبًا لملف ودليل وهمي (غير موجود) إلى كل host:ip تم تعداده. لتقليل النتائج الإيجابية الخاطئة، يتجاهل جميع ip:port التي تستجيب بـ HTTP 200 Ok لطلبات الملف والدليل الوهمي. في نهاية هذه العملية بأكملها، نحصل على قائمة، دعنا نقول، "عناوين URL جيدة". ثم تُستخدم عناوين URL الجيدة هذه لتعداد التطبيقات الضعيفة.
إذا اضطررت لسبب ما إلى إعادة تشغيل ياسو ضد نفس مجموعة الأهداف، فإن الإصدارات السابقة من ياسو ستخوض هذه العملية بأكملها مرة أخرى. هذا ليس فعالًا على الإطلاق. أعلم، أنا في الغالب غبي وبطيء التعلم لكني أتطور باستمرار. على أي حال، السبب الجيد لإعادة تشغيل ياسو ضد نفس الأهداف قد يكون استخدام ملف توقيع مختلف (أو مخصص).
سيحفظ هذا الإصدار الأخير من ياسو تلقائيًا ملفًا، savedURLstateXXXXX.out، في نفس المجلد الذي يتم تشغيله منه. سيحتوي هذا الملف على جميع "عناوين URL الجيدة". إذا كنت تخطط لإعادة تشغيل ياسو على نفس الأهداف، فقط قم بتغذية هذا الملف إلى ياسو بدون الخيارات -f أو -r.
Example: ruby yasuo.rb -s my_custom_signatures.yaml -u savedURLstateXXXXX.out
سيقوم ياسو بتحليل هذا الملف والبدء في تعداد التطبيقات الضعيفة ضد "عناوين URL الجيدة" المدرجة. هكذا.
./yasuo -r 127.0.0.1 -p 80,8080,443,8443 -b form
سيقوم الأمر أعلاه بإجراء مسح للمنافذ ضد 127.0.0.1 على المنافذ 80 و8080 و443 و8443 وسيهاجم بقوة تسجيل الدخول لجميع التطبيقات التي تطبق مصادقة مستندة إلى النموذج.
./yasuo -l /project/hosts -p 80,8080,443,8443
سيقوم الأمر أعلاه بإجراء مسح للمنافذ ضد المضيفين في الملف /projetcs/hosts على المنافذ 80 و8080 و443 و8443 ولن يقوم بأي إجراءات هجوم قوة عمياء ضد التطبيقات المكتشفة.
./yasuo -f my_nmap_output.xml -b all
سيقوم الأمر أعلاه بتحليل ملف مخرجات nmap "my_nmap_output.xml" وسيهاجم بقوة تسجيل الدخول لجميع التطبيقات التي تطبق المصادقة المستندة إلى النموذج والمصادقة الأساسية HTTP.
