Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
tplink-smartplug — TP-Link WiFi SmartPlug Client and Wireshark Dissector | Kitploit
Strumenti/GitHubGitHub/softscheck/tplink-smartplug
Sniffing e Analisi dei PacchettiStrumenti di Crittografia/DecrittografiaSicurezza IoTAnalisi delle VulnerabilitàReverse EngineeringSicurezza di ReteSicurezza WirelessSicurezza Hardware e IoTAnalisi del Firmware
GitHubsoftscheck/tplink-smartplug

tplink-smartplug

TP-Link WiFi SmartPlug Client and Wireshark Dissector

1.2k2921 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

Client TP-Link WiFi SmartPlug e Dissector Wireshark

Per la storia completa, vedi Reverse Engineering the TP-Link HS110

tplink_smartplug.py

Un client Python per il protocollo proprietario TP-Link Smart Home per controllare le prese intelligenti WiFi TP-Link HS100, HS110 e KP115. Il protocollo SmartHome gira sulla porta TCP 9999 e utilizza una banale crittografia XOR autokey che non fornisce alcuna sicurezza.

Non esiste alcun meccanismo di autenticazione e i comandi sono accettati indipendentemente dallo stato del dispositivo (configurato/non configurato).

I comandi vengono formattati usando JSON, ad esempio:

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

Invece di null possiamo anche scrivere {}. I comandi possono essere annidati, ad esempio:

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

Un elenco completo dei comandi è fornito in tplink-smarthome-commands.txt.

Utilizzo

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

Fornisci l'IP di destinazione usando -t e un comando da inviare usando -c o -j. Comandi per il flag -c:

Comandi più avanzati come la creazione o la modifica di regole possono essere emessi usando il flag -j fornendo la stringa JSON completa per il comando. Si prega di consultare tplink-smarthome-commands.txt per un elenco completo dei comandi.

[!TIP] Per una stampa ordinata della risposta, usa il parametro quiet (-q) e passa l'output attraverso jq. Ad esempio: ./tplink_smartplug.py -t 192.168.178.49 -c info -q | jq

Wireshark Dissector

Dissector Wireshark per decrittare i pacchetti del protocollo TP-Link Smart Home (porta TCP 9999).

ScreenShot

[!NOTE]
Se hai Wireshark > 3.5.0 puoi usare il dissector integrato.

Installazione

Copia tplink-smarthome.lua in:

OSPercorso di installazione
Windows%APPDATA%\Wireshark\plugins
Linux/MacOS$HOME/.local/lib/wireshark/plugins

tddp-client.py

Un client Python proof-of-concept per comunicare con un dispositivo TP-Link usando il TP-Link Device Debug Protocol (TDDP).

TDDP è implementato su un'ampia gamma di dispositivi TP-Link inclusi router, punti di accesso, telecamere e smart plug. TDDP può leggere e scrivere la configurazione di un dispositivo e inviare comandi speciali. La porta UDP 1040 viene utilizzata per inviare comandi, le risposte arrivano sulla porta UDP 61000. Questo client è stato testato con un router wireless TP-Link Archer C9 e una presa intelligente WiFi TP-Link HS-110.

TDDP è un protocollo binario documentato nel brevetto CN102096654A.

I comandi vengono emessi impostando i valori appropriati nei campi di intestazione Type e SubType. I dati vengono restituiti crittografati con DES e richiedono il nome utente e la password del dispositivo per decrittarli. Allo stesso modo, i dati di configurazione da scrivere sul dispositivo devono essere inviati crittografati. La chiave DES viene costruita prendendo l'hash MD5 di nome utente e password concatenati, e poi prendendo i primi 8 byte dell'hash MD5.

Utilizzo

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

Fornisci l'IP di destinazione usando -t. Puoi fornire un nome utente e una password, altrimenti viene usato admin/admin come default. Sono necessari per decrittare i dati che vengono restituiti.

Fornisci il comando come stringa esadecimale di due caratteri, ad esempio -c 0A. Il tipo di dati che un comando potrebbe leggere sarà diverso per vari dispositivi TP-Link.

Esempio

La lettura dello stato del collegamento WAN su un Archer C9 nella configurazione predefinita mostra che il collegamento è giù (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
Scarica lo strumento
ComandoDescrizione
antitheftElenca le regole antifurto configurate
cloudinfoRestituisce informazioni di connettività cloud
countdownElenca le regole di conto alla rovescia configurate
energyRestituisce tensione/corrente/potenza in tempo reale
energy_resetResetta i contatori energetici
infoRestituisce informazioni sul dispositivo
ledoffSpegni l'indicatore LED
ledonAccendi l'indicatore LED
offSpegni la presa
onAccendi la presa
rebootRiavvia il dispositivo
resetResetta il dispositivo alle impostazioni di fabbrica
runtime_resetCancella le statistiche di runtime
scheduleElenca le regole di pianificazione configurate
timeRestituisce l'ora di sistema
wlanscanScansiona i punti di accesso vicini