Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
tplink-smartplug — TP-Link WiFi 智能插座客户端和 Wireshark 解析器 | Kitploit
工具/GitHubGitHub/softscheck/tplink-smartplug
数据包嗅探与分析加密/解密工具物联网安全漏洞分析逆向工程网络安全无线安全硬件与物联网安全固件分析
GitHubsoftscheck/tplink-smartplug

tplink-smartplug

TP-Link WiFi 智能插座客户端和 Wireshark 解析器

1.2k292381年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
分享

TP-Link WiFi 智能插头客户端与 Wireshark 解析器

更多详情请参阅 TP-Link HS110 逆向工程

tplink_smartplug.py

用于 TP-Link Smart Home 专有协议的 Python 客户端,可控制 TP-Link HS100、HS110 和 KP115 WiFi 智能插头。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>]

使用 -t 指定目标 IP,并使用 -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 解析器

用于解密 TP-Link Smart Home 协议数据包(TCP 端口 9999)的 Wireshark 解析器。

截图

[!NOTE]
如果你使用的是 Wireshark > 3.5.0,则可以使用内置解析器。

安装

将 tplink-smarthome.lua 复制到:

OS安装路径
Windows%APPDATA%\Wireshark\plugins
Linux/MacOS$HOME/.local/lib/wireshark/plugins

tddp-client.py

一个概念验证 Python 客户端,使用 TP-Link 设备调试协议 (TDDP) 与 TP-Link 设备通信。

TDDP 在众多 TP-Link 设备上均有实现,包括路由器、接入点、摄像头和智能插头。TDDP 可以读写设备配置并发出特殊命令。UDP 端口 1040 用于发送命令,回复通过 UDP 端口 61000 返回。该客户端已在 TP-Link Archer C9 无线路由器和 TP-Link HS-110 WiFi 智能插头上进行了测试。

TDDP 是一种二进制协议,记载于专利 CN102096654A 中。

命令通过设置 Type 和 SubType 头字段中的相应值来发出。返回的数据经 DES 加密,需要使用设备的用户名和密码才能解密。同样,要写入设备的配置数据也需要加密发送。DES 密钥的构造方式为:先计算用户名和密码拼接后的 MD5 哈希,然后取该 MD5 哈希的前 8 个字节。

用法

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

使用 -t 指定目标 IP。你也可以提供用户名和密码,否则默认使用 admin/admin。它们是解密返回数据所必需的。

以两位十六进制字符串的形式提供命令,例如 -c 0A。命令可能读出的数据类型因不同 TP-Link 设备而异。

示例

在默认配置的 Archer C9 上读取 WAN 链路状态,显示链路为断开 (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关闭 LED 指示灯
ledon开启 LED 指示灯
off关闭插头
on开启插头
reboot重启设备
reset将设备重置为出厂设置
runtime_reset清除运行统计数据
schedule列出已配置的定时规则
time返回系统时间
wlanscan扫描附近的接入点