Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
tplink-smartplug — Cliente TP-Link WiFi SmartPlug e Dissector Wireshark | Kitploit
Ferramentas/GitHubGitHub/softscheck/tplink-smartplug
Sniffing e Análise de PacotesFerramentas de Criptografia/DescriptografiaSegurança IoTAnálise de VulnerabilidadesEngenharia ReversaSegurança de RedeSegurança Sem FioSegurança de Hardware e IoTAnálise de Firmware
GitHubsoftscheck/tplink-smartplug

tplink-smartplug

Cliente TP-Link WiFi SmartPlug e Dissector Wireshark

1.2k292há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório

Cliente TP-Link WiFi SmartPlug e Dissector do Wireshark

Para a história completa, consulte Reverse Engineering the TP-Link HS110

tplink_smartplug.py

Um cliente Python para o protocolo proprietário TP-Link Smart Home para controlar tomadas inteligentes WiFi TP-Link HS100, HS110 e KP115. O protocolo SmartHome roda na porta TCP 9999 e usa uma criptografia XOR autokey trivial que não fornece segurança.

Não há mecanismo de autenticação e os comandos são aceitos independentemente do estado do dispositivo (configurado/não configurado).

Os comandos são formatados usando JSON, por exemplo:

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

Em vez de null também podemos escrever {}. Os comandos podem ser aninhados, por exemplo:

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

Uma lista completa de comandos é fornecida em tplink-smarthome-commands.txt.

Uso

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

Forneça o IP de destino usando -t e um comando para enviar usando -c ou -j. Comandos para a opção -c:

Comandos mais avançados, como criar ou editar regras, podem ser emitidos usando a opção -j, fornecendo a string JSON completa para o comando. Consulte tplink-smarthome-commands.txt para uma lista abrangente de comandos.

[!TIP] Para exibir a resposta de forma organizada, use o parâmetro quiet (-q) e canalize a saída pelo jq. Por exemplo: ./tplink_smartplug.py -t 192.168.178.49 -c info -q | jq

Dissector do Wireshark

Dissector do Wireshark para descriptografar pacotes do protocolo TP-Link Smart Home (porta TCP 9999).

ScreenShot

[!NOTE]
Se você tiver Wireshark > 3.5.0, poderá usar o dissector integrado.

Instalação

Copie tplink-smarthome.lua para:

SOCaminho de Instalação
Windows%APPDATA%\Wireshark\plugins
Linux/MacOS$HOME/.local/lib/wireshark/plugins

tddp-client.py

Um cliente Python de prova de conceito para falar com um dispositivo TP-Link usando o TP-Link Device Debug Protocol (TDDP).

O TDDP é implementado em uma ampla gama de dispositivos TP-Link, incluindo roteadores, pontos de acesso, câmeras e smart plugs. O TDDP pode ler e gravar a configuração de um dispositivo e emitir comandos especiais. A porta UDP 1040 é usada para enviar comandos; as respostas retornam na porta UDP 61000. Este cliente foi testado com um roteador sem fio TP-Link Archer C9 e uma tomada inteligente WiFi TP-Link HS-110.

O TDDP é um protocolo binário documentado na patente CN102096654A.

Os comandos são emitidos definindo os valores apropriados nos campos de cabeçalho Type e SubType Os dados são retornados criptografados com DES e exigem o nome de usuário e a senha do dispositivo para serem descriptografados. Da mesma forma, os dados de configuração a serem gravados no dispositivo precisam ser enviados criptografados. A chave DES é construída obtendo-se o hash MD5 do nome de usuário e da senha concatenados e, em seguida, pegando os primeiros 8 bytes do hash MD5.

Uso

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

Forneça o IP de destino usando -t. Você pode fornecer um nome de usuário e senha; caso contrário, admin/admin é usado como padrão. Eles são necessários para descriptografar os dados retornados.

Forneça o comando como uma string hexadecimal de dois caracteres, ex.: -c 0A. O tipo de dados que um comando pode ler será diferente para vários dispositivos TP-Link.

Exemplo

A leitura do status do link WAN em um Archer C9 na configuração padrão mostra que o link está inativo (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
Baixar ferramenta
ComandoDescrição
antitheftLista regras de antifurto configuradas
cloudinfoRetorna informações de conectividade na nuvem
countdownLista regras de contagem regressiva configuradas
energyRetorna tensão/corrente/potência em tempo real
energy_resetRedefine os medidores de energia
infoRetorna informações do dispositivo
ledoffDesliga o indicador LED
ledonLiga o indicador LED
offDesliga a tomada
onLiga a tomada
rebootReinicia o dispositivo
resetRestaura o dispositivo para as configurações de fábrica
runtime_resetApaga as estatísticas de tempo de execução
scheduleLista regras de agendamento configuradas
timeRetorna a hora do sistema
wlanscanProcura por pontos de acesso próximos