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

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

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

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

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

Категории

Все категории
Loading categories
tplink-smartplug — Клиент умных розеток TP-Link WiFi и диссектор Wireshark | Kitploit
Инструменты/GitHubGitHub/softscheck/tplink-smartplug
Сниффинг и анализ пакетовИнструменты шифрования/дешифрованияБезопасность IoTАнализ уязвимостейОбратная инженерияСетевая безопасностьБезопасность беспроводных сетейБезопасность оборудования и IoTАнализ Прошивок
GitHubsoftscheck/tplink-smartplug

tplink-smartplug

Клиент умных розеток TP-Link WiFi и диссектор Wireshark

1.2k2921 год назадПроверено Kitploit

Популярное

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

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

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

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

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

TP-Link WiFi SmartPlug клиент и диссектор Wireshark

Полную историю см. в Реверс-инжиниринг TP-Link HS110

tplink_smartplug.py

Python-клиент для проприетарного протокола TP-Link Smart Home для управления WiFi-розетками TP-Link HS100, HS110 и KP115. Протокол SmartHome работает по TCP порту 9999 и использует тривиальное XOR-шифрование с автоключом, не обеспечивающее никакой безопасности.

Механизма аутентификации нет, и команды принимаются независимо от состояния устройства (настроено/не настроено).

Команды форматируются с использованием JSON, например:

{"system":{"get_sysinfo":null}}

Вместо null можно также писать {}. Команды могут быть вложенными, например:

{"system":{"get_sysinfo":null},"time":{"get_time":null}}

Полный список команд приведён в tplink-smarthome-commands.txt.

Использование

./tplink_smartplug.py -t <ip> [-c <cmd> || -j <json>]

Укажите целевой IP-адрес с помощью -t и команду для отправки с помощью -c или -j. Команды для флага -c:

Более продвинутые команды, такие как создание или изменение правил, можно отправлять с помощью флага -j, указав полную JSON-строку команды. Пожалуйста, обратитесь к tplink-smarthome-commands.txt для получения полного списка команд.

[!TIP] Для форматированного вывода ответа используйте параметр тихого режима (-q) и направьте вывод через jq. Например: ./tplink_smartplug.py -t 192.168.178.49 -c info -q | jq

Диссектор Wireshark

Диссектор Wireshark для расшифровки пакетов протокола TP-Link Smart Home (TCP-порт 9999).

ScreenShot

[!NOTE]
Если у вас Wireshark > 3.5.0, можно использовать встроенный диссектор.

Установка

Скопируйте tplink-smarthome.lua в:

OSInstallation Path
Windows%APPDATA%\Wireshark\plugins
Linux/MacOS$HOME/.local/lib/wireshark/plugins

tddp-client.py

Python-клиент уровня proof-of-concept для взаимодействия с устройством TP-Link с использованием TP-Link Device Debug Protocol (TDDP).

TDDP реализован в широком спектре устройств TP-Link, включая маршрутизаторы, точки доступа, камеры и умные розетки. TDDP может читать и записывать конфигурацию устройства и отправлять специальные команды. Для отправки команд используется UDP-порт 1040, ответы приходят на UDP-порт 61000. Этот клиент был протестирован с беспроводным маршрутизатором TP-Link Archer C9 и WiFi-розеткой TP-Link HS-110.

TDDP — это бинарный протокол, описанный в патенте CN102096654A.

Команды отправляются путём задания соответствующих значений в полях Type и SubType заголовка. Возвращаемые данные зашифрованы DES, и для их расшифровки требуются имя пользователя и пароль устройства. Аналогично, данные конфигурации для записи в устройство должны отправляться в зашифрованном виде. Ключ DES формируется путём вычисления MD5-хеша от объединённых имени пользователя и пароля, а затем берутся первые 8 байт этого MD5-хеша.

Использование

./tddp-client.py -t <ip> -u username -p password -c 0A

Укажите целевой IP-адрес с помощью -t. Вы можете указать имя пользователя и пароль, в противном случае по умолчанию используются admin/admin. Они необходимы для расшифровки возвращаемых данных.

Укажите команду в виде двухсимвольной шестнадцатеричной строки, например -c 0A. Тип данных, которые команда может считать, будет различаться для разных устройств TP-Link.

Пример

Считывание статуса WAN-подключения на Archer C9 с конфигурацией по умолчанию показывает, что соединение опущено (0):

root@kitploit:~
./tddp-client.py -t 192.168.0.1 -c 0E
Request Data: Version 02 Type 03 Status 00 Length 00000000 ID 0001 Subtype 0e
Reply Data:   Version 02 Type 03 Status 00 Length 00000018 ID 0001 Subtype 0e
Decrypted:    wan_ph_link 1 0
Скачать инструмент
CommandDescription
antitheftВыводит настроенные правила защиты от кражи
cloudinfoВозвращает информацию о подключении к облаку
countdownВыводит настроенные правила обратного отсчёта
energyВозвращает текущие напряжение/ток/мощность
energy_resetСбрасывает счётчики энергии
infoВозвращает информацию об устройстве
ledoffВыключает светодиодный индикатор
ledonВключает светодиодный индикатор
offВыключает розетку
onВключает розетку
rebootПерезагружает устройство
resetСбрасывает устройство к заводским настройкам
runtime_resetстирает статистику времени работы
scheduleВыводит настроенные правила расписания
timeВозвращает системное время
wlanscanСканирует ближайшие точки доступа