07/25/2015 ** UPDATE 3 [7/27/2015] – Some pretty rad research by John Matherly on the shodan blog based on some of these findings.
After digging a little bit more… The shodan search actually returned results for UPnP port 1900 and not 8060. 1900 is used by the Roku to advertise itself to other Roku’s on the same network using the SSDP protocol. I don’t believe it’s possible to use that port to issue the API commands i reference to IP’s with UDP/1900 open. Also, If you want to find the IP addresses of Roku devices on the network you’re on, you’ll have to: 1. create a file with the following in it:
2. Feed that request to netcat while connecting to the multicast address on UDP 1900:
3. Use wireshark to catch any responses. You should see a Location response header with the IP of any Roku’s in the vicinity:
It still may be possible to identify Roku’s internet-facing TCP/8060 ports with something like a masscan where the internet IP’s respond with a Server header of “Roku UPnP/1.0 MiniUPnPd/1.4”:
I Wrote a simple script you can use to bounce a Roku via a bash shell. You can modify this to navigate to other functions like… “factory reset” although that would just be MEAN. This script basically issues “keypress” commands to the API at TCP/8060 which in turn, navigates through the menus. Example: The Roku api keypress options are: Home You can use this as a reference to their API. Here’s a shodan query with what looks like Roku devices with their API ports facing the internet. *WHY* are they facing the internet? who knows…but that’s a horrible idea. https://www.shodan.io/search?query=ROKU There are currently 1761 Roku API ports exposed on the internet.
|