之前一直看的是傳統的系統安全問題,最近了解了下嵌入式設備的安全,頗有意思。
首先要從下面一個圖說起:
這是由一位匿名的黑客通過端口探測等方式得到的2012年全球可攻擊利用的嵌入式設備熱點分布圖,被叫做“Internet Census of 2012”,具體更詳盡信息可見其網站:Internet Census of 2012。
這些設備完全就是在互聯網上裸跑,不管是管理員還是黑客都可以隨意控制它們。
跟傳統的現代處理器保護機制不一樣,這些嵌入式設備處理器很多都沒有我們習以為常的如虛擬內存、特權級等的概念,如何保護他們的安全目前是研究界的一大熱點,USENIX Security 2013有篇論文是專門針對這些問題討論的,叫Sancus: Low-cost trustworthy extensible networked devices with a zero-software Trusted Computing Base。
既然嵌入式設備都在裸跑,那么研究下它們里面的東西,作進一步分析是非常有必要的。
接下來要考慮的是研究哪種嵌入式設備,選擇路由器?好像樂趣不多;前幾天看了部電影《風暴》,我對里面警察通過監控攝像頭查找證據的場景印象深刻,當時浮現的想法是:如果匪徒也能控制這些監控攝像頭,反過來通過它們監控警察的行蹤,或者在他們作案前或作案后將監控攝像頭的數據刪除掉,那么警匪的力量就不會這么懸殊,劇情會不會更有意思?
在現實生活中,如果我作為黑客能夠控制所有的攝像頭,如室內的家庭安防,那是多么可怕的場景:
攝像頭的本意的用于防護別人保護自己安全,而一旦被人利用了就可能反過來自己遭受監控!由此目標就鎖定在安防攝像頭上了。
首先面臨的問題是如何找到目標設備?最直接的方法是通過它們暴露的接口:它們必須與客戶端連接!
那么就找個客戶端:vMEyeSuper,google一下看到這個博客http://www.petsdreampark.com/blog/archives/2726提供的設備地址:pdp.ns01.biz,然后就是找機會入侵啦:端口掃描,暴力破解。
通過工具發現設備的telnet是可登錄的,然后就是暴力破解,用戶名密碼一下子就出來了(user name: root, password就不貼了)。試了下,成功登錄進去,root權限哦!
登陸進去后它打印顯示“welcome to monitor tech”,“嗯,不客氣,反正我都來了”。先查看系統信息吧:
可看到系統用的是ucLinux,內核是3.0.8,處理器是ARM926EJ-S,芯片是海思的Hi3518,google一些這方面的信息,海思的hi3XXX都是有名的安防解決方案,海思的SDK可在這里下載。
找了一番發現系統就是一個ucLinux內核加一個busybox組成的,核心IPC固件在/usr/bin下,ps一下看到進程主要是Sofia和dvrbox,而關鍵是Sofia。:
重啟Sofia可以看到一系列log信息,其中它開了一個web server,目錄在/mnt/web下。
我想做的一個事情是將所有有用的文件拷貝下來分析,因為看到里面有用戶名、密碼信息等,但是由于busybox提供的工具太少了,關鍵是ssh,scp, wget, ftp等這些都沒有,沒辦法上傳下載,真是無奈:沒有現有的工具,有root權限能干的事情也很有局限性呀!
想到它開有web server,于是打算將文件放到/mnt/web下再從瀏覽器下載下來。可惜不成功:目錄只讀!
想到一個辦法:雖然/mnt/web下是只讀的cramfs文件系統,可通過mount mtd到/mnt/web下覆蓋原有目錄做到:
mount -t jffs2 /dev/mtdblock5 /mnt/web
總算順利將所有文件都拖下來了!
分析發現searchIp、Sofia執行文件都用了upx進行壓縮的,需要先進行解壓。然后就用IDA Pro進行反匯編分析了。
分析發現searchIp是作為一個server用于被客戶端掃描發現并主動連接到Sofia的工具。
基于此,只要寫個掃描工具就能夠發現并登錄同廠商大量的裸露安防攝像頭設備了!
接下來有空的話要做的事情就是嘗試掃描網絡發現這些設備并利用google map組成一個攝像頭監控網絡。
目前尚未解決的問題:由于無法物理接觸到這些設備,系統busybox里面又沒有可用的工具,尚不能上傳文件到設備上。