《電子數據取證技術》課件-第8章_第1頁
《電子數據取證技術》課件-第8章_第2頁
《電子數據取證技術》課件-第8章_第3頁
《電子數據取證技術》課件-第8章_第4頁
《電子數據取證技術》課件-第8章_第5頁
已閱讀5頁,還剩145頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

8.Android(安卓)系統取證技術目錄CONTENTS8.1Android智能手機取證概述8.1.1Android概況及發展歷程8.1.2常見Android手機廠商及系統特點8.1.3Android功能特點8.1.4Android取證準備工作8.1.5Android系統邏輯數據提取8.2Android系統常見邏輯數據提取分析8.2.1短信息/彩信提取和分析8.2.2通話記錄提取和分析8.2.3聯系人信息提取和分析8.2.4瀏覽器歷史記錄提取和分析8.2.5郵件客戶端信息的提取和分析8.2.6微信數據的提取和分析8.3Android密碼繞過與物理取證8.3.1獲取root權限8.3.2繞過Android設備密碼8.3.3

Android物理鏡像的提取8.3.4

獲取Android外置存儲設備鏡像8.3.5Android物理鏡像的分析8.3.6Android數據恢復8.1Android智能手機取證概述8.1Android智能手機取證概述8.1.1Android概況及發展歷程

Android操作系統的歷史最早可以追溯至2003年10月,AndyRubin等人創立了AndroidInc.公司,該公司在成立僅22個月后在2005年8月17日被Google公司收購;在2007年,Google聯合其他軟硬件制造商與電信運營商共同成立了“開放手持設備聯盟(OpenHandsetAlliance)”,基于開源的LinuxKernel2.6發布了首個免費的移動終端操作系統Android;2008年,首個采用Android操作系統的智能手機“HTCDream”發布,在其后近十年間,Android操作系統發展速度驚人,截止2018年5月,Android操作系統已經發展到Android9.0版本,并陸續針對電視、智能可穿戴設備和汽車等發布了AndroidTV、WearOS以及AndroidAuto等衍生操作系統。

Android操作系統的基本架構如上圖所示,主要有Linux內核、硬件抽象層、原生C/C++庫、Android運行時庫(ART)、JavaAPI框架以及系統應用組成,關于每部分的具體構成和組件,可以在Android官方平臺介紹頁面詳細了解,由于篇幅所限,本章節不再贅述。經歷了近十年的版本變遷,Android操作系統中一些功能與機制持續改進與完善;比如,在早期版本中,Android使用了Dalvik虛擬機機制,由于Android應用程序使用Java語言開發,Java源代碼通過Dex轉換后可以直接運行于Dalvik虛擬機(DVM)中,而在Android5.0版本之后,DVM機制被替換為Android運行時庫(后文簡稱ART,AndroidRuntime),后者更為高效且省電。8.1.1Android概況及發展歷程

與之類似的和取證相關的Android系統版本發展變化還包括安全方面的改進,Android6.0系統中增加了全盤加密(后文簡稱FDE,FullDiskEncryption),為Android設備的數據安全提供了更高的安全保障,其后的Android7.x版本更是將單密鑰加密的FDE方式升級為了與iOS系統數據加密類似的“基于文件加密”(FBE,File-basedEncryption),允許數據根據需要進行解密,這使得多數基于離線芯片拆卸(Chip-off)方式的取證完全失效。8.1.1Android概況及發展歷程

上述兩個例子表明,作為目前占據市場份額最大的智能終端操作系統,Android的版本更新與完善直接影響到針對其的取證方式和取證效果,所以,取證調查人員應當熟悉和了解不同版本Android操作系統的主要差異、尤其是在安全功能方面的變化,并持續關注與了解Android系統的發展趨勢和最新動態,以便及時適應和有針對性地更新取證方面的知識與方法。8.1.1Android概況及發展歷程

8.1.2常見Android手機廠商及系統特點由于Android的開放性特點,眾多設備廠商甚至業余愛好者都可以在官方Android版本基礎上進行再次開發和定制,增加額外的功能、提高系統效率;這之中較為常見的廠商定制優化版本包括小米MIUI、華為EMUI、OPPOColorOS、vivoFuntouchOS、魅族Flyme等,較為著名的CyanogenMod(簡稱CM)也是第三方團隊在官方Android版本基礎上修改而來。8.1Android智能手機取證概述從手機用戶角度看,不同廠商的定制系統通常會加入廠商自己的服務和應用,包括應用程序分發(應用商店)、云存儲服務、個人信息管理以及多媒體管理工具等,這些定制和修改可以為用戶帶來更好更適合用戶個性化需求的體驗;而從取證角度來看,了解和熟悉不同廠商的Android定制版本,包括定制版本系統在數據提取與安全方面的限制,對于后續針對使用這些定制Android版本設備進行取證來說是至關重要的,因為同樣是基于Android進行的修改與定制,不同廠商的系統在取證時采用的方法可能迥然不同。下面將選擇國內常見的手機廠商所使用的定制Android系統,側重系統安全功能與數據提取方式方面進行簡要介紹。8.1.2常見Android手機廠商及系統特點

1.小米MIUIMIUI由小米公司開發,于2010年發布首個內測版本,早期的MIUI是基于國外第三方團隊的CyanogenModROM進行定制,適配于HTCNexusOne機型,結合國內用戶需求進行了功能定制與優化,受到了大量用戶好評。截止2018年初已更新至MIUI9。主要適配機型:小米手機、紅米手機接口協議與數據備份方式:除Android官方adb外,部分版本集成mdb協議可進行通訊;MIUI系統自帶備份功能,可進行應用程序數據備份。8.1.2常見Android手機廠商及系統特點

2.華為EMUIEMUI(EmotionUI)由華為公司開發,于2012年發布首個版本EMUI1.0,基于當時的Android4.0進行開發,隨著華為公司移動終端產品的不斷豐富,EMUI更新速度也同步加快,截止2018年初,EMUI已更新至EMUI8版本。主要適配機型:華為手機(P系列、Mate系列等)、華為榮耀系列手機接口協議與數據備份方式:可使用Android官方adb進行連接;EMUI系統自帶備份功能,可進行應用程序數據備份。8.1.2常見Android手機廠商及系統特點

3.OPPOColorOSColorOS是OPPO公司基于Android系統深度定制的手機ROM,近年來越來越多國內手機廠商從傳統非智能機轉型至Android智能手機,OPPO便是一個較為典型的例子,通過在手機行業近十年的發展,目前OPPO品牌智能手機在國內手機市場占據了相當的份額;截止2018年初,ColorOS最新版本為ColorOS5.0。主要適配機型:OPPO品牌手機接口協議與數據備份方式:使用Android官方adb進行連接。8.1.2常見Android手機廠商及系統特點

4.vivoFuntouchOSFuntouchOS是vivo公司定制開發的Android操作系統,最初發布于2013年10月,目前主要使用于vivo品牌手機中,最新版本為FuntouchOS4.主要適配機型:vivo品牌手機接口協議與數據備份方式:使用Android官方adb進行連接,部分新版本無法使用adbbackup進行備份。8.1.2常見Android手機廠商及系統特點

8.1.3Android功能特點在本章節的第一部分,我們就Android系統的基本架構進行了簡要介紹,由于Android版本更新迭代較快,不同版本間的功能特點與取證相關聯的特性也不盡相同,本節中,主要選擇針對Android操作系統的一些安全機制方面的功能特點進行介紹。8.1Android智能手機取證概述10%20%30%40%1.應用程序權限機制2.應用程序沙盒機制4.文件級加密3.全盤加密8.1.3Android功能特點

1.應用程序權限機制Android操作系統中,應用程序對于具體系統功能的使用都需要進行對應授權,比如攝像頭、撥號、短信、地理位置、應用程序列表和系統存儲等,這種權限控制可以在應用程序安裝過程中進行提示,也會在應用程序首次運行時進行授權提示。在Android6.0以后的版本中,用戶可以針對應用程序的特定權限進行逐項限制,使得用戶可以根據自己的實際需要,授予或拒絕應用程序的不同功能請求。8.1.3Android功能特點

應用程序權限控制體現在對于取證的影響方面,主要在于,多數手機取證軟件通過推送apk的方式在手機上安裝客戶端,從而實現對未獲得root權限手機的邏輯數據提取,這個過程中,手機取證客戶端讀取短信、通話記錄、聯系人和系統信息時,都會觸發Android系統的權限控制,此時取證人員必須逐一點擊允許客戶端進行讀取,否則將無法獲得相應的數據。8.1.3Android功能特點

2.應用程序沙盒機制Android系統中使用了沙盒機制針對程序權限進行控制,Android為每個應用程序分配了一個獨立的UID(UniqueUserID),從而確保每個應用程序僅能夠訪問自己所屬的存儲和指定的系統權限,在這一機制保護下,潛在的惡意程序與病毒程序無法讀取其他應用程序存儲的數據和系統數據,保護了用戶數據的安全。8.1.3Android功能特點

3.全盤加密Android4.4版本引入了全盤加密(FDE,FullDiskEncryption)機制,在原生Android6.0版本設備中,默認啟用全盤加密設置;全盤加密是使用密鑰(密鑰本身也經過加密)對Android設備上的所有用戶數據進行編碼的過程。設備經過加密后,所有由用戶創建的數據在寫入磁盤之前都會自動加密,并且所有讀取操作都會在將數據返回給調用進程之前自動解密數據。全盤加密默認情況下采用AES-128算法,當用戶設置了屏幕鎖定密碼(包括手勢密碼、數字密碼或字母混合密碼)后,用于加密的主密鑰會被再次加密存儲以保證安全。如果Android設備中開啟了全盤加密,那么,取證時采用拆卸芯片等方式提取的物理鏡像在進行解密之前都無法直接解析,全部數據均為密文形式。8.1.3Android功能特點

4.文件級加密在Android7.0及更高版本中,增加了文件級加密(FBE,File-basedEncryption)。與FDE全盤加密采用一個主密鑰進行加密不同,文件級加密支持針對不同的文件采用不同的密鑰進行加密,并按需進行解密。啟用文件級加密的Android設備可以保證設備在剛開啟但并未解鎖前,部分系統應用數據可以提前解密(DE,設備機密),同時在用戶解鎖設備之前其他類型的個人數據始終處于加密狀態(CE,憑據加密),舉例來說,Android7.0設備開啟FBE加密后,手機開啟后停留在輸入密碼界面,此時系統允許將部分應用數據解密,即便不輸入密碼,系統的鬧鐘和通知消息等應用可以正常使用,而其他用戶數據仍處于加密保護之中。8.1.3Android功能特點

8.1.4Android取證準備工作在了解Android系統的不同層次的取證方式前,首先需要了解有哪幾種方式可以提取Android系統數據、這些方式分別基于什么原理、可以提取到的數據范圍,本節還會介紹如何準備和配置針對Android進行取證的環境。8.1Android智能手機取證概述

1.AndroidSDK安裝AndroidSDK(SoftwareDevelopmentKit開發包)主要用于Android應用程序的編寫測試與調試,其中包括了一系列的文檔和調試工具,包括Adroit手機取證中經常使用到的adb以及AndroidVirtualDevice等均包含在內。AndroidSDK安裝包可以在GoogleAndroid項目頁面下載:/studio/#downloads

8.1.4Android取證準備工作

下載完成后運行安裝包,如下列圖中步驟所示:在安裝過程中,根據需要,可以勾選“AndroidVirtualDevice”工具,該工具可以創建基于任意版本的Android虛擬機,取證調查人員借助該工具可以研究和分析不同版本的Android系統而無需使用實際的手機終端。在全部安裝完成后AndroidStudio將會自動下載完成所需的組件,包括對應的SDK工具包。8.1.4Android取證準備工作

2.AndroiddebugbridgeAndroiddebugbridge(簡稱“adb”)是Android系統用于進行數據傳輸的C/S客戶端協議,對于Android取證來說,adb是非常重要的一個概念,在絕大多數情況下的數據提取、備份都是基于adb進行。使用adb進行通信,除了在計算機端安裝AndroidSDK外,還需要在Android手機端開啟“USB調試模式”,在不同版本的Android系統中,調試模式的開啟方法也有所差異。8.1.4Android取證準備工作8.1.4Android取證準備工作圖8-1?Android手機端連接調試模式授權主要注意的是,在一些廠商定制的Android系統中,開啟USB調試模式的位置可能會與上表中所列的位置不同。8.1.4Android取證準備工作

另外,出于安全考慮,Android4.2.2之后的版本在連接USB調試模式時,需要在屏幕上點擊確認,如上圖所示,這意味著如果手機設置了屏幕鎖定密碼,需要首先解除手機密碼鎖定后才能夠進行USB調試模式連接。3.通過adb連接Android手機當在計算機端安裝AndroidSDK并在Android手機端打開調試模式后,便可以通過adb方式連接手機。將Android手機連接至計算機并允許進行調試連接后,可以使用adbdevices命令查看連接的設備情況。8.1.4Android取證準備工作圖8-2使用adbdevices命令查看已連接的設備情況8.1.4Android取證準備工作

圖8-3?adb手機端未授權連接如設備顯示為“Unauthorized”,則需要先解除屏幕鎖定后允許進行USB調試模式方可。此時,即可以使用adb方式進行數據提取和取證工作。8.1.4Android取證準備工作

8.1.5Android系統邏輯數據提取在上一小節中我們曾提到,在Android取證工作中,adb是非常重要的一個概念,因為多數針對Android的邏輯層面的取證都要依賴于adb的方式進行,在展開介紹之前,首先需要了解一下不同方式手機取證方法的差異。8.1Android智能手機取證概述

圖8-4手機取證工具分級圖(SamBrothers)下圖所示是SamBrothers關于手機取證工具的分級圖,其中,除了最基本的手工提取分析與較為復雜的芯片拆卸方式外,多數手機取證工具都具備的是邏輯數據提取和物理提取功能。8.1.5Android系統邏輯數據提取

邏輯數據提取一般是在手機開機狀態下通過與操作系統進行交互提取存儲中的現有數據,通常意義上Android手機的邏輯數據包括系統信息、短信、通話記錄、聯系人、應用程序數據以及現有的圖片、音視頻等多媒體文件。Android操作系統中的邏輯數據通常存儲在兩種文件中:8.1.5Android系統邏輯數據提取

1.SQLite數據庫文件通常以“*.db”為擴展名,大部分數據存儲于其中,多數SQLite數據庫文件采用不加密明文存儲,可以使用常用的數據庫查看器進行查看和分析。2.XML配置文件XML文件用于保存應用程序參數配置信息,可以直接使用文本查看器進行查看。如下表所示,列出了Android中常用的邏輯數據的包名及數據包路徑。8.1.5Android系統邏輯數據提取8.1.5Android系統邏輯數據提取通常情況下,如Android手機已解除屏幕鎖定并開啟USB調試模式,可以利用adb方式將文件從手機拷貝至計算機中,其命令格式為:Adbpull%源數據位置%%目標位置%比如需要將Android手機中“download”目錄下的“info.xml”文件拷貝至計算機C盤根目錄,可以在命令行中執行如下命令圖85adbpull命令8.1.5Android系統邏輯數據提取需要注意的是,由于Android系統中權限限制,adbpull命令在訪問包括應用程序數據、系統數據時,需要具備root權限,此時需要手機提前進行root操作,或者選擇采用備份應用程序數據包的方式進行提取,關于root相關的介紹請參考本章8.3.1的介紹。從Android4.0開始,Android增加了通過adb方式進行備份的功能,通過該功能可以將Android系統中原本需要root權限才能訪問的應用程序數據使用打包備份的方式進行提取,該命令的主要參數如下:adbbackup[-f備份文件名][-apk|-noapk][-shared|-noshared][-all][-system|nosystem][應用包名]8.1.5Android系統邏輯數據提取

其中,參數“-f”用于指定備份文件的存儲位置,如不特殊指定,默認為adb目錄;“-apk|-noapk”參數分別代表備份或不備份應用程序安裝包apk;“-shared|-noshared”參數代表是否備份共享存儲或存儲卡存儲;“-all”參數表示備份所有可備份的應用程序數據;“-system|-nosystem”參數代表備份是否包含系統應用程序,最后“應用包名”可以單獨制定某個應用包名,實現對于單個應用的獨立備份。8.1.5Android系統邏輯數據提取圖8-6?adbbackup命令8.1.5Android系統邏輯數據提取

在計算機端執行adbbackup后,Android手機端會彈出備份窗口,此時需要點擊界面右下方“備份我的數據”按鈕執行備份。8.1.5Android系統邏輯數據提取圖8-7手機端adbbackup響應8.1.5Android系統邏輯數據提取

備份完成后,在計算機端可以找到“backup.ab”文件(如adbbackup命令執行時未另行指定文件名),對該備份數據包的解析需要將其轉換為可解壓格式,AndroidBackupExtractor可以將“ab”格式的備份包轉換為可解壓的“tar”包。針對adbbackup備份包轉換后所得到的tar包進行解壓,即可獲得所備份的應用程序數據。8.1.5Android系統邏輯數據提取8.2Android系統常見邏輯數據提取分析8.2Android操作系統常見邏輯數據提取分析8.2.1短信息/彩信的提取和分析Android系統中短信息和彩信采用SQLite數據庫方式存儲,默認的存儲位置為:/data/data/viders.telephony/databases/mmssms.dbSQLite數據庫的查看工具可選擇的較多,如SQLiteExpert、SQLiteBrowser以及SQLiteStudio等,本章節后續使用SQLiteExpert作為數據庫查看工具進行介紹和演示。圖8-8?mmssms.db數據庫隨后,使用SQLiteExpert打開該目錄下的“mmssms.db”數據庫,可以看到該數據庫中包含多個數據表。8.2.1短信息/彩信的提取和分析

其中,表“sms”用于存儲短信息及彩信,主要字段如下表所示:8.2.1短信息/彩信的提取和分析

根據上述字段,可以對sms表中的短信記錄進行逐項解釋,這其中多數字段采用整型數與文本格式存儲,其中,“person”字段編號與存儲聯系人信息的“contacts2.db”中的聯系人編號對應(詳見本章8.2.3),而“date”與“date_sent”字段的時間采用Unix毫秒計數,需要進行轉換變為標準日歷時間,轉換時可以使用ClockSmith等工具進行,轉換后所得時間為UTC世界協調時,還應根據所在時區調整時差。8.2.1短信息/彩信的提取和分析圖8-9短信時間轉換8.2.1短信息/彩信的提取和分析

8.2.2通話記錄提取和分析Android系統中通話記錄與聯系人存儲于同一SQLite數據庫中,其路徑為:/data/data/viders.contacts/databases/contacts2.db使用SQLiteExpert打開該數據庫,其中“calls”數據表用于存儲通話記錄項目。8.2Android操作系統常見邏輯數據提取分析

需要注意的是,在部分品牌手機定制的Android系統中,“contacts2.db”數據庫中并不直接使用“calls”數據表存儲通話記錄,而是將該數據單獨存儲為其他的數據庫,比如華為EMUI的“calls.db”數據庫用于存儲通話記錄,取證人員需要根據實際情況尋找對應的數據來源。8.2.2通話記錄提取和分析

該數據表中記錄了通話記錄的相關信息,其主要字段如下表所示:8.2.2通話記錄提取和分析8.2.2通話記錄提取和分析在部分品牌手機定制的系統中,除了標準通話記錄的字段,還會增加諸如黃頁標記、來電識別歸屬地等個性化功能,這些數據也會一并存儲在其對應的數據庫中。圖8-10通話記錄的其他字段8.2.2通話記錄提取和分析8.2.3聯系人信息提取和分析聯系人信息與通話記錄信息一樣,存儲在“contacts2.db”數據庫中,其中與聯系人相關的幾個主要數據表包括:1.groups表:聯系人分組信息2.contacts表:聯系人信息3.raw_contacts表:存儲更多關于聯系人的字段數據4.mimetypes表:定義聯系人信息中的mime類型5.data表:按行存儲的聯系人詳細信息圖8-11?groups表下面逐一進行分析:1.groups表groups表存儲了用戶針對聯系人進行的分組信息,“title”字段是群組名稱,“note”字段是群組描述。8.2.3聯系人信息提取和分析

2.contacts表contacts表保存了聯系人的聯系次數和信息更新時間等信息,其表結構如下:8.2.3聯系人信息提取和分析

3.raw_contacts表與上面的contacts表類似,raw_contacts表儲存了關于聯系人的更多屬性信息,比如聯系人的顯示名稱、個性化手機鈴聲等。8.2.3聯系人信息提取和分析

4.data表data表用于存儲聯系人詳細的信息,隨著Android手機版本不斷更新,所支持的聯系人字段較之以往非智能手機簡單的電話號碼、姓名、電子郵件等字段以外更為豐富,比如聯系人的即時通訊賬號、頭像照片以及個人網站等信息,這些信息通過data表與mimetypes表的關聯存儲在數據庫中:8.2.3聯系人信息提取和分析圖8-12?data表8.2.3聯系人信息提取和分析8.2.3聯系人信息提取和分析

通過上面的圖表可以看到,data表中保存的數據看起來并不規律,既有電子郵件,還有姓名或者電話號碼,其實這些信息與其他數據表均有關聯——其中,raw_contact_id代表聯系人唯一的id號碼,同一個id號碼的聯系人后方的data1至data15存儲的數據屬于同一聯系人,而mimetypes_id的數值決定了后續data1至data15為哪種數據提供存儲,mimetypes_id的詳細定義由mimetypes表存儲,我們繼續向下分析該表。8.2.3聯系人信息提取和分析

5.mimetypes表mimetypes表中按照其id分別指定了該類型存儲的數據項目,下圖是一個典型的mimetypes表,可以看到,字段“_id”為“1”的數據項代表“vnd.android.cursor.item/email_v2”,從字面即可判斷為電子郵件數據;而“_id”為“5”代表為電話號碼,“7”為姓名。8.2.3聯系人信息提取和分析圖8-13?mimetypes表8.2.3聯系人信息提取和分析

根據這樣的定義,結合data表中的內容來分析便清晰很多,如下圖中畫框部分,相同的“raw_contact_id”值“25”表示這些信息屬于同一聯系人,分別是他的電話號碼(mimetypes_id為5)、姓名(mimetypes_id為7)和他所屬的聯系人分組信息(mimetypes_id為12)。8.2.3聯系人信息提取和分析圖8-14同一聯系人的多項mimetypes記錄通過對上述數據表的分析,可以較為完整地提取Android系統中聯系人的相關數據。8.2.3聯系人信息提取和分析

8.2.4

瀏覽器歷史記錄提取和分析在針對Android手機的取證工作中,調查與瀏覽器相關的瀏覽記錄是一項較為主要的工作,與計算機瀏覽器類似,Android平臺也有多種不同類型的瀏覽器,常見的有GoogleChrome、FireFoxMobile、Opera以及國內的UC瀏覽器、QQ瀏覽器和360瀏覽器等。本節主要以Android系統自帶瀏覽器為例,介紹如何分析瀏覽器的相關記錄。8.2Android操作系統常見邏輯數據提取分析

Android自帶瀏覽器的數據包路徑位于:/data/data/com.android.browser/browser2.db通過adb方式或其他方式將該文件提取至分析計算機,使用SQLite數據庫查看器打開該數據庫,與瀏覽器用戶痕跡相關的主要為該數據庫的兩個數據表。8.2.4瀏覽器歷史記錄提取和分析

圖8-15?history表1.history表數據庫中的history表保存了瀏覽器的所有瀏覽歷史記錄。8.2.4瀏覽器歷史記錄提取和分析

該表中,“title”字段為瀏覽網頁的標題,“url”字段為網頁完整URL地址,“created”字段存儲的是防衛該網頁的時間,需要注意的是,此處的時間與其他數據庫中的時間格式相同,均為Unix毫秒計時間,默認為UTC時間,需要根據所在時區調整。8.2.4瀏覽器歷史記錄提取和分析

圖8-16?bookmarks表2.

bookmarks表數據庫的bookmarks表保存了瀏覽器中所有的書簽記錄。由于篇幅所限,其他第三方瀏覽器的數據分析本章不再贅述,讀者可根據實際情況選擇工具進行手工提取和分析。8.2.4瀏覽器歷史記錄提取和分析

8.2.5

郵件客戶端信息的提取和分析Android系統中自帶的電子郵件客戶端允許用戶直接配置帳戶信息后進行郵件的收發,相對于iOS系統中郵件的高安全級別,分析Android平臺的電子郵件數據則較為簡單。Android系統自帶電子郵件客戶端數據包的路徑位于:/data/data/com.google.android.email/databases/EmailProvider.db8.2Android操作系統常見邏輯數據提取分析

使用SQLite數據庫查看器打開該數據庫,發現其主要數據表結構如下:Account表:記錄郵件賬戶信息Attachment表:記錄郵件附件信息HostAuth表:記錄電子郵件收發服務器地址及郵箱帳戶密碼信息Mailbox表:郵箱文件夾信息Message表:電子郵件摘要數據8.2.5郵件客戶端信息的提取和分析

此外,完整的電子郵件則保存在以下數據庫中:/data/data/com.google.android.email/databases/EmailProviderBody.db電子郵件客戶端的分析工作與前幾節中介紹的針對通話記錄和聯系人數據的分析類似,如需得到完整信息,需要將上述兩個數據庫中不同表的信息相互關聯起來。如下表所示,我們選擇一封郵件并節選其部分字段,用以解釋電子郵件在上述兩個數據庫中的存儲方式,展示其關聯關系:8.2.5郵件客戶端信息的提取和分析8.2.5郵件客戶端信息的提取和分析圖8-17EmailProviderBody數據庫中的完整內容隨后根據其郵件id“32”,在EmailProviderBody.db數據庫中,可以找到該郵件的完整內容。8.2.5郵件客戶端信息的提取和分析

由于采用SQLite數據庫方式存儲,Android系統的電子郵件數據除了可以采用上述方法進行手工分析外,還可以借助專業的手機取證軟件對已刪除的電子郵件數據進行恢復。8.2.5郵件客戶端信息的提取和分析

8.2.6

微信數據的提取和分析如前文所述,Android智能手機的邏輯數據提取包括了短信、通話記錄、聯系人這些系統數據,還包括手機中安裝的各類App數據,在當前的手機取證工作中,針對App的提取和分析已經成為手機取證的重要工作內容,與此同時,對于各類手機App的取證也為調查人員帶來了更多的挑戰,例如:面對日益增加的應用程序安全機制如何才能有效提取數據?手機App快速更新導致數據存儲方式變化該如何進行分析?……8.2Android操作系統常見邏輯數據提取分析

作為在國內目前最為主流的手機即時通訊應用,微信擁有極為龐大的用戶群體,對微信App的取證也顯得更為重要,本節中,我們選擇微信這一具有代表性的Android應用程序,來介紹一下如何提取和分析微信的數據。在Android系統中,微信官方版本的數據包存儲路徑為:/data/data/com.Tencent.mm/在該路徑下的MicroMsg目錄用于存儲微信聊天記錄。8.2.6微信數據的提取和分析

需要額外注意的是,由于Android微信App6.0以上版本不再允許采用用戶使用adbbackup方式備份自身數據,提取微信數據一般需要在手機端取得root權限,或制作手機物理鏡像后方可進行分析。8.2.6微信數據的提取和分析圖8-18com.Tencent.mm目錄8.2.6微信數據的提取和分析

在MicroMsg目錄下,根據所使用微信賬號數量的不同,存在一個或多個對應的以MD5值命名的目錄,用于保存不同賬號所對應的微信數據,該MD5值為來源于md5(mm,UIN),代表不同微信賬號對應的數據。8.2.6微信數據的提取和分析圖8-19多個微信賬號對應的目錄8.2.6微信數據的提取和分析圖8-20?EnMicroMsg.db數據庫8.2.6微信數據的提取和分析

對應微信賬號下的EnMicroMsg.db數據庫用于存儲微信聊天記錄,和前面介紹的多數系統信息采用SQLite數據庫不加密明文存儲不同,微信對于其數據庫進行了加密,加密方式為SQLcipher,此時需要計算出對應的密碼來進行解密。計算數據庫密碼需要掌握兩個要素,首先,通過直接查看手機中的“關于”信息,或在撥號界面輸入“*#06#”獲取手機的IMEI/MEID信息;然后,在微信數據包路徑“com.tencent.mm\shared_prefs\auth_info_key_prefs.xml”中找到明文存儲的微信UIN值。8.2.6微信數據的提取和分析圖8-21?微信UIN值8.2.6微信數據的提取和分析隨后,將兩者按照下方形式組合計算MD5散列,并取其散列值前7位,即為對應的“EnMicroMsg.db”的加密密碼:8.2.6微信數據的提取和分析圖8-22解密后的微信數據庫使用支持SQLCipher的數據庫查看器打開EnMicroMsg.db數據庫,使用上述7位密碼即可打開加密的微信數據庫。8.2.6微信數據的提取和分析

EnMicroMsg.db數據庫中主要包含以下數據表:8.2.6微信數據的提取和分析8.2.6微信數據的提取和分析對解密后的微信數據庫進行分析,便可以較為完整的提取微信App中的各類數據。本節選擇微信App為例介紹了針對Android系統中App程序的手工分析方法,目的在于使讀者對于AndroidApp的數據存儲方式和分析思路形成系統性的理解,而在實際取證工作中,多數App程序的數據庫并未加密存儲,且通過手機取證軟件均可直接進行提取和分析。8.3Android密碼繞過與物理取證8.3Android密碼繞過與物理取證8.3.1獲取root權限

在進行Android手機取證工作時,獲取Android手機的root權限是很多數據提取的先決條件,在本章開頭部分我們介紹到,Android是基于Linux內核開發的移動設備操作系統,而在類Unix操作系統中,root用戶據有最高級別權限,所以,基于安全方面的考慮,幾乎所有版本的Android手機在默認狀態下都不提供root權限。因此,對于取證調查人員來說,熟悉和了解獲取root權限的原理,掌握常用的獲取手機root權限的方法,以及清楚理解root一部手機可能產生的影響與風險,便顯得尤為重要。接下來的部分將概括介紹目前Android手機常用的獲取root權限的方法及相關的概念及應用。

1.root的本質root是對于系統的修改,通常情況下是利用了廠商在軟件或硬件上的安全缺陷或漏洞,將特定的程序(su)附加并執行來進行權限提升。由于這個過程是未經廠商許可進行的修改,所以存在導致手機軟件與硬件故障且無法還原的風險,這將會直接導致電子證據的滅失!在任何情況下,取證人員都應清楚意識到這一風險,在具備條件的情況下首先進行測試驗證,并在取證過程中詳實記錄全部操作。8.3.1獲取root權限

2.通過第三方root工具獲得root權限互聯網上有許多第三方工具可以根據手機型號和系統版本,提供對應的開機root權限獲取功能,常見的此類工具包括Kingroot、360一鍵root、root精靈等,一般情況下,Android系統版本較早的手機(一般為Android4.4及之前的版本)更容易獲取root權限,而Android版本較高、安全更新日期較新的手機使用此類工具獲取root權限成功率較低。3.通過刷入第三方Recovery獲取root權限Android系統的Recovery分區用于對系統更新和系統恢復,在早期版本的Android中,常用的第三方Recovery程序包括CWM(ClockWorkMod)Recovery,而適用于較新版本Android的第三方Recovery主要包括TWRP(TeamWimRecoveryProject)等。8.3.1獲取root權限圖8-23?TWRPRecovery界面在Android手機中刷入修改后的第三方Recovery,重啟進入Recovery模式,第三方Recovery將直接提供adb及root權限進行數據獲取。8.3.1獲取root權限

部分廠商定制系統提供獲取root權限功能除了以上方式以外,一些品牌Android手機采用廠商定制ROM,提供或部分提供了臨時性的root權限,比如部分魅族品牌手機,在登錄用戶賬號后可以臨時開啟root權限。目前主流的Android操作系統取證工作中,使用最多且適用范圍最廣的是采用“刷入第三方Recovery”的方式,下面我們進一步介紹具體方法。8.3.1獲取root權限8.3.1獲取root權限

(1)解除Bootloader鎖:為了防止用戶通過刷寫分區修改系統,近年來,Android手機廠商開始對刷機行為進行限制,主要方式是增加Bootloader鎖定,Bootloader鎖定后將會在開機時自動檢查boot.img和recovery.img,如果簽名驗證發現刷入了第三方的boot包與Recovery包,將拒絕繼續引導系統。所以,在刷入第三方Recovery之前,需要先解除這個鎖定。目前多數Android手機廠商均提供了官方渠道,用戶只需提交設備信息和賬號,即可申請解除Bootloader鎖,但官方解鎖不適用于所有品牌手機,比如華為手機如通過官方渠道解除Bootloader鎖將有可能自動清除所有數據。8.3.1獲取root權限

(2)刷入第三方Recovery:解除Bootloader鎖后,便可開始刷入第三方Recovery分區,針對不同品牌不同型號的手機,刷入方式也不盡相同,常用的方式包括在Fastboot模式下刷入和使用專用刷機工具刷入。(3)進入第三方Recovery:完成Recovery分區刷寫后,使用快捷鍵組合進入Recovery模式,即可獲取root權限。8.3.1獲取root權限

8.3.2繞過Android設備密碼在很多實際取證操作中,Android手機設置了密碼或者由于調查對象特殊等原因,無法獲知設備密碼,在這種情況下,取證分析人員必須通過技術手段繞過或者恢復出手機密碼才可以開展進一步的取證工作。8.3Android密碼繞過與物理取證

1. Android操作系統的密碼類型通常情況下,Android操作系統允許用戶設置三種類型的屏幕鎖定,分別是圖案密碼、數字密碼、混合密碼。隨著手機功能的不斷豐富,很多新款Android手機也提供了基于生物特征的密碼功能,比如指紋密碼、人臉識別密碼、聲紋密碼以及虹膜密碼等,但是在使用這些生物特征作為解密憑據時,必須依賴上述三種形式的密碼作為基礎密碼。8.3.2繞過Android設備密碼俗稱“九宮格”密碼,使用9點連線形成的組合圖形作為密碼。圖案密碼混合密碼也稱為文本密碼,允許用戶使用任意文本字符作為密碼(包括數字、大小寫字母和符號等)。數字密碼采用純數字形式的密碼,一般要求至少由4位數字組成。Android操作系統的密碼類型

2. 圖案密碼的加密原理(Android2.2至Android5.x)圖案密碼的加密方式主要分為“圖案輸入”、“明文轉換”、“計算散列”三個步驟,舉例來說:(1)用戶設置圖案密碼“Z”字母圖形,如8-24圖所示。(2)系統按照點位排列將上述圖案依序轉換為00-01-02-04-06-07-08;(3)對這個順序字符串00010204060708進行SHA-1散列計算,得到散列值6a062b9b3452e366407181a1bf92ea73e9ed4c48;(4)將該散列值存儲為gesture.key文件。8.3.2繞過Android設備密碼

圖8-24設置圖案密碼8.3.2繞過Android設備密碼

3.數字密碼與混合密碼加密原理(Android2.2至Android5.x)(1)用戶輸入文字密碼“hello123”;(2)系統在字符串中混入Salt值;(3)將整合后的字符串分別計算SHA-1和MD5散列,并將散列值合并;(4)合并后的散列值存儲為password.key文件。8.3.2繞過Android設備密碼

在Android6.0以及之后的版本中,針對設備屏幕鎖密碼的安全機制做了進一步加強,在原有基礎上引入了Gatekeeper機制,用于校驗和加密原來的設備密碼,用于存儲密碼的文件名稱也做了變更。8.3.2繞過Android設備密碼

4.清除key文件實現密碼繞過了解了三種密碼的加密原理,便可以通過刪除對應加密方式的密碼文件,實現對于系統密碼的繞過操作,如果該設備已經通過不同方式獲取了root權限,則可以直接使用adb命令對“gesture.key”、“password.key”等文件進行重命名或刪除來實現清除設備鎖密碼。例如,使用如下命令刪除圖案密碼的key文件。adbshellcd/data/systemrmgesture.key刪除后可以直接繞過圖案密碼進入系統。8.3.2繞過Android設備密碼

5.Android4.4.2版本adb密碼繞過據安全研究機構的報告,Android4.4.2版本在屏幕密碼鎖定的情況下,可以通過重啟adb指令來實現無密碼授權adb連接,具體操作方式是:(1)將密碼鎖定的Android4.4.2手機連接計算機;(2)將屏幕滑動至“緊急撥號”或“相機”界面;(3)執行如下命令:adbkill-serveradbshell8.3.2繞過Android設備密碼

(4)此時,授權USB調試連接的對話框將直接跳出,無需輸入密碼即可點擊允許USB調試連接。對Android手機的密碼進行繞過,目的主要是為了進入用戶界面,從而可以與系統交互進行多數邏輯取證工作,而如果Android手機版本較高、無有效獲取root權限的方式,則需要考慮選擇對設備制作物理鏡像的方式來提取所需數據。8.3.2繞過Android設備密碼

8.3.3Android物理鏡像的提取針對Android手機進行物理提取通常可以采用以下幾種方法,下面分別進行介紹與演示。1. 已root設備制作鏡像在以獲取root權限的情況下,可以直接使用dd命令對Android手機指定分區進行物理鏡像。8.3Android密碼繞過與物理取證圖8-25?shell下枚舉分區連接手機并開啟調試模式,在命令行中輸入adbshell,su,使用“mount”枚舉手機中所有分區信息:8.3.3Android物理鏡像的提取

從輸出結果中可以看到,該手機對應的分區掛載信息,包括system系統分區,userdata用戶分區以及cache緩存分區等,其中用戶數據分區掛載點為:/dev/block/platform/msm_sdcc.1/by-name/userdata,使用dd命令,可以將userdata分區數據進行物理鏡像操作。ddif=/dev/block/platform/msm_sdcc.1/by-name/userdataof=/sdcard/data.img通過執行上述命令,userdata分區將會被轉出為鏡像文件,保存至手機SD存儲卡中。8.3.3Android物理鏡像的提取

2.聯發科MTK處理器手機提取物理鏡像聯發科技(MediaTek,簡稱MTK)是臺灣地區的芯片制造商,其芯片產品主要面向無線通信以及數字多媒體產品。在Android智能手機普及前,其中低端手機芯片解決方案占據了國內市場份額的大半。目前,聯發科解決方案覆蓋了從高端到中低端Android手機;通過聯發科的底層刷機工具“SPFlashTool”,可以針對采用指定聯發科處理器方案手機進行分區鏡像下載。8.3.3Android物理鏡像的提取

我們以采用聯發科MT6797的某款國內品牌手機為例,在取證計算機端安裝“SPFlashTool”工具并運行,隨后,在其中選擇對應的處理器型號,指定對應的分散加載文件(scatterfile),分散加載文件用于描述該型號處理器的存儲中各個block的范圍,取證人員可以在其他同樣使用MT6797處理器的手機中導出。8.3.3Android物理鏡像的提取圖8-26使用MTKSPFlashTool下載MTK手機分區鏡像8.3.3Android物理鏡像的提取8.3.3Android物理鏡像的提取加載完畢后,下方列表展示了該手機存儲中對應的分區信息,選擇用于保存用戶數據的“userdata”分區,隨后點擊“Download”按鈕,將需要制作鏡像的手機關機后使用數據線連接,即可開始鏡像下載。

3. 高通處理器手機提取物理鏡像高通(Qualcomm)公司是全球移動通信行業的領軍企業,其面向移動終端的“驍龍(SnapDragon)”系列處理器被廣泛用于中高端Android智能手機;與聯發科類似,針對部分型號的高通手機,也可以使用廠商的底層刷機工具提取手機的物理鏡像。高通面向手機維修與售后人員提供了QualcommProductSupportTool(QPST)支持工具包,其中所包含的QualcommFlashImageLoader(QFIL)工具可以直接下載采用高通處理器手機的物理鏡像。8.3.3Android物理鏡像的提取

使用高通鏡像下載工具下載鏡像,需要手機進入高通9008模式,根據手機的不同,可分別采用“adbrebootedl”方式、Fastboot方式或使用專門的“9008數據線”進入該模式。手機進入9008模式后,可以在設備管理器中識別到該設備名稱“QualcommHS-USBQDLoader9008”。8.3.3Android物理鏡像的提取圖8-27高通9008模式設備識別8.3.3Android物理鏡像的提取圖8-28

高通QPST中的QFIL工具8.3.3Android物理鏡像的提取隨后打開QFIL鏡像下載工具,使用該工具下載鏡像還需要選擇手機對應的“*.mbn”文件和,通過下載該手機官方提供的線刷刷機包,可以直接提取出對應的文件。圖8?29QFIL工具查看手機分區8.3.3Android物理鏡像的提取如提供的“*.mbn”無誤,接下來直接使用QFIL中的分區查看器瀏覽手機存儲中的分區情況。圖8-30?QFIL下載userdata分區向下拖動,找到主要用于保存用戶數據的userdata分區,選擇讀取該分區數據。待下載結束后,即可獲取完整的userdata分區物理鏡像。8.3.3Android物理鏡像的提取

8.3.4獲取Android外置存儲設備鏡像在部分Android手機上,除了使用內置的存儲外,還允許用戶插入額外的擴展存儲卡來存儲數據,目前較為常用的是MicroSD存儲卡(也稱TF存儲卡),用戶不僅可以將Android手機拍攝的圖片視頻等多媒體文件存儲在擴展存儲卡中,App也可以將自身數據存儲在擴展存儲卡中;在進行Android手機取證時,如手機使用了外置擴展存儲卡,也應對存儲卡制作物理鏡像,便于后續進行刪除恢復和數據分析工作,同時避免遺漏數據。Android系統中的外置擴展存儲卡一般采用FAT32/exFAT文件系統,這樣有助于數據在手機與計算機之間進行數據傳輸共享,所以,對外置存儲卡制作鏡像的方法可以使用Winhex/FTKimage等進行鏡像。8.3Android密碼繞過與物理取證

8.3.5Android物理鏡像的分析通過前面兩節中演示的方式,當完成了Android手機物理鏡像的提取后,取證人員可以不受限制地對鏡像文件進行分析,以主要保存用戶數據的userdata分區為例,該分區使用了Linux系統中常見的ext4文件系統,這就意味著,使用絕大多數計算機取證軟件、手機取證軟件甚至使用普通磁盤工具都可以對其進行分析。本節中,我們分別使用磁盤編輯工具、開源取證工具、計算機取證軟件、手機取證軟件介紹如何解析Android物理鏡像文件。8.3Android密碼繞過與物理取證

1.使用磁盤編輯工具Winhex分析Android物理鏡像Winhex是電子數據取證與數據恢復工作中常用的一款磁盤編輯工具,支持多種常見的文件系統解析,利用Winhex的鏡像文件轉換功能,取證人員可以在轉換后的文件結構中提取需要分析的文件。8.3.5Android物理鏡像的分析圖8-31使用WinHex將鏡像文件轉換為磁盤8.3.5Android物理鏡像的分析

在Winhex中打開Android手機物理鏡像,此處我們使用上一節中通過高通9008模式下載的userdata鏡像為例,打開后,使用Winhex菜單中“Specialist”→“InterpretImageFileAsDisk”功能將鏡像文件轉換為磁盤。8.3.5Android物理鏡像的分析圖8-32?WinHex解析后的磁盤結構8.3.5Android物理鏡像的分析

解析完成后即可根據需要在相應的路徑進行數據導出操作,提取文件進行進一步分析,如應用程序數據包、系統邏輯數據等。2.使用開源取證工具Autopsy解析Android物理鏡像Autopsy是一款開源的免費圖形界面取證工具,其具備了案例管理、證據解析和分析等一系列完整的取證功能,該軟件最新版本可以從/

下載。完成Autopsy后打開,并建立案例,8.3.5Android物理鏡像的分析圖8-33在Autopsy中新建案例8.3.5Android物理鏡像的分析圖8-34添加鏡像文件隨后,添加提取過的Android物理鏡像文件。8.3.5Android物理鏡像的分析圖8-35選擇分析模塊8.3.5Android物理鏡像的分析

Autopsy處理完成后,展開軟件左側樹形視圖可以展示出該Android物理鏡像的存儲結構,可以進一步選擇導出文件進行分析,也可以利用Autopsy自帶的搜索功能,搜索指定的關鍵詞或手機號碼、郵箱地址等信息。8.3.5Android物理鏡像的分析圖8-36?Autopsy解析結果8.3.5Android物理鏡像的分析

3. 使用計算機取證軟件分析Android物理鏡像無論是Android操作系統還是iOS操作系統,移動終端操作系統與桌面操作系統具有諸多相似之處,尤其在于文件系統方面,Android操作系統所使用的文件系統主要包括Linux文件系統ext以及Windows文件系統格式FAT32,這就意味著即便是并非來源于計算機硬盤,Android物理鏡像也一樣可以使用計算機取證軟件進行解析和分析。值得一提的是,近年來隨著移動終端的普及,主流的計算機取證軟件也逐漸增加了對于手機等智能移動終端的數據分析功能;本節我們選用EnCase為例,演示使用計算機取證軟件分析Android物理鏡像。首先在EnCase中新建案例,在添加Android物理鏡像時需要注意,EnCase7及以后的版本中,添加包括DD、Bin、Img等擴展名在內的各類非E01證據鏡像,需要使用“AddRawImage(添加原始鏡像)”功能加載。8.3.5Android物理鏡像的分析圖8-37?在EnCase中加載Android物理鏡像加載完畢后,便可利用EnCase進行文件分析、關鍵詞搜索、數據恢復、全文索引等分析工作。8.3.5Android物理鏡像的分析

4.使用手機取證軟件分析Android物理鏡像工欲善其事必先利其器,除了使用通用型的工具輔助對Android物理鏡像進行解析和分析之外,我們還可以直接使用專用的手機取證軟件對Android物理鏡像進行分析。目前市面上主流的商業版手機取證產品幾乎都具備從邏輯提取到物理提取、鏡像分析在內的所有功能,并可以直接進行手機App應用解析及刪除恢復。本例我們選擇使用美亞柏科“DC-4501手機取證系統”演示如何使用專業的手機取證工具解析提取的物理鏡像。8.3.5Android物理鏡像的分析圖8-38?DC-4501手機取證系統添加Android物理鏡像8.3.5Android物理鏡像的分析圖8-38?DC-4501手機取證系統添加Android物理鏡像8.3.5Android物理鏡像的分析打開DC-4501手機取證系統(后文簡稱“手機取證系統”),新建案例,并

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論