
एक रूबी स्क्रिप्ट जो नेटवर्क पर कमजोर और शोषण योग्य तीसरे पक्ष के वेब अनुप्रयोगों को स्कैन करती है।
Yasuo एक रूबी स्क्रिप्ट है जो संवेदनशील तृतीय-पक्ष वेब अनुप्रयोगों को स्कैन करती है।
नेटवर्क सुरक्षा आकलन (आंतरिक, बाह्य, रेडटीम कार्य आदि) के दौरान, हम अक्सर ऐसे संवेदनशील तृतीय-पक्ष वेब अनुप्रयोगों या वेब फ्रंट-एंड का सामना करते हैं जो सार्वजनिक रूप से ज्ञात कमजोरियों का शोषण करके रिमोट सर्वर से समझौता करने की अनुमति देते हैं। कुछ सामान्य और पसंदीदा अनुप्रयोगों में Apache Tomcat प्रशासनिक इंटरफ़ेस, JBoss jmx-console, Hudson Jenkins आदि शामिल हैं।
यदि आप Exploit-db पर खोजते हैं, तो वेब अनुप्रयोगों/फ्रंट-एंड में 10,000 से अधिक दूरस्थ रूप से शोषणीय कमजोरियाँ मौजूद हैं जो एक हमलावर को बैक-एंड सर्वर से पूरी तरह समझौता करने की अनुमति दे सकती हैं। ये कमजोरियाँ RCE से लेकर दुर्भावनापूर्ण फ़ाइल अपलोड, SQL इंजेक्शन, RFI/LFI आदि तक फैली हुई हैं।
Yasuo ऐसे संवेदनशील अनुप्रयोगों के लिए नेटवर्क को तेज़ी से स्कैन करने के लिए बनाया गया है, जिससे प्वाइंटेबल लक्ष्य चाँदी की थाली में परोसे जा सकें।
आपको निम्नलिखित gems इंस्टॉल करने की आवश्यकता होगी:
bundle install --path vendor
bundler exec ./yasuo.rb -f [myfile]
Yasuo निम्नलिखित कमांड-लाइन विकल्प प्रदान करता है:
-r :: यदि आप चाहते हैं कि Yasuo पोर्ट स्कैन करे, तो इस स्विच का उपयोग IP पता या IP रेंज प्रदान करने के लिए करें
-l :: यदि आप चाहते हैं कि Yasuo पोर्ट स्कैन करे, तो इस स्विच का उपयोग इनपुट फ़ाइल प्रदान करने के लिए करें जिसमें न्यू-लाइन से अलग किए गए IP पते हों, nmap के -iL विकल्प के समान
-s :: कस्टम सिग्नेचर फ़ाइल प्रदान करें। [./yasuo.rb -s mysignatures.yaml -f nmap.xml] [डिफ़ॉल्ट - signatures.yaml]
-f :: यदि आप नहीं चाहते कि Yasuo पोर्ट स्कैन करे और आपके पास पहले से nmap का आउटपुट xml फॉर्मेट में है, तो इस स्विच का उपयोग nmap आउटपुट फ़ीड करने के लिए करें
-u :: Yasuo के पिछले रन से सहेजे गए URLs की न्यू-लाइन से अलग की गई फ़ाइल लेता है। अधिक विवरण के लिए नीचे देखें।
-n :: Yasuo को पोर्ट स्कैन करते समय होस्ट को पिंग न करने के लिए कहता है। मानक nmap विकल्प।
-p :: पोर्ट नंबर/रेंज प्रदान करने के लिए इस स्विच का उपयोग करें
-A :: सभी 65535 पोर्ट को स्कैन करने के लिए इस स्विच का उपयोग करें। मानक nmap विकल्प।
-b [all/form/basic] :: यदि खोजा गया एप्लिकेशन प्रमाणीकरण लागू करता है, तो इस स्विच का उपयोग प्रमाणीकरण को ब्रूट-फ़ोर्स करने के लिए करें। "all" फ़ॉर्म और http बेसिक दोनों तरह के auth को ब्रूट-फ़ोर्स करेगा। "form" केवल फ़ॉर्म-आधारित auth को ब्रूट-फ़ोर्स करेगा। "basic" केवल http बेसिक auth को ब्रूट-फ़ोर्स करेगा।
-t :: अधिकतम थ्रेड्स की संख्या निर्दिष्ट करें
-h :: अंदाज़ा लगाइए
जब Yasuo चलता है, तो यह संवेदनशील अनुप्रयोगों की गणना शुरू करने से पहले कई चरण करता है। यदि आप एक IP पता या रेंज प्रदान करते हैं, तो यह प्रदान किए गए लक्ष्यों के खिलाफ पोर्ट स्कैन करेगा। यदि आप Yasuo को nmap xml आउटपुट फ़ाइल प्रदान करते हैं, तो यह उस फ़ाइल को पार्स करेगा और खुले वेब पोर्ट वाले होस्ट को गिनेगा। फिर यह प्रत्येक गणना किए गए होस्ट:ip पर एक नकली (अस्तित्वहीन) फ़ाइल और निर्देशिका के लिए अनुरोध भेजता है। गलत-सकारात्मक को कम करने के लिए, यह उन सभी ip:port को हटा देता है जो नकली फ़ाइल और निर्देशिका अनुरोधों के लिए HTTP 200 Ok के साथ वापस आते हैं। इस पूरी प्रक्रिया के अंत में, हमें "अच्छे URLs" की एक सूची मिलती है। इन अच्छे URLs का उपयोग तब संवेदनशील अनुप्रयोगों की गणना के लिए किया जाता है।
यदि किसी कारण से, आपको उसी लक्ष्य सेट के खिलाफ Yasuo को फिर से चलाना है, तो Yasuo के पिछले संस्करण इस पूरी प्रक्रिया को फिर से करेंगे। यह बिल्कुल कुशल नहीं है। मुझे पता है, मैं ज्यादातर मंदबुद्धि और धीमा सीखने वाला हूं, लेकिन मैं लगातार विकसित हो रहा हूं। वैसे भी, एक ही लक्ष्य के खिलाफ Yasuo को फिर से चलाने का एक अच्छा कारण एक अलग (या कस्टम) सिग्नेचर फ़ाइल का उपयोग करना हो सकता है।
Yasuo का यह नवीनतम संस्करण स्वचालित रूप से उसी फ़ोल्डर में एक फ़ाइल, savedURLstateXXXXX.out, सहेजेगा जहां से यह चलता है। इस फ़ाइल में सभी "अच्छे URLs" होंगे। यदि आप एक ही लक्ष्य पर Yasuo को फिर से चलाने की योजना बनाते हैं, तो बस इस फ़ाइल को Yasuo को -f या -r विकल्पों के बिना फ़ीड करें।
उदाहरण: ruby yasuo.rb -s my_custom_signatures.yaml -u savedURLstateXXXXX.out
Yasuo इस फ़ाइल को पार्स करेगा और सूचीबद्ध "अच्छे URLs" के खिलाफ संवेदनशील अनुप्रयोगों की गणना शुरू करेगा। ता-दा।
./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
उपरोक्त कमांड फ़ाइल /project/hosts में होस्ट के खिलाफ पोर्ट 80, 8080, 443 और 8443 पर पोर्ट स्कैन करेगा और खोजे गए अनुप्रयोगों के खिलाफ कोई ब्रूट-फ़ोर्स कार्रवाई नहीं करेगा।
./yasuo -f my_nmap_output.xml -b all
उपरोक्त कमांड nmap आउटपुट फ़ाइल "my_nmap_output.xml" को पार्स करेगा और फ़ॉर्म-आधारित और http बेसिक प्रमाणीकरण लागू करने वाले सभी अनुप्रयोगों के लिए लॉगिन को ब्रूट-फ़ोर्स करेगा।
