Blackstar
This is a project to (hopefully) achieve remote code execution on the Dish Network ViP line of set-top boxes. The unit used for testing is a Dish Network ViP222k.
I wouldn't place bets on this project's success. I do not have a background in cybersecurity or pentesting. It'd be funny though.
Goals
- Framebuffer access (for funniest image I'll ever take)
- Boot NetBSD (someday, somehow)
- Run Doom (maybe)
UPnP
On startup, the ViP units expose a UPnP server with a surprising (alarming?) amount of functions. Some examples:
- Increment/decrement channel
- Force redownload program guide
- Lock/unlock front panel controls and remote
- Remote reboot
- Test satellite switch (annoying, takes a very long time!)
(Among various other things.)
Currently, a Python script has been written (and will eventually be released) that can detect ViP units on a wireless network (via UPnP) and execute exposed actions.
Exploit
Though the firmware on the test unit was last updated in 2019, the version of libupnp
present on the system is version 1.6.6, which is susceptible to CVE-2012-5958, a buffer overflow capable of remote code execution. Using Metasploit's module for this CVE, we were able to trigger the overflow, although without a proper payload, the UPnP server simply crashed (after two attempts).
The potential for this exploit is that we can remotely boot a modified NetBSD or Linux kernel on affected boxes over the network, discovering and exploiting boxes via UPnP.