網路釣魚、網上欺詐、垃圾郵件、拒絕服務攻擊、病毒、蠕蟲、惡意程式碼、信用卡詐騙等等事件層出不窮,相信大家在日常生活中都或多或少聽說或親身經歷過這樣的網路犯罪事件。
資訊化時代面臨越來越多網路犯罪,我們對司法取證的要求也變得越來越高,相應而言,我們的技術研究人員也在追求更高水平的司法取證技術。
下面就讓我們來回顧看雪2019安全開發者峰會上《基於雲資料的司法取證技術》的精彩內容。
編輯按
crownless:聽了這個演講,我們可以知道:1、雲中儲存了大量的敏感資料。不僅是通訊錄和照片,你在什麼時間去過哪它都知道。2、你以為你已經刪除了雲裡的私人資料,其實它們還殘留在雲裡。3、攻擊者可以透過破解你的電腦密碼(再複雜的密碼也只要幾天就可以暴力破解)來獲得訪問你雲中資料的許可權。所以,對待雲,我們還是應當謹慎一些!
嘉賓介紹
程勳德,萬興首席安全架構師。《加密與解密(第4版)》聯合作者,從事PC Android逆向工作8年。
程勳德講師為大家講解了iOS iCloud Google Cloud備份和同步機制、Token快取機制、並講解了資料獲取技術難點,並提供了相應的解決方案。
最後例項講解如果在未獲得使用者授權的情況下,獲取iPhone儲存在iCloud雲備份中的資料,讓大家瞭解到目前最新的智慧手機取證技術。整個演講過程風趣幽默,多次引發觀眾的熱烈掌聲,廣受好評。
演講具體內容
以下為速記全文:
大家好!我來自萬興科技,安全圈內萬興科技並不出名,因為我們比較低調,我們主要是一家消費類軟體研發、銷售及提供相應技術支援的公司,而且主要營收在海外。
但是我們公司自從去年上市之後就定下了要回歸國內的戰略,以前我們很低調,現在開始不低調了,低調太吃虧!
可能更多參與類似看雪這種技術交流中去,與安全專家直接面對面交流,瞭解當前和未來的一個安全方向,同時也提高一下公司知名度。
我今天的議題主要是講雲取證,比如怎樣從iCloud雲端把iPhone手機裡的資料取出來,或者透過Google Cloud獲取到Android手機以及Chrome Youtube等等的資料。
一、取證現狀
以前一般取證有三種方式。
第一種是直接用很底層硬體廠商提供的JTag除錯介面進行資料讀寫,但是這種方式比較貴,一臺德國的裝置要十幾萬。另外也不是所有裝置都有這介面,而且這幾年就算能夠讀取到資料,還是有個問題,現在iPhone和Android都開啟了全盤加密,導致讀取到的資料價值也不大。
第二種是物理讀取,例如ipbox2盒子就能提取蘋果手機的資料,透過物理方式把資料讀取出來,但是這個讀取出來也是全盤加密的,沒什麼用。
第三種是普通讀寫,普通讀寫得有解鎖密碼才行,並且現在蘋果手機、安卓手機普通讀寫,由於許可權問題,有很多資料也讀取不到。
二、雲取證優缺點
今天講講雲取證,除了這三種方法之外的新資料取證方法。我不是說前面的三種方式不行,其實雲資料取證也有不少問題,只能在實際應用場景中,按照不同的需求,採用不同的方式,雲取證可以作為一個有力補充。現如今icloud,Google Cloud等等雲端上的資料越來越多,已經成為取證不可忽視的一塊。
左側列出來的是優點,雲資料型別非常多,我不一一的講了。但也有缺點,缺點就是現在雲取證都開始開啟二步驗證,獲取資料越來越困難,而且雲取證介面是各個廠商自己定製的私有介面,導致協議都是不一樣的。
三、移動雲的生態系統
目前主流的手機要麼是安卓、要麼是蘋果,這兩家最大。我們萬興主要是做海外市場的,所以我們主要的關注點是icloud和Google Cloud,國內可能有小米的、華為的、三星的,但我們目前就做了這兩個雲。我介紹一下它們之間的區別,可能有些人不是很熟悉。
iCloud開啟同步、備份之後,你所有的資料都會上傳到雲端,包括聯絡人、收藏夾等等,你想到的資料它基本都傳上去了。PC時代取證很容易,把硬碟拆下來,直接物理讀取就能訪問到資料。但是PC時代資料少,現在雲資料取證,資料多了很多。iCloud就分為兩大塊,backup和Sync。
backup開啟之後會將整個iOS裝置的磁碟映象到雲端,這個映象透過icloud.com是看不到的,只能大概看到是什麼日期做了備份,沒有web或者app能夠看到備份的詳細資料型別,其實它把你整個硬碟都備份到雲端去了。
還有Sync同步,這個大家基本都有所瞭解,就是登陸到icloud.com上就能看到的資料,比如聯絡人,照片之類的。不過還有很多資料看不到,比如iMessage聊天記錄,keyChain一類的。
總之,如果你用iPhone,在手機啟用之後,並登陸iCloud帳號之後,裡面預設已經包含了非常多的資料型別,會即時同步到iCloud的雲端。
還有Google Cloud,由於國內大部分廠商都給它做了定製,導致Google Cloud在國內用處不是很大,但是在國外,Google Cloud是比較主流的移動資料同步雲。
谷歌雲的備份Backup資料種類較少,作用不大,但是同步的資料種類非常之多,只要你用谷歌系的APP,安卓手機也算、Chrome,youtube也算,歷史位置資訊等等,資訊收集非常之詳盡。
就拿歷史位置資訊來舉例,收集的資訊甚至包括了現在是在地鐵中,還是在私家車,或者腳踏車上非常詳細,這些資料被無關人員獲取到的的話那基本相當於在網路中裸奔了。Google Cloud收集的資料,起碼有五六十種以上的資料。分成好幾類。
四、二步驗證問題
獲取雲資料不得不提的一個問題是二步驗證,iCloud和Google Cloud目前在登陸的時候都會彈出這個,避免不受信任的第三方登陸,不過如果我們取證時必須要想辦法繞過這個步驟。
目前我們的解決方案是從曾經登陸過的PC/Mac或者瀏覽器中提取歷史記錄,歷史記錄中儲存了無需二步驗證的Token,用這個儲存的Token再去向雲端傳送請求,就不會有二步驗證了。
大概取證的思路是怎樣?首先iCloud和Google Cloud經過多年發展,有一套非常健全的安全機制和授權機制,如果直接硬懟iCloud或者Google Cloud是一件非常困難的事情,目前硬懟iCloud或者Google Cloud除了使用漏洞基本沒有太好的辦法,但是漏洞是可遇而不可求的,所以我們的思路看看能不能曲線救國。
人是社會化的動物,個人擁有的裝置也不一定只有iPhone或者Android手機,常見的還有PC/Mac裝置。如果我們能夠從其他裝置入手,會不會讓事情變得簡單?起碼找到一種能夠提取資料的方案。
五、如何解決授權問題
剛才說到雲資料雲取證,有一個無法繞過的問題是如何解決授權問題?如果按照正常的步驟,需要獲取iCloud中的資料,除了有賬戶和密碼之外,還需要有一臺可信的裝置,或者手機號,使用者接手二步驗證碼,這個條件是比較苛刻的,在實際取證環境,受限於現場條件,要達到這個條件是很困難的。那麼如何在無授權的情況下獲取手機資料,只有解決了授權獲取問題,才對取證有價值。
第一個方案是透過社會工程學獲取到這些資訊,不過今天我們主要是圍繞技術交流,這個就不展開了。
第二個方案是從使用者電腦PC/MAC上提取,如果曾經在PC/MAC有過登入的歷史記錄,透過提取歷史記錄中的token就可以繞過二步驗證,並且獲取到iCloud中的資料。
如果從這個方案入手,那就涉及到如何獲取使用者電腦密碼和提取token的步驟,PC/MAC的電腦密碼獲取還是比較簡單的,起碼是一個可行的方案,提取token也有辦法,透過逆向iTunes就可以得到如何提取token的辦法。所以基本取證思路就有了。這裡的核心環節就是獲取PC/MAC的密碼,這個步驟在PC時代取證是慣常做法,是行得通的。
簡單說,Windows上透過提取SAM(Security Account Manager,簡稱SAM)是windows的口令檔案進行雜湊列舉暴力破解就可以,Mac上可以提取login keychain進行暴力破解就可以了。
透過hashcat進行暴力破解,再輔以彩虹表,10位數的數字,大小寫字母,特殊字元組合的密碼也可以在幾分鐘到幾十分鐘內就得到結果,如果位數更多,利用hashcat分散式密碼破解,也可以在幾天內得到結果。
六、基於iCloud、Google Cloud的典型應用
目前基於iCloud和Google Cloud的應用越來越多,大概分成3類就是司法取證,資料恢復,以及家長控制。
怎麼做?先打一個廣告,我們公司drfone產品是做資料恢復的,賣得很好,但是不能說賣多少錢。很多廠商都在抄我們的。透過提取iCloud中的歷史備份資料用於資料恢復,當然我們的dr.fone不止這一種資料恢復手段,同時我們在iCloud的基礎上做了更多工作,給與使用者更人性化的資料展示介面,一目瞭然管理iCloud雲端中的資料。
還有司法取證,我們公司不是做專業取證的,但是有人整天琢磨怎麼把使用者的資料提取出來。
雲端資料的司法取證,相較於其他的手段,還能拿到使用者無法抵賴的時間相關資料,另外還能獲取到曾經已經刪除過的資料,比如今天7月20號,7月1號iPhone手機有一次同步記錄,那麼即使把7月20號的資料刪除了,7月1號的也還在,例如微信聊天記錄,以為刪除了聊天記錄,實際上,這個資料已經透過雲端方式同步到Apple的雲伺服器去了,司法取證可以透過雲資料來進行恢復。
另外還有家長監控,這個應用場景很適合我們現在說的雲資料,一般家長監控是能夠獲取到目標手機的授權的,透過授權能夠即時的觀察到孩子的動向。從而能夠更好的保護好孩子,免得走丟或者是,瀏覽一些色情暴力網站,家長也可以及時得到反饋並糾正。
七、例項講解無密碼獲取icloud資料
透過以上的講解,基本搞清楚了iCloud和Google Cloud是怎麼回事,那麼接下來我們來例項講解一下,在實際場景中如果獲取雲端資料,拿到一臺iPhone,上面有密碼,怎樣把iPhone的資料搞出來?硬懟的話懟不過去,所以我們得想辦法,把戰場拉到我們自己特別熟悉的一種方式。
手機上的資料不好提取,但是如果這時候使用者有一臺PC/MAC,那就好辦,PC/MAC的資料好提取,只要把PC/MAC硬碟拆了,進行物理提取就可以。提取PC/MAC中存放密碼的檔案hash的檔案進行暴力列舉,就算是20位的密碼,使用hashcat分散式的破解的話,幾天也可以搞定,我測試7位數的是1分鐘就跑出來了。
因為內部用雜湊做比對,hashcat號稱1秒鐘能比對幾十億個密碼。
有了這個密碼之後,進入系統中,Windows上用蘋果手機,基本都有蘋果系的軟體iCloud皮膚,iTunes一類的,這些工具裡面都會快取Token,這個token在Windows上是存放在com.apple.AOSkit.plist檔案中,是用當前登入的賬戶密碼進行加密的。
我們前面已經暴力破解了PC/MAC的密碼,所以只需要按照演算法把com.apple.AOSKit.plst檔案解密出來就可以了,解密出來的資料就是這樣,也就是我們所謂的token。
我們今天主要是講這個登陸密碼,透過登陸密碼能夠接到mmeAuthToken,基本所有蘋果系APP登陸之後都會快取這個。
舉例,你的icloud皮膚程式目錄下有AOSKit.plist的檔案,在Windows上呼叫crypt這個函式就能夠解出來,解這個前提是有帳戶密碼,Windows或者mac都有工具直接繞過你的登陸密碼而登陸到系統裡。
前面把密碼列舉出來有了這個mmeauthtoken,就可以往icloud伺服器裡發,發了之後它就會返回一個具體的,比如下面有一個cloudkit雲資料,還有一些map地圖應用,有很多key針對不同的應用程式,看你走不走運。
如果運氣好的話就能提出來更多,但即使運氣再差,這個一般也都是有的,要麼能提到同步Sync的token,要麼能提到備份Backup的token。
提出來之後再往下,往下就可以透過icloud這個服務token以及帳戶資訊獲取到這個使用者的資料了。使用者的資料有個組織形式,組織形式比較複雜,金鑰是用橢圓曲線加密的,iCloud因為協議比較複雜,另外不便於除錯分析,所以掌握的公司比較少,我們萬興是掌握的其中之一。
看不清PPT不要緊,回頭我在看雪上再寫一篇文章。金鑰是用橢圓曲線,資料是aes加解密。
你的資料在蘋果的雲端組織形式,比如一個檔案對應的是一堆container,然後往蘋果的伺服器去下載,有很多能夠組成一個container,reference裡面有組織資訊,把它拼出來就是一個完整的檔案,這個相當於硬碟二進位制資料一樣,比如資料到蘋果雲端是磁碟映象是去的,不是上去什麼照片,你可以從裡面提取到非常多已經刪除的資料。
因為大家都知道資料刪除不是真刪了,能夠找到很多刪除的照片、圖片之類的,這是檔案組織資訊。
最終的檔案就是一塊一塊的,右邊可以拼出來,我們對它進行解析,解析之後能夠得到你的通訊錄和各種各樣的資料,開啟同步的那三個都有,只要你開了備份,裡面都有。
其實我準備了一個demo,但是它得連網,在這裡執行很容易掉鏈子,回頭補一篇文章。這是解出來的最終檔案,看起來不是特別直觀,大家腦補檔案已經解到了!
一般講到最後,要提示一下使用者要怎麼做。其實最重要的不是上面列的這幾點,最重要的是不要去幹壞事,另外不要到處樹敵,得罪人。
公眾號ID:ikanxue
官方微博:看雪安全
商務合作:wsc@kanxue.com