Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
tplink-smartplug — Cliente de TP-Link WiFi SmartPlug y disector de Wireshark | Kitploit
Herramientas/GitHubGitHub/softscheck/tplink-smartplug
Sniffing y Análisis de PaquetesHerramientas de Cifrado/DescifradoSeguridad IoTAnálisis de VulnerabilidadesIngeniería InversaSeguridad de RedesSeguridad InalámbricaSeguridad de Hardware e IoTAnálisis de Firmware
GitHubsoftscheck/tplink-smartplug

tplink-smartplug

Cliente de TP-Link WiFi SmartPlug y disector de Wireshark

1.2k292hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

Cliente para TP-Link WiFi SmartPlug y disector de Wireshark

Para conocer la historia completa, consulta Ingeniería inversa del TP-Link HS110

tplink_smartplug.py

Un cliente Python para el protocolo propietario Smart Home de TP-Link que permite controlar los enchufes inteligentes WiFi TP-Link HS100, HS110 y KP115. El protocolo SmartHome se ejecuta en el puerto TCP 9999 y utiliza un cifrado trivial XOR autoclave que no proporciona ninguna seguridad.

No existe ningún mecanismo de autenticación y los comandos se aceptan independientemente del estado del dispositivo (configurado/no configurado).

Los comandos tienen formato JSON, por ejemplo:

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

En lugar de null también podemos escribir {}. Los comandos se pueden anidar, por ejemplo:

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

En tplink-smarthome-commands.txt se proporciona una lista completa de comandos.

Uso

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

Proporciona la IP de destino usando -t y un comando para enviar mediante -c o -j. Comandos para la opción -c:

Los comandos más avanzados, como crear o editar reglas, se pueden enviar usando la opción -j proporcionando la cadena JSON completa del comando. Consulta tplink-smarthome-commands.txt para obtener una lista completa de comandos.

[!TIP] Para imprimir la respuesta de forma legible, usa el parámetro silencioso (-q) y canaliza la salida mediante jq. Por ejemplo: ./tplink_smartplug.py -t 192.168.178.49 -c info -q | jq

Disector de Wireshark

Disector de Wireshark para descifrar los paquetes del protocolo Smart Home de TP-Link (puerto TCP 9999).

ScreenShot

[!NOTE]
Si tienes Wireshark > 3.5.0, puedes usar el disector integrado.

Instalación

Copia tplink-smarthome.lua en:

SORuta de instalación
Windows%APPDATA%\Wireshark\plugins
Linux/MacOS$HOME/.local/lib/wireshark/plugins

tddp-client.py

Un cliente Python de prueba de concepto para comunicarse con un dispositivo TP-Link mediante el Protocolo de depuración de dispositivos TP-Link (TDDP).

TDDP está implementado en una amplia gama de dispositivos TP-Link, incluidos routers, puntos de acceso, cámaras y enchufes inteligentes. TDDP puede leer y escribir la configuración de un dispositivo y emitir comandos especiales. El puerto UDP 1040 se usa para enviar comandos; las respuestas llegan por el puerto UDP 61000. Este cliente se ha probado con un router inalámbrico TP-Link Archer C9 y un enchufe inteligente WiFi TP-Link HS-110.

TDDP es un protocolo binario documentado en la patente CN102096654A.

Los comandos se emiten estableciendo los valores adecuados en los campos de cabecera Type y SubType. Los datos se devuelven cifrados con DES y requieren el nombre de usuario y la contraseña del dispositivo para descifrarse. Asimismo, los datos de configuración que se van a escribir en el dispositivo deben enviarse cifrados. La clave DES se construye tomando el hash MD5 del nombre de usuario y la contraseña concatenados y luego tomando los primeros 8 bytes de ese hash MD5.

Uso

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

Proporciona la IP de destino usando -t. Puedes proporcionar un nombre de usuario y una contraseña; de lo contrario, se usa admin/admin como valor predeterminado. Son necesarios para descifrar los datos devueltos.

Proporciona el comando como una cadena hexadecimal de dos caracteres, p. ej. -c 0A. El tipo de datos que puede leer un comando variará según los distintos dispositivos TP-Link.

Ejemplo

Leyendo el estado del enlace WAN en un Archer C9 en la configuración predeterminada se muestra que el enlace está caído (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
Descargar herramienta
CommandDescription
antitheftLista las reglas de antitheft configuradas
cloudinfoDevuelve información de conectividad a la nube
countdownLista las reglas de cuenta atrás configuradas
energyDevuelve voltaje/corriente/potencia en tiempo real
energy_resetReinicia los medidores de energía
infoDevuelve información del dispositivo
ledoffApaga el indicador LED
ledonEnciende el indicador LED
offApaga el enchufe
onEnciende el enchufe
rebootReinicia el dispositivo
resetRestablece el dispositivo a los ajustes de fábrica
runtime_resetBorra las estadísticas de ejecución
scheduleLista las reglas de programación configuradas
timeDevuelve la hora del sistema
wlanscanEscanea los puntos de acceso cercanos