Умная розетка Tp-Link Wi-Fi Smart Plug HS100

Заметка планировалась как очень краткий обзор умной розетки и использование дополнительных возможностей управления Tp-Link Wi-Fi Smart Plug HS100 по сети, а вылилась в анализ ситуации с безопасностью этих самых “умных” девайсов. И ситуация, мягко говоря, не очень хорошая.

Такие розетки нельзя использовать в сети, которую вы не контролируете, например в публичной сети или сети без шифрования (а так же WEP, WPA) или со слабым паролем. Категорически не рекомендуется использовать всю линейку Tp-Link Wi-Fi Smart Plug для подключения оборудования, неожиданное включение или выключение которого может нанести вред самому оборудованию или другому имуществу владельца (холодильники, нагреватели, насосы, и т.д.)!

Во-первых, для доступа к оборудованию не используется какая-либо идентификация. Вообще. Любое устройство в локальной сети может послать команду на включение, выключение, изменение параметров или сброс настроек.
Во-вторых, протокол передачи команд между смартфоном с установленной программой “Kasa” или облаком и розеткой использует алгоритм шифрования 16 века с известным ключом. Можно сказать, что его практически нет.

Во всех нюансах управления этими розетками разобрались до меня. В интернете полно материалов для самостоятельного чтения. Самое интересное – это, конечно же, реверс-инжениринг от softScheck

Есть 2 интересных проекта, которые позволят познакомиться с проблемами IoT поближе:

  1. iot-toolkit – набор утилит для обнаружения “умных” устройств в сети и организации атак;
  2. tplink-smartplug – клиентская часть для управления розетками TP-Link, написанная на Python;

Рабочая машина – Ubuntu Server 16.04 LTS.

Для сборки iot-tools понадобятся дополнительные библиотеки.
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install clang libpcap-dev libssl-dev
$ cd ~/projects
$ git clone https://github.com/fgont/iot-toolkit.git
$ cd iot-toolkit
$ make all

Tplink-smartplug тоже забираем с GitHub, там много полезной информации:
$ cd ~/projects
$ git clone https://github.com/softScheck/tplink-smartplug.git

Посмотрим что у нас в сети (enp0s3), где-то там “умная” розетка:
$ sudo ~/projects/iot-toolkit/iot-scan -v -L -i enp0s3
192.168.88.102 # IOT.SMARTPLUGSWITCH: TP-Link HS100(EU): Wi-Fi Smart Plug: "Smart Gnome"

Набор команд управления довольно большой. Можно сделать все что угодно, авторизации нет как класса.
Данные передаются и принимаются в JSON.

Начнем с безобидных, спросим сколько времени:
$ ~/projects/tplink-smartplug/tplink_smartplug.py -t 192.168.88.102 -c time
Sent: {"time":{"get_time":{}}}
Received: {"time":{"get_time":{"err_code":0,"year":2018,"month":8,"mday":9,"wday":4,"hour":20,"min":23,"sec":39}}}

Просмотр общей информации, запрос в виде JSON:
$ ~/projects/tplink-smartplug/tplink_smartplug.py -t 192.168.88.102 -j '{"system":{"get_sysinfo":{}}}'
Sent: {"system":{"get_sysinfo":{}}}
Received: {"system":{"get_sysinfo":{"err_code":0,"sw_ver":"1.2.5 Build 171213 Rel.101415","hw_ver":"1.0","type":"IOT.SMARTPLUGSWITCH","model":"HS100(EU)",
"mac":"50:C7:BF:XX:XX:XX","deviceId":"800665D682EB40DC3FA09799XXXXXXXXXXXXXXXX",
"hwId":"22603EA5E716DEAEXXXXXXXXXXXXXXXX","fwId":"00000000000000000000000000000000",
"oemId":"812A90EB2FCF306AXXXXXXXXXXXXXXXX","alias":"Smart Gnome","dev_name":"Wi-Fi Smart Plug",
"icon_hash":"","relay_state":1,"on_time":130083,"active_mode":"none","feature":"TIM",
"updating":0,"rssi":-81,"led_off":0,"latitude":0,"longitude":0}}}

Как поменять настройки или сбросить все можно посмотреть в документации к tplink-smartplug.
Как организовать атаку и положить сеть можно узнать из документации к iot-tools.

Несколько интересных презентаций

Дополнительная информация по взлому розеток tp-link, других устройств, рекомендации по обеспечению безопасности устройств – Hacking TP-Link Devices
Дополнительная информация от аналитиков везопасности из softScheck – Internet of (dangerous) Things

Leave a comment

Your comment