2014-12-3 18:52
angelsin
揭秘:充電寶是如何盜取妳的個人隱私的?
中午吃完飯,看到壹個微博中別人轉的央視新聞《別被改裝充電寶盜取隱私》覺得又是啥高大上的東西上了央視,看完後才知道是數字公司的某研究員做的偽裝充電寶盜取隱私的玩意。
心裏豁然開朗,原來這玩意也可以上央視啊!那麽問題來了: 這玩意都應用到了哪些技術,並且那個防護神器又是怎麽實現的?我們這些天天寫腳本的能玩不?還是需要那些玩二進制的牛人幫忙才能完成呢?
那麽下面我給大家介紹壹種方法,揭秘攻擊者是如何低成本快速打造壹個偽造的充電寶的,以及我們該如何防禦。主要是IOS系統,至於Android的方法我想滿大街都是吧這裏就不說了,以後說不定會在博客中寫下。至於用途嗎不關妳是進行物理社工還是什麽的就自由發揮,本文所提技術並不局限於“充電寶” ,不費話了進入正題。
原理分析
首先,我們來分析下在不了解已有技術情況下假設要從零開始做起,我們是怎麽分析和設計這個東西?我估計大多數人第壹個想到的應該是iTunes , 蘋果手機管理的配套軟件,因為在它裏面有個功能是備份數據用的,即使刷機後,只要恢復下數據那麽所有的通訊錄,短信,甚至上網信息等等都會被恢復回去,二進制牛如果看到了應該會說逆下iTunes分析下它通訊協議不就完事了。
嗯,確實可以實現奈何我們腳本小子操起IDA跟看天書的應該差不多,不過這裏有壹點說的對,那就是通訊協議。如果我們能夠模擬iTunes協議,告訴iPhone我需要給妳備份數據,那麽按照它的接受協議把數據copy到存儲單元不就ok了。至於它怎麽去打包那些數據,根據它打包的方式解包不就還原所有數據了。上面我們分析的是如何把數據從手機拿到存儲單元,那麽和充電寶又有什麽關系? 看過那個視頻的應該註意到,手機查到充電寶上面會提示 “是否信任此電腦” 。回想下,我們自己充電的時候是否會提示?那麽在什麽情況下會提示?
是的,在手機數據線插到別人電腦上面的時候會提示!這裏我們在分析下,在正常充電寶上和電腦上面為什同為USB,壹個提示壹個卻不提示,為後面的防禦做個鋪墊。
我們先看下下圖:
[img]http://cdn.pttbook.com/zhtw/c11912/Image/5b8413d47cd84adb97f7e44dab4919b7.png%2521small[/img]
圖是網上找來的, 其中黃色部分為四個usb裏面的觸點, 其中1,4 從圖中可以看到是正負極(雖然只有+,-號),2,3 是 “D+ 和D-” 是什麽呢?其實就是data+ 和 data- 數據信號的輸入和輸出。其實從這張圖上也能猜到為什麽正常充電寶不會提示,而插到陌生電腦上會提示。因為在陌生電腦上面data+和data-上面產生了數據信號,所以導致iPhone會進行詢問是否應該信任此設備以進行數據交互,下面看看如何快速實現。
設計實現
上面原理分析了那麽多,還是沒有進入核心部分 “ 如何快速制造” 估計罵街的已經開始了….
所需材料:
1. 樹莓派 (raspberry pi) 壹枚
2. 大號鋰電池(至於多大,看妳想要多大容量的充電寶)
3. 充電器(為啥要這個?充電寶要充電唄)
4. 小燈 led小燈 3-4 枚 (充電寶充電閃爍效果)
上面這些東西怎麽組合? 樹莓派USB 對外供電, 鋰電池給樹莓派供電,充電器拆了(裏面的東西)給鋰電池充電,至於led小燈,接樹莓派GPIO口。讓樹莓派閃爍小燈的教程網上應該也是壹大把了,這裏就不詳述了請自行查詢。
其實樹莓派就是壹個ARM平臺上面可以跑跑Linux, 大家最關心的應該都是在ARM平臺上面的Linux怎麽模擬數據讓iPhone把備份數據給存儲到樹莓派上面的存儲器。看到上面的分析估計很多人心裏不自在了,都說了腳本小子為什麽又扯到上面的分析,難道又要讓我們逆向iTunes了。當然不是了,既然我們能想到模擬數據難道就沒有人做過?是的,妳又壹次猜對了,由開源實現
libimobiledevice , 這就是我們今天的主角,看看它介紹(官方介紹):
libimobiledevice is a cross-platform software library that talks the protocols to support iPhoneR, iPod TouchR, iPadR and Apple TVR devices. Unlike other projects, it does not depend on using any existing proprietary libraries and does not require jailbreaking. It allows other software to easily access the device's filesystem, retrieve information about the device and it's internals, backup/restore the device, manage SpringBoardR icons, manage installed applications, retrieve addressbook/calendars/notes and bookmarks and (using libgpod) synchronize music and video to the device. The library is in development since August 2007 with the goal to bring support for these devices to the Linux Desktop.
上面啰嗦了那麽多E文其實就是說它不依賴於第三方庫,跨平臺的實現了iPhone,iPod Touch, Ipad等蘋果設備的通訊協議。
在樹莓派上面怎麽編譯可以看這裏所需依賴
[url]https://github.com/libimobiledevice/libimobiledevice[/url]
編譯後有它的動態庫,可以根據它的文檔自己實現想要的功能,不過對於僅僅只是需要“竊取”隱私數據,其實自帶的tools目錄中的工具就已經夠用了,在看編譯完後的工具都長什麽樣(圖片演示均為筆記本上面的libimobile):
[img]http://cdn.pttbook.com/zhtw/c11912/Image/6b677ccd30e44fab946fac0aa31ab38d.png%2521small[/img]
可以看到編譯後tools目錄自帶的這些小工具,比較顯眼的幾個:
idevice_id 獲取已連接設備ID, idevice_id -l
idevicebackup ios較低版本用來備份數據的工具
idevicebackup2 ios新版本備份數據工具
idevicesscreenshot 從名字就能看出來是屏幕截圖
idevicesyslog 實時顯示log信息的,跟adb logcat 壹樣
ideviceinfo 設備信息
.... 其他的看名字基本就知道大概了
好了,我們直接上主角吧,idevicesbackup2。在當前目錄建立文件夾bak,當然妳願意放在那裏都行只是用來存儲備份數據的。usb連接電腦和手機(不是說好的充電寶麽,好吧…沒啥差吧^_^)
輸入命令:
idevicebackup2 backup ./bak
如果沒有配置環境變量就給idevicebackup2 指定當前目錄./
運行過程如下圖所示:
[[email]QQ20141201-3@2x.png[/email]]
運行結束後在bak目錄下會生成壹個由字符串組成的目錄,打開我們可以看到壹堆不太能夠容易理解的文件,其實這些就是備份經過處理的數據,如果所示:
[img]http://cdn.pttbook.com/zhtw/c11912/Image/8cc968addfbf4ba8a53b06ed7969c962.png%2521small[/img]
運行結束後在bak目錄下會生成壹個由字符串組成的目錄,打開我們可以看到壹堆不太能夠容易理解的文件,其實這些就是備份經過處理的數據,如果所示:
[img]http://cdn.pttbook.com/zhtw/c11912/Image/818df619ffbd4d90a04cc657af392b3d.png%2521small[/img]
那麽拿到這些數據有毛用… 別捉急,既然能拿到肯定有辦法解包還原數據
輸入命令:
ideivcesbackup2 unpack ./bak
命令執行完後我們就可以看到bak目錄下多了壹個_unpack_目錄,看看裏面有些什麽吧
[img]http://cdn.pttbook.com/zhtw/c11912/Image/6431ac2999d04567a6c6ca3a332d1ce5.png%2521small[/img]
由於層級太多只顯示了3級目錄,不過我們先找找數字公司演示的照片是在什麽地方存儲的可以在var/mobile/Media/DCIM 目錄中看到這裏存儲的都是個人相機拍的照片和視頻(沒拍攝過所以裏面木偶有顯示~)如下圖:
[img]http://cdn.pttbook.com/zhtw/c11912/Image/5bc7a65d6b284e83ac73197d1c965d0b.png%2521small[/img]
僅僅只能拿到相片麽? 其實細心的讀者肯定都看到了Keychains 就應該知道這玩意是啥了。好了再看看能獲取到其他信息不? 比如safari或者其他APP的本地遺留數據,例如cookie 、 聊天記錄? 看看var/mobile/library下面的sms和cookie信息:
[img]http://cdn.pttbook.com/zhtw/c11912/Image/0263d4be7c2846219ed53acde440813e.png%2521small[/img]
我不會告訴妳 var/mobile/Applications 全部是應用的備份文檔信息裏面包含的賬戶密碼,聊天信息等。這裏就不看了,太尼瑪冷了,得進被窩了…
防禦措施
這會再看結合USB的那個圖妳應該知道兩種防禦方法了吧?
1. 提示信任信息的時候如果是充電寶,堅決選NO
2. 也就是數字公司的“防禦神器”切掉USB的data數據(猜測數字公司這麽幹的)
哎,好久沒寫文章了有點手生,寫了快壹個小時就到此打住了,寫著文章沒有任何惡意,只是想分享壹些東西,認識我的人都知道我很樂意分享所掌握的知識並且是無條件的。妳會問為啥從始至終都沒有看到妳的“充電寶”,額沒錢買唄,哈哈…
版權信息
原創作品FreeBuf獨家首發,我博客都還沒發布
weibo: @creturn
blog: [url]www.creturn.com[/url]
後面有時間了再寫個IOS關機竊聽的東西,哎,上次吃飯時候說要弄壹個,感覺給自己挖了個坑…
[本文由作者creturn原創並投稿FreeBuf,版權屬於creturn,轉載須註明來自FreeBuf.COM]