14 Mayıs 2017 Pazar

PoC: XMEye Yazılımlı CCTV Kamera Hacking



Merhaba arkadaşlar, CCTV Kamera Hacking ve Güvenlik başlıklı yazıya olan yoğun ilgi ve alaka sonrası gelen istekler üzerine ufak bir PoC hazırlama kararı aldım. Öncelikle bilmenizi isterim ki, bu yazıda bahsi geçecek olan tüm içerik ve yöntemler son kullanıcı güvenliğini tehdit eden önemli bir zafiyete önlem alınması ve bilinç oluşturmak amaçlı yazılmıştır.

     Bir önce ki yazımızdan hatırlayacağınız üzere evlerimize ve işyerlerimiz kurulan CCTV kamera sistemlerinin kameralardan gelen analog veriyi dijitale çevirmesini sağlayan ve beraberinde bu sistemlere kayıt, geri oynatma ve uzaktan izleme gibi özellikleri getiren yazılımlar olduğundan bahsetmiştik.

Xmeye markalı yazılım dünya üzerinde ki kayıt cihazlarında en çok kullanılan CMS yazılımdır. Sadece android market üzerinden bile 5.000.000 indirme sayısı bulunan yazılımın dünya genelinde ki kayıt cihazlarının %60'ından fazlasında kullanıldığı düşünülmekte. Rakam bu kadar büyük olunca yazılımı incelemek ve ne gibi tehditlere maruz kaldığımızı öğrenmek istedik ve ortaya çok enteresan sonuçlar çıktı. Bugün dünya üzerinde ki milyonlarca cihazı evinizden izleyebilmenize olanak sunan bir zafiyetten bahsediyorum. Güvenliğimizi göz önünde bulundurarak evimize, iş yerlerimize hatta yatak odalarımıza kadar soktuğumuz bu cihazlar aslında neler yapabiliyor gelin beraber inceleyelim...

Xmeye'nin Android market üzerinden indirilme sayısı 

Öncelikle bu tip cihazlara ne kadar kolay ulaşılabileceğinden bahsetmekte fayda var. Yine bir önce ki yazımızdan da hatırlayacağınız üzere bu sistemlerim spesifik portlar kullandığından bahsetmiştik. XMEye'de ise bu port numarası 34567 olarak karşımıza çıkıyor. XME'ye cihazların kullandığı bu port numarası çeşitli port tarama araçları ile taratıldığında karşımıza zafiyete uğratılabilir bir çok ip adresi çıkıyor. Tehlikenin boyutunu kavramanız açısından bir bilgi vermem gerekirse bu rakam Türkiye'de sadece 1 günlük yapılan bir taramada 25.000'leri bulabiliyor. Bir çok yöntemle tarayabileceğiniz, hatta yazacağınız araçlar ile otomatize edebileceğiniz binlerce CCTV kamera mevcut. Bu yöntemlere basit bir kaç örnek vermek gerekirse;

Netcat ile; nc -nvw1 <ip adresi> 34567



Nmap ile; nmap -sS -Pn -T5 <ip adresi ve/veya iprange" -p 34567 --open





















Shodan.io ile; port:34567





Kendi yazabileceğiniz çeşitli araçlar ile bu işi otomatik bir hale getirebileceğinizden bahsetmiştik. Her türlü TCP paketine cevap veren bu cihazları taramak o kadar da zor değil. NGH team olarak çeşitli fiziksel sızma testlerinde bahsettiğimiz bu port taramalarını otomatik bir hale getiren ve ayrıca ağına sızılan sistemin local network'ü içerisinde bulunan güvenlik kameralarını tespit etmek amaçlı kullanmak için yazdığımız araç bunlara örnek olabilir.

Hemen yanda gördüğünüz yazılım bulunduğu ağın subnet mask'ını belirleyebiliyor ve belirlediği bu ip'ler üzerinde  XMEye, TOPSVIEW, NVSIP ve N_EYE yazılımlarını barındıran kayıt cihazlarını bizim için listeleyebiliyor. Biraz daha detaya inmek için XMEye yazılımlı cihazlardan örnek vermek gerekirse, belirlenen tüm ip'lerin 34567 portunu pingleyen bu yazılım cevap aldığı ip adresleri üzerinde ki yazılımın XMEye olduğunu tespit ederek program üzerinden ip adresi ve yazılım bilgisini bizlerle paylaşabiliyor.

Çeşitli güvenlik çözümlerine takılmamak içinde karşı önlemler barındıran bu gelişmiş araç gibi bir araç, fiziksel sızma testlerinde bağlı bulunduğu ağ üzerinde ki kamera yazılımlarını bularak büyük önem taşıyan güvenlik kamerası faktörünü bu şekilde bypass edebiliyor.


Yukarıda bahsettiğimiz yöntem fizik sızma testi senaryolarında kullanılıyor ama bazı durumlarda hatta genelinde kişilerin amacı yukarıda ki senaryo kadar masum ve çeşitli sözleşmelere bağlı ve güvenlik amaçlı kullanılmıyor. Şimdi gelin bu senaryoyu biraz karanlık taraftan birinin gözünden ele alalım ve bunun için bir araç yazalım. Bu şekilde ne gibi sonuçlar doğurabileceğini ve neden önlem almamız gerektiğini daha iyi anlayabileceğimizi düşünüyorum. Ee ne demişler "Bir musibet, bin nasihatten iyidir."

Aşağıda sadece bir fonksiyonunu gördüğünüz araç verilen ip adresi aralığında ki tüm ip'lerde 34567 portunu tarıyor ve açık bulduğu ip adreslerini bir database üzerine kayıt ederek sonrasında birden çok farklı senaryoda yine birden çok amaç için kullanılabilecek büyük bir data hazırlıyor. Cluster yöntemi ile 1000'lerce cihaz üzerinden başlatılabilecek bu tip bir tarama sonucunda sadece 1 gün içerisinde tüm geçmiş kayıtlarına dahi ulaşılabilecek milyonlar güvenlik kamerasına ulaşılmış olunuyor. Asıl tehlike tüm bu cihazların sadece tek bir tık ile firmware güncellemelerinin bu dataya sahip kişiler tarafından yapılabilindiği düşünüldüğünde ortaya çıkıyor.
XMEye kamera tarayıcı










Artık bu kameralara nasıl ulaşabileceğimiz konusunun kafamızda oturduğunu varsayarak bir sonra ki adıma geçmek istiyorum. Bu adımda elimizde ki bu cihazların login ekranını nasıl geçebileceğimiz hakkında 2 farklı yöntemden bahsetmek istiyorum. Kendi cihazım üzerinden akan trafiği wireshark ile analiz ettiğimde login sırasında authentication protokolünde karşımıza çıkan datanın içeriği dikkatimizi çekiyor ve bahsettiğimiz yöntemlerden biri karşımıza çıkıyor.

Login esnasında wireshark paket analizi








web.ocx kütüphanesini kullanan bu kameralar TCP/IP protokolü üzerinden login işlemlerini gerçekleştiriyor. Yukarıda örneğini gördüğünüz TCP paketi içeriğinde ki data segmenti manipüle edildiğinde dakikada çok yüksek rakamlara ulaşan bir brute-force atağı gerçekleştirilebiliyor.

Bir diğer yöntemden bahsetmeden önce size şunu söylemem gerekiyor ki bu cihazların %80'ine yakını 34567 portu ile birlikte kullanıcıların bir web arayüzü üzerinden de kameralarını izleyebilmeleri için 80 portunuda kullanıyor. 80 portu açık olan cihazlarda ise işlem çok daha basit bir hal alıyor. Bu şekilde daha seri sonuçlar alabileceğiniz, daha doğrusu tek denemelik işlemler için sizi yormayacak bir kaç satır kod ile çözebileceğiniz bir yapı ortaya çıkıyor.

Wget ile hazırlanmış basit bir örnek
Yukarıda da örneğini gördüğünüz üzere sadece wget ile dahi sistemde login olup olamadığınız bilgisine ulaşabiliyorsunuz. Gelin şimdi yukarıda örneği biraz daha geliştirip bunu sadece wget üzerinden dahi nasıl otomatik bir hale getirebileceğimizi görelim...

Yukarıda ki örnekte de görebildiğiniz gibi kullanıcı girdisi ile belirlenen ip aralığında port kontrolü ve brute-force işlemi yapabilen bir araç yazdık. Yukarıda ki örnekte brute-force işlemi yapmıyor olsak da araç bu tarz denemeleri yapabilecek kabiliyette. Bu sayede artık elimizdeki ip listesinde ki cihazlara login olduktan sonra iş bu gücü elinde barındıran kişinin insiyatifine kalıyor. Gelin isterseniz neler yapılabileceği ile ilgili ufak bir kaç fonksiyon örneği ile birlikte bu katmanı da inceliyelim. 

Bu fonksiyon ile birlikte yurıda ki örneklere benzer yöntemler ile kullanıcı adı ve parola bilgisine ulaştığı sistemleri kullanan bir hacker gözü ile birlikte yapıyı incelemeye başlayacağız. Aşağıda ki fonksiyon bir api ile çalışıyor ve bağlı bulunduğu database üzerinden çektiği ip adresi ve parola datasını admin username ile işleme sokarak kameranın oynatılmasını ve izlenebilmesini sağlıyor.

Aşağıda gördüğünüz fonksiyon ise yine api üzerinden sisteme bağlı kullanıcının ip bilgisine dayanarak yakın çevresinde sisteme daha önceden yukarıda ki yöntemler ile hacklenerek girmiş güvenlik kameralarını listeliyor ve kişinin çevresinde ki kameraları izleyebilmesini sağlıyor.

Aşağıda gördüğünüz fonksiyon ise izlenmekte olan kameranın konum bilgilerine yine ip adresine dayanarak bağlı bulunduğu api üzerinden işlem yaparak ulaşılabilmesini sağlıyor.


Gördüğünüz gibi güvenlik amaçlı kullandığımız bu cihazlar önlem alınmadığı taktirde hiçte güvenli değil. Yukarıda uygulanma yöntemlerinden bahsettiğimiz, yakın tarihte tarihin en büyük ddos atağınada zemin hazırlayan bu güvenlik zafiyeti hakkında umarım bir fikir sahibi olmanızı sağlamış ve farkındalık kazandırmışızdır. 

Güvenli günler...

0 yorum:

Yorum Gönder