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.

عرض المستودع
41منذ 6 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2017-12945

استغلال لـ CVE-2017-12945

توجد ثغرة أمان من نوع حقن أوامر نظام التشغيل (عن بُعد) (مُوثَّقة) (عمياء) في أجهزة Mersive Solstice Pods - وهي منصة تعاون وعرض لاسلكية صممتها شركة Mersive Technologies Inc. - التي تعمل بإصدارات من البرامج الثابتة أقدم من 2.8.4، كما تم الإقرار بها/الإبلاغ عنها على موقع البائع، انظر لقطة الشاشة أدناه. ونتيجة لذلك، يمكن للمهاجم المُوثَّق تشغيل أوامر عشوائية (بامتيازات الجذر) على أجهزة Mersive Solstice Pods الضعيفة عن طريق إرسال طلبات HTTP مصممة خصيصًا لها.

changelog

توجد هذه الثغرة بسبب عدم التحقق من صحة المدخلات/المعلمات من جانب الخادم. يتم تمرير بعض المدخلات/المعلمات التي يتحكم بها المستخدم مباشرةً كوسائط إلى طريقة public static String runShellCommand(String command) المصممة لتنفيذ أوامر نظام التشغيل ضمن سياق المستخدم الجذر. قد يسمح هذا التكوين غير الآمن للمهاجم باختراق الأجهزة الضعيفة بالكامل.

المراجع

مرجع 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). يمكن إرسال هذا الطلب إما مباشرةً من واجهة الويب للجهاز (من نموذج "تعيين عنوان IP ثابت") نفسه، أو بدلاً من ذلك، يمكن إرساله باستخدام أداة سطر أوامر مثل cURL.

في كلتا الحالتين، يجب أن يسبق الحمولة حرف خاص يوجه /bin/sh لتشغيل أوامر متتالية، مثل الحرف ; أو &، حتى يتم تنفيذ الحمولة بعد اكتمال الأمر الأصلي/الشرعي.

المعامل staticIP وهو أحد المعاملات الضعيفة المتعددة إلى جانب المعامل gateway لا يتم التحقق من صحته من جانب الخادم ويتم تمريره مباشرةً كوسيطة إلى طريقة static void SetStaticIP(String ipAddr) التي بدورها تمرره كوسيطة إلى طريقة public static String runShellCommand(String command).

يسمح هذا التكوين للمهاجم المُوثَّق بتشغيل أوامر عشوائية على الأجهزة الضعيفة ضمن سياق المستخدم الجذر.

الترخيص

Copyright (C) 2019 Alexandre Teyar

مرخص بموجب ترخيص Apache، الإصدار 2.0 (الترخيص)؛ لا يجوز لك استخدام هذا الملف إلا بما يتوافق مع الترخيص. يمكنك الحصول على نسخة من الترخيص على

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

ما لم يقتض القانون المعمول به أو يتم الاتفاق عليه كتابيًا، يتم توزيع البرنامج بموجب الترخيص على أساس "كما هو"، دون أي ضمانات أو شروط من أي نوع، سواء كانت صريحة أو ضمنية. راجع الترخيص للحصول على الأذونات والقيود المحددة التي تحكم استخدامك للبرنامج.

تنزيل الأداة