Internet of (dangerous) Things
Tobias Esser, Prof. Dr. Hartmut Pohl
softScheck GmbH Köln
Büro: Bonnerstr. 108. 53757 Sankt Augustin www. softScheck.com
reactive
…Security Information Event Management (SIEM)
Reactive Strategy
proactive
reactive
…Security Information Event Management (SIEM)
ISO 27034 Application Security
Reactive - Proactive Strategy
Explorative Testing
Manual Auditing
Penetration
Testing
Static Source
Code Analysis
Conformance
Testing
Dynamic Analysis
Fuzzing
Architecture Analysis
Threat Model
Attack Paths, Surface
SSQUARE
© softScheck
Products Tested
© softScheck
Application Security Management SASM
ISO 27034 conform Development
Application Security Audit
Security Requirements
Product Design Implementation ReleaseVerificationRequirements
Targeted Level
of Trust
Explorative Testing
Manual Auditing
Penetration
Testing
Risk Analysis
SSQUARE
Static Source
Code Analysis
Application Security Controls
Conformity Testing
Architecture Analysis
Threat Model
Attack Paths, Surface
ASC 01 ASC 06
Dynamic Analysis
Fuzzing
© softScheck
Internet of Things
© softScheck
Internet of (dangerous) Things
Reverse Engineering einer WiFi-Steckdose
 TP-Link HS110 WiFi Smartplug
 Steuerbar mit "Kasa for Mobile" Smartphone-App
(iOS, Android)
 TP-Link Cloud-Anbindung
© softScheck
 SmartPlug startet Access Point (AP) "TP-LINK_Smart Plug_XXXX"
 Kasa App verbindet Smartphone mit dem AP
 App kommuniziert lokal verschlüsselt über TCP Port 9999
 Passwort des Heim-WLANs wird von App an SmartPlug geschickt
 SmartPlug schaltet AP aus und verbindet sich mit Heim-WLAN
SmartPlug Setup
© softScheck
 Web-Server ist ein Fake!
Offene Ports
© softScheck
 Jedes Byte XOR mit vorigem Plaintext-Byte
 Erstes Byte XOR -85 (Schlüssel)
 Ver- und Entschlüsselung gleich
Reverse Engineering der Verschlüsselung
© softScheck
Wireshark Dissector
© softScheck
 JSON-basiert
 Beispiel-Befehle:
TP-Link SmartHome Protokoll
{"system":{"get_sysinfo":{}}} Systeminfos
{"system":{"reboot":{"delay":1}}} Neustart
{"system":{"set_relay_state":{"state":1}}} Steckdose
anschalten
{"netif":{"get_scaninfo":{"refresh":1}}} Nach WLANs
scannen
{"netif":{"set_stainfo":{"ssid":"WiFi","password":"secret",
"key_type":3}}}
Mit WLAN
verbinden
{"cnCloud":{"bind":{"username":"your@email.com","password":"secret"}}} In Cloud
registrieren
{"cnCloud":{"unbind":null}} Registrierung
aufheben
© softScheck
 time
 emeter (energy meter)
 schedule (scheduled on/off)
 count_down (countdown on/off)
 anti_theft (random scheduled on/off)
TP-Link SmartHome Protokoll
© softScheck
 SmartPlug agiert nur als HTTPS-Client
 Regelmäßige TLS-Verbindung zum Cloud-Server
 App schickt JSON-Befehle verpackt mit "method:passthrough"
 Cloud-Server leitet Befehle an SmartPlug weiter
Cloud-Kommunikation
POST /?token=<sessionid> HTTP/1.1
Content-Type: application/json
Host: eu-wap.tplinkcloud.com
{"method":"passthrough", "params":
{"deviceId":"<deviceID>,
"requestData":"{"system":{"get_sysinfo":null}}"}}
© softScheck
Offene Ports
© softScheck
TP-Link Device Debug Protocol
TDDP Patent
© softScheck
DES Key = md5(username + password)[:16]
TDDP Crypto
© softScheck
Demo
© softScheck
Internet of (dangerous) Things (IodT)
Fork us on GitHub: https://github.com/softScheck/tplink-smartplug
softScheck GmbH Köln
Büro: Bonnerstr. 108. 53757 Sankt Augustin www. softScheck.com +49 (2241) 255 43 – 12
Prof. Dr. Hartmut Pohl
Hartmut.Pohl@softScheck.com
Tobias Esser
Tobias. Esser@softScheck.com

Internet of Dangerous Things - IoT Device Hacking

  • 1.
    Internet of (dangerous)Things Tobias Esser, Prof. Dr. Hartmut Pohl softScheck GmbH Köln Büro: Bonnerstr. 108. 53757 Sankt Augustin www. softScheck.com
  • 2.
    reactive …Security Information EventManagement (SIEM) Reactive Strategy
  • 3.
    proactive reactive …Security Information EventManagement (SIEM) ISO 27034 Application Security Reactive - Proactive Strategy Explorative Testing Manual Auditing Penetration Testing Static Source Code Analysis Conformance Testing Dynamic Analysis Fuzzing Architecture Analysis Threat Model Attack Paths, Surface SSQUARE
  • 4.
  • 5.
    © softScheck Application SecurityManagement SASM ISO 27034 conform Development Application Security Audit Security Requirements Product Design Implementation ReleaseVerificationRequirements Targeted Level of Trust Explorative Testing Manual Auditing Penetration Testing Risk Analysis SSQUARE Static Source Code Analysis Application Security Controls Conformity Testing Architecture Analysis Threat Model Attack Paths, Surface ASC 01 ASC 06 Dynamic Analysis Fuzzing
  • 6.
  • 7.
    © softScheck Internet of(dangerous) Things Reverse Engineering einer WiFi-Steckdose  TP-Link HS110 WiFi Smartplug  Steuerbar mit "Kasa for Mobile" Smartphone-App (iOS, Android)  TP-Link Cloud-Anbindung
  • 8.
    © softScheck  SmartPlugstartet Access Point (AP) "TP-LINK_Smart Plug_XXXX"  Kasa App verbindet Smartphone mit dem AP  App kommuniziert lokal verschlüsselt über TCP Port 9999  Passwort des Heim-WLANs wird von App an SmartPlug geschickt  SmartPlug schaltet AP aus und verbindet sich mit Heim-WLAN SmartPlug Setup
  • 9.
    © softScheck  Web-Serverist ein Fake! Offene Ports
  • 10.
    © softScheck  JedesByte XOR mit vorigem Plaintext-Byte  Erstes Byte XOR -85 (Schlüssel)  Ver- und Entschlüsselung gleich Reverse Engineering der Verschlüsselung
  • 11.
  • 12.
    © softScheck  JSON-basiert Beispiel-Befehle: TP-Link SmartHome Protokoll {"system":{"get_sysinfo":{}}} Systeminfos {"system":{"reboot":{"delay":1}}} Neustart {"system":{"set_relay_state":{"state":1}}} Steckdose anschalten {"netif":{"get_scaninfo":{"refresh":1}}} Nach WLANs scannen {"netif":{"set_stainfo":{"ssid":"WiFi","password":"secret", "key_type":3}}} Mit WLAN verbinden {"cnCloud":{"bind":{"username":"your@email.com","password":"secret"}}} In Cloud registrieren {"cnCloud":{"unbind":null}} Registrierung aufheben
  • 13.
    © softScheck  time emeter (energy meter)  schedule (scheduled on/off)  count_down (countdown on/off)  anti_theft (random scheduled on/off) TP-Link SmartHome Protokoll
  • 14.
    © softScheck  SmartPlugagiert nur als HTTPS-Client  Regelmäßige TLS-Verbindung zum Cloud-Server  App schickt JSON-Befehle verpackt mit "method:passthrough"  Cloud-Server leitet Befehle an SmartPlug weiter Cloud-Kommunikation POST /?token=<sessionid> HTTP/1.1 Content-Type: application/json Host: eu-wap.tplinkcloud.com {"method":"passthrough", "params": {"deviceId":"<deviceID>, "requestData":"{"system":{"get_sysinfo":null}}"}}
  • 15.
  • 16.
    © softScheck TP-Link DeviceDebug Protocol TDDP Patent
  • 17.
    © softScheck DES Key= md5(username + password)[:16] TDDP Crypto
  • 18.
  • 19.
    © softScheck Internet of(dangerous) Things (IodT) Fork us on GitHub: https://github.com/softScheck/tplink-smartplug softScheck GmbH Köln Büro: Bonnerstr. 108. 53757 Sankt Augustin www. softScheck.com +49 (2241) 255 43 – 12 Prof. Dr. Hartmut Pohl Hartmut.Pohl@softScheck.com Tobias Esser Tobias. Esser@softScheck.com