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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cve-2017-12945 — CVE-2017-12945 के लिए एक्सप्लॉइट। | Kitploit
उपकरण/GitHubGitHub/aress31/cve-2017-12945
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलरिमोट एक्सेस टूल
GitHubaress31/cve-2017-12945

cve-2017-12945

CVE-2017-12945 के लिए एक्सप्लॉइट।

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

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

सभी देखें →

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

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

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

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

CVE-2017-12945

CVE-2017-12945 के लिए शोषण

Mersive Solstice Pods में एक (रिमोट) (प्रमाणित) (ब्लाइंड) OS कमांड इंजेक्शन कमजोरी मौजूद है - जो Mersive Technologies Inc. द्वारा डिज़ाइन किया गया एक वायरलेस सहयोग और प्रस्तुति प्लेटफ़ॉर्म है - जो 2.8.4 से पहले के फर्मवेयर संस्करणों पर चलता है, जैसा कि विक्रेता की वेबसाइट पर स्वीकार/रिपोर्ट किया गया है, नीचे स्क्रीनशॉट देखें। परिणामस्वरूप, एक प्रमाणित हमलावर उन्हें क्राफ्टेड HTTP अनुरोध भेजकर कमजोर Mersive Solstice Pods पर मनमानी कमांड (रूट विशेषाधिकारों के साथ) चला सकता है।

changelog

यह कमजोरी सर्वर-साइड इनपुट/पैरामीटर सत्यापन की कमी के कारण मौजूद है। कुछ उपयोगकर्ता-नियंत्रित इनपुट/पैरामीटर सीधे public static String runShellCommand(String command) विधि में तर्क के रूप में पास किए जाते हैं, जिसे रूट उपयोगकर्ता के संदर्भ में OS कमांड निष्पादित करने के लिए डिज़ाइन किया गया है। यह असुरक्षित कॉन्फ़िगरेशन एक हमलावर को कमजोर उपकरणों से पूरी तरह समझौता करने की अनुमति देगा।

संदर्भ

Mitre CVE संदर्भ:

  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12945

विक्रेता परिवर्तन लॉग:

  • https://documentation.mersive.com/content/pages/release-notes.htm

प्रभावित संस्करण

Mersive Solstice Pods 2.8.4 से पहले के फर्मवेयर संस्करणों पर चल रहे हैं।

प्रभावित घटक

  • com/mersive/solstice/server/EthernetInterface.java:
root@kitploit:~
static void SetPrefixLength(int prefixLength) {
    int value = -1 << (32 - prefixLength);
    try {
        Log.d("Ethernet", "complete: " + ServerDisplay.runShellCommand("ifconfig eth0 netmask " + InetAddress.getByAddress(new byte[]{(byte) (value >>> 24), (byte) ((value >> 16) & 255), (byte) ((value >> 8) & 255), (byte) (value & 255)}).getHostAddress()));
    } catch (Exception e) {
        e.printStackTrace();
    }
}

static void SetGateway(String gateway) {
    if (!gateway.equals(GetGateway())) {
        Log.d("Ethernet", "complete: " + ServerDisplay.runShellCommand("ip route del default"));
        Log.d("Ethernet", "complete: " + ServerDisplay.runShellCommand("ip route add default via " + gateway + " dev " + ETH0));
    }
}

static void SetStaticIP(String ipAddr) {
    Log.d("Ethernet", "complete: " + ServerDisplay.runShellCommand("ifconfig eth0 " + ipAddr));
}
  • com/mersive/solstice/server/ServerDisplay.java:
root@kitploit:~
public static String runShellCommand(String command) {
   return runShellCommand(command, true);
}

public static String runShellCommand(String command, boolean wait) {
   Log.d("Shell Command", command);
   try {
       Process process = Runtime.getRuntime().exec("shell-tunnel --client");
       DataOutputStream stdin = new DataOutputStream(process.getOutputStream());
       InputStream is = process.getInputStream();
       stdin.writeBytes(command + "\n");
       stdin.flush();
       stdin.writeBytes("exit\n");
       stdin.flush();
       if (wait) {
           process.waitFor();
       }
       byte[] buffer = new byte[1024];
       Arrays.fill(buffer, 0);
       return new String(buffer, 0, is.read(buffer));
   } catch (Exception e) {
       e.printStackTrace();
       return "";
   }
}

हमले के वेक्टर

इस कमजोरी का फायदा उठाने के लिए, एक प्रमाणित हमलावर को कमजोर फर्मवेयर संस्करण (2.8.4 से पहले) चलाने वाले उपकरणों को एक विशेष रूप से तैयार अनुरोध भेजने की आवश्यकता होगी। यह अनुरोध या तो सीधे डिवाइस वेब इंटरफ़ेस (set static IP address फॉर्म) से भेजा जा सकता है, या वैकल्पिक रूप से, इसे cURL जैसी कमांड लाइन उपयोगिता का उपयोग करके भेजा जा सकता है।

किसी भी स्थिति में, पेलोड को एक विशेष वर्ण से पहले होना चाहिए जो /bin/sh को लगातार कमांड चलाने का निर्देश देता है, जैसे कि ; या & वर्ण, मूल/वैध कमांड के पूरा होने के बाद पेलोड को निष्पादित करने के लिए।

staticIP पैरामीटर, जो gateway पैरामीटर के साथ कई कमजोर पैरामीटरों में से एक है, सर्वर-साइड पर मान्य नहीं किया जाता है और इसके बजाय सीधे static void SetStaticIP(String ipAddr) विधि में तर्क के रूप में पास किया जाता है, जो बदले में इसे public static String runShellCommand(String command) विधि में तर्क के रूप में पास करता है।

यह कॉन्फ़िगरेशन एक प्रमाणित हमलावर को रूट उपयोगकर्ता के संदर्भ में कमजोर उपकरणों पर मनमानी कमांड चलाने की अनुमति देगा।

लाइसेंस

Copyright (C) 2019 Alexandre Teyar

Apache License, Version 2.0 ("लाइसेंस") के तहत लाइसेंस प्राप्त; आप इस फ़ाइल का उपयोग केवल लाइसेंस के अनुपालन में कर सकते हैं। आप लाइसेंस की एक प्रति प्राप्त कर सकते हैं:

http://www.apache.org/licenses/LICENSE-2.0

जब तक लागू कानून द्वारा आवश्यक न हो या लिखित रूप में सहमत न हो, लाइसेंस के तहत वितरित सॉफ़्टवेयर "जैसा है" आधार पर वितरित किया जाता है, बिना किसी प्रकार की स्पष्ट या निहित वारंटी या शर्तों के। विशिष्ट अनुमतियों और सीमाओं के लिए लाइसेंस देखें। limitations under the License.

टूल डाउनलोड करें