
यह स्क्रिप्ट Apache Struts 2 भेद्यता (CVE-2017-5638), जिसे Struts-Shock भी कहा जाता है, को सत्यापित करने के लिए है।
यह स्क्रिप्ट Apache Struts 2 कमजोरी (CVE-2017-5638) को मान्य करने के लिए है, जिसे Struts-Shock भी कहा जाता है। यह पूरी तरह से हानिरहित है क्योंकि यह कोई दुर्भावनापूर्ण पेलोड इंजेक्ट नहीं करता, केवल 'STRUTS2-VALIDATION' नामक एक HTTP हेडर इंजेक्ट करता है ताकि यह मान्य किया जा सके कि क्या यह असुरक्षित है।
अपनी मल्टीथ्रेड क्षमता के कारण, यह दुनिया भर में फैले 2.5k+ एप्लिकेशन को 10 मिनट से भी कम समय में चला सकता है। इसलिए, यह बड़े पैमाने पर एंटरप्राइज़ एप्लिकेशन को मान्य करने के लिए बहुत उपयोगी हो सकता है।
cve-2017-5638 असुरक्षित साइट का नमूना
यह परियोजना शैक्षिक उद्देश्य के लिए CVE-2017-5638 के शोषण को प्रदर्शित करने का लक्ष्य रखती है। अधिक जानकारी के लिए, देखें https://cwiki.apache.org/confluence/display/WW/S2-045
यह परियोजना केवल शैक्षिक और नैतिक परीक्षण उद्देश्यों के लिए बनाई गई है। पूर्व आपसी सहमति के बिना लक्ष्यों पर हमला करना अवैध है। सभी लागू स्थानीय, राज्य और संघीय कानूनों का पालन करना अंतिम उपयोगकर्ता की जिम्मेदारी है। डेवलपर्स कोई देयता नहीं मानते हैं और इस प्रोग्राम के कारण होने वाले किसी भी दुरुपयोग या क्षति के लिए जिम्मेदार नहीं हैं।
docker run -d -p 8080:8080 jrrdev/cve-2017-5638:latest
हमलावर मशीन पर शोषण स्क्रिप्ट डाउनलोड करें यहाँ
हमलावर मशीन से python शोषण स्क्रिप्ट चलाएं:
python exploit.py http://<DOCKER_HOST>:8080/hello "ls -l"
इस स्क्रिप्ट को चलाने के दो तरीके हैं, थ्रेडिंग के साथ और बिना थ्रेडिंग के, एकमात्र अंतर निष्पादन समय का होगा। थ्रेडिंग सुविधा को सक्षम करने के लिए, बस थ्रेड पैरामीटर पास करने की आवश्यकता है।
पहला पैरामीटर एक TXT फ़ाइल होना चाहिए जिसमें सभी लक्षित URL हों, प्रति पंक्ति एक। कृपया ध्यान दें कि ये URL पूर्ण होने चाहिए, उदाहरण के लिए, https://target.com/admin/myStrutsPage.action
यहाँ बिना थ्रेडिंग के उपयोग का उदाहरण है:
struts-shock-validation.py target_urls.txt
अब थ्रेड्स क्षमता का उपयोग करते हुए:
struts-shock-validation.py target_urls.txt thread
http://struts.apache.org/docs/s2-016.html https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017
Apache Struts Content-Type शोषण के लिए Metasploit Framework Exploit Module Windows सर्वर के विरुद्ध परीक्षण नहीं किया गया है लेकिन Linux सर्वर के विरुद्ध generic/shell_bind_tcp पेलोड का उपयोग करके परीक्षण किया गया है।
CVE-2017-5638 के लिए PoC कोड का उदाहरण | Apache Struts Exploit | DORK: ext:action
उपयोग: python struts.py https://victim.site dir
पोस्ट किया गया प्रारंभिक Python स्क्रिप्ट ने Content-Type हेडर को सही ढंग से स्वरूपित नहीं किया था। मैंने Content-Type हेडर को सही ढंग से स्वरूपित करने के लिए Content-Type:%20{Exploit} को पुनःकोडित किया। मैंने एक लॉगिंग और Requests भी जोड़ा, फिर Object Properties को stdout पर डंप किया।
नमूना आउटपुट
XSS.Cx द्वारा CVE-2017-5638 की जाँच करें
ड्राइव D में कोई लेबल नहीं है। वॉल्यूम सीरियल नंबर 2A7B-A245 है। d:\Program Files\Apache Software Foundation\Tomcat 9.0 की निर्देशिका
यह परियोजना Apache Struts कमजोरी के लिए एक प्रूफ-ऑफ-कॉन्सेप्ट है। लक्ष्य ऐसा सॉफ्टवेयर बनाना था जो ऊपर वर्णित कमजोरी के लिए यादृच्छिक IP उत्पन्न और परीक्षण कर सके।
इस परियोजना का उपयोग अपने जोखिम पर और केवल शैक्षिक उद्देश्य के लिए करें।
यादृच्छिक IP उत्पन्न करें और उन्हें एक टेक्स्ट फ़ाइल में सहेजें।
./get_ip.sh [Number of hosts to scan] [What port to scan] [Filename to write output]
./get_ip.sh 10000 80 output.txt
किसी विशिष्ट IP पते के लिए कमजोरी की जाँच करें।
./struts_check.sh [ip address] [port]
./struts_check.sh 127.0.0.1 80
IP पतों की सूची के लिए कमजोरी की जाँच करें।
./main.sh [Text file containing IP adresses] [Port]
./main.sh output.txt 443
Apache Struts कमजोरी पैच के बिना सर्वर पर एक कमांड निष्पादित करें
./struts_attack.sh [IP Adres] [Command]
./struts_attack.sh https://127.0.0.1 whoami
# CVE-2017-5638 Python में PoC कोड | DORK: ext:action
CVE-2017-5638 के लिए PoC कोड का उदाहरण | Apache Struts Exploit | DORK: ext:action
उपयोग: python struts.py https://victim.site dir
पोस्ट किया गया प्रारंभिक Python स्क्रिप्ट ने Content-Type हेडर को सही ढंग से स्वरूपित नहीं किया था।
मैंने Content-Type हेडर को सही ढंग से स्वरूपित करने के लिए Content-Type:%20{Exploit} को पुनःकोडित किया।
मैंने एक लॉगिंग और Requests भी जोड़ा, फिर Object Properties को stdout पर डंप किया।
नमूना आउटपुट
XSS.Cx द्वारा CVE-2017-5638 की जाँच करें
ड्राइव D में कोई लेबल नहीं है।
वॉल्यूम सीरियल नंबर 2A7B-A245 है।
d:\Program Files\Apache Software Foundation\Tomcat 9.0 की निर्देशिका
## परिणाम
यह स्वचालित रूप से results नामक एक फ़ोल्डर बनाएगा, और प्रत्येक निष्पादन पर निष्पादन परिणाम वाला एक दिनांकित फ़ोल्डर बनाएगा। यदि थ्रेडिंग सक्षम है, तो यह प्रति थ्रेड एक फ़ाइल बनाएगा जिसका नाम thread_<number> होगा, जिसे अनदेखा किया जा सकता है क्योंकि पूरा होने पर यह सभी थ्रेड्स के परिणामों को एक एकल TXT फ़ाइल में समेकित कर देगा, जिसका नाम उसके निष्पादन फ़ोल्डर के समान (दिनांक/टाइमस्टैम्प) होगा।