Android-APP 安全(六)之android取證

Android-APP 安全(六)之android取證

上一篇Android-APP 安全(五),通過對android系統文件系統與數據結構的認識(應用程序運行時產生的數據、數據的存儲方式、存儲路徑、內存中可能包含的應用程序用戶數據、android使用的文件系統以及查看方式等。)可以嘗試手工對android系統進行檢查取證,手工取證雖然繁瑣以及耗費時間,但是卻能更好的瞭解android系統。

下面是針對android系統的兩種取證方式:邏輯採集以及物理採集的快速取證的介紹。我在Android-APP 安全(四)中對邏輯採集以及物理採集的概念有過提到:

Android-APP 安全(六)之android取證

Android取證:adb push

adb push用於將文件系統的不同部分複製到工作站中進行進一步分析。除非對android終端設備具有root訪問權限,或者運行的是一個定製的只讀內存(ROM),否則,運行在終端設備上的adb後臺進行只能在擁有shell訪問權限的狀態下運行,因此,它無法訪問某些與取證更加相關的文件。但還是可以訪問到一定數量的文件。

如果需要對某些shell用戶沒有訪問權限的文件進行訪問,很簡單,這些文件不會被複製出來。但是,如果擁有足夠的訪問權限,這個方法就非常簡單,也非常有效。

由於大多數的手機都沒有root權限(至少默認情況下),此技術顯得沒有什麼價值。然而,這是一個非常強大的、需要很好理解的工具,也有一些場景非常適合應用此技術。這些場景包括:

  • 對於沒有root訪問的終端設備,adb pull仍然可以用來訪問非常有用的文件(如未加密的應用程序)、大多數可能包含諸如瀏覽器記錄一類用戶數據的tmpfs文件系統以及存在於/proc、/sys及其他可讀目錄下的系統信息。對於具有root訪問權限的終端設備,獲取幾乎所有的目錄非常簡單,某些存在於/data下的文件和目錄將是有用的。當使用物理技術時,掛在諸如YAFFS2之類用於取證的文件系統不一定總是可行的。如果adb運行在root訪問權限下,則可以使用adb pull快速地抽取文件系統的一個邏輯副本。

由於adb不但在Android軟件開發套件(SDK)中是一款免費的應用程序,而且它的用途非常廣泛,因此,adb應該作為使用的終端設備上的主要邏輯工具之一。

注:某些使用adb的遞歸拉取可能在數據傳輸過程中失敗,可能由於訪問權限問題或者其他問題。因此,對於執行命令的結果要進行密切監控,以確定是否遇到任何問題。將對一個大目錄的遞歸拉取分解為若干個小的數據拉取也許會產生更好的結果。

在之前文章Andorid-APP 安全測試(二)中進程注入保護部分就需要用到adb push以及adb pull,但是並未提及太多。

輸入命令adb remount ,意思是將設備改為可讀可寫;

顯示remount succeeded就代表命令執行成功;

Android-APP 安全(六)之android取證

Android-APP 安全(六)之android取證

這裡做一個引申:

Android中adb push和adb install的使用區別

在Android實際開發中,經常會使用adb命令,安裝應用程序可以使用adb push 或者adb install。下面就來講講這兩種安裝方式的區別。

1、adb push 能夠指定安裝目錄。比如執行”adb push xxx.apk system/app” 後,xxx.apk被安裝到了system/app目錄下,此目錄下的軟件為system application。(注意,system/app是隻讀的,所以只有有root權限才能push apk進去,而且在push進去的apk會把原本的apk覆蓋掉。)adb push本身的意思是將文件複製到系統中的某個文件夾下,但是將apk push到system/app下並且重啟手機以後會註冊應用程序。

2、adb install 用此命令安裝的軟件位於 data/app 目錄,帶有參數 -r才能強制安裝,為user application。

push

install

目錄

System/app

Data/app

權限

系統級(權限全開)

用戶級(沒全開)

卸載

root後刪除

可卸載

大小

無限制,自定義

有限制

安裝

pm重新註冊

不會重新註冊

Android取證:手動轉儲應用的數據庫

上面已經介紹到,使用adb pull幫助我們進行數據轉儲。我們還可以使用adb 和我們的手動技能從設備中提取一些信息。前面學到,應用程序文件存儲在/data/data/[應用程序的報名]/位置。大多數應用程序都使用數據庫來存儲數據,我們在做滲透測試時分析本地敏感文件的存儲時都會注意到/data/data/[應用程序的報名]/databases的文件夾。然後將.db文件格式的文件導出到本地用sqlite工具打開。

手動提取步驟:(我在我前面文章Andorid-APP 安全測試(二)中有詳細介紹:https://www.secpulse.com/archives/76102.html

Android-APP 安全(六)之android取證

Android-APP 安全(六)之android取證

注:這裡我們可以使用一個簡單的命令行絕技來查找和複製/data/data中的所有.db文件。首先使用find命令查找所有.db文件:find . –name “*.db” –type f

如圖:(打碼很專業~)

Android-APP 安全(六)之android取證

然後可以簡單的時候cp和find複製:find . -name "*.db" -type f -exec cp {} E:\\ad \\;

Android取證:數據備份

在Android第一次被推出時,Android沒有提供任何備份個人數據的機制。後果就是,很多人開發出備份應用軟件,並在Android市場上進行發佈。對於使用定製的只讀內存(ROM

)的用戶,甚至開發出了一款更加強大的叫做nandriod的備份應用。

介紹下nandriod:

NANDroid,如何加載NANDroid備份?

什麼是Nandroid備份?

基本上,它是您的Android設備的鏡像。Nandroid備份將絕對保存您設備上的所有內容,包括圖片,音樂,鈴聲,系統設置,存儲的密碼等。你將有一個完整的複製品你手機上的一切。這還包括您的自定義ROM的副本,您的遊戲和您的進度。一個完整的體統鏡像可以被重新刷回手機。其不僅僅是簡單備份,因為他包含了當前在你手機內存裡的所有內容:Boot、Recovery、系統、數據、緩存,等。他是你手機整個ROM的快照。

執行NANDroid備份的方法:進入clockwork recovery,進到“Backup and Restore”選項中執行。NANDroid備份將會被保存在sd卡ClockworkMod文件夾內。

如何加載NANDroid備份?

如果你可以進入clockwork recovery的話,只需簡單的從他的菜單里加載NANDroid

如果你的手機變磚從而無法進入clockwork recovery的話,也有最後一個方法:單獨下載clockwork recovery至PC裡,然後打開cmd控制檯,進入存有clockwork recovery的目錄,使用以下ADB命令刷寫:“fastboot flash recovery recovery-clockwork-2.5.1.2-vision.img”。(前提是你的PC上有ADB環境,不過好像這招對白卡解鎖的機器無用)

如何創建Nandroid Backup:

1.通過按音量調低和電源按鈕(可以使用大多數設備)啟動引導加載程序。

2.啟動進入恢復模式。

3.打開備份和還原。

4.選擇備份,如果有足夠的空間備份進程將開始。一旦備份過程結束,您將被帶到CWM主屏幕。

很多這些備份軟件都有一個“Sava to SD Card”的選項,還有幾個保存在“the cloud“的選項。無論採用何種方式,用戶需要親自對他們的終端設備進行備份,在需要時又將備份的數據進行修復。這不但是一個用戶保護數據不受損害的方法,而且還是一個取證分析師可以獲取大量數據的來源。

其中一個很流行的備份應用程序是RerWare公司的My Backup Pro,用於將終端設備上的數據在內容服務提供商處進行備份,如果具有root訪問權限,還可以將整個/data/data中的文件進行備份。用戶可以選擇是將數據保存在SD卡上,還是保存在RerWare的服務器上。

My Backup Pro

MyBackup Pro是一款簡單卻強大的備份工具,能夠備份你的軟件、通訊錄、呼叫歷史、書籤、信息、設置、桌面快捷方式、鬧鐘音樂播放列表等等到SD卡或雲端,備份和還原都很方便。

很有趣的是,這一款應用軟件不但可以在Android上運行,而且還可以在windows mobile、黑莓上運行。用戶可以將數據備份在一個平臺上,然後在另外一個完全不同的平臺上進行恢復。如果將終端設備的備份保存在本地,RerWare會在SD卡上保存一個SQLlite文件。

不論是否有備份應用軟件,取證分析師都必須確定是否安裝了任何備份應用軟件,而如果有的話,備份數據保存在哪裡,與其他的終端設備如個人計算機或筆記本電腦一樣。很明顯,保存在備份中的數據對於取證檢查來說具有巨大的價值。

adb backup

Android 從 4.0 起引入了使用adb的備份功能。 此功能可用於創建應用程序的備份及其整個數據。 這在取證上非常有用,因為取證員可以捕獲應用程序及其整個數據。 請參閱以下步驟:

1、這可以通過在終端中執行adb backup命令,後面附帶應用程序的包名來完成。 如果我們不知道應用程序的準確包名稱,我們可以使用pm列出所有包,然後過濾應用程序名稱。

Android-APP 安全(六)之android取證

2、執行此操作的另一種方法是使用pm list package命令,其中-f標誌指定要在包名稱中查找的字符串

Android-APP 安全(六)之android取證

3、接下來,我們可以簡單地使用應用程序的包名稱,來備份任何我們需要的應用程序。

Android-APP 安全(六)之android取證

4、目標文件將以文件擴展名.ab(Android 備份)存儲。 在這裡,我們採集了 h..應用程序的備份。

Android-APP 安全(六)之android取證

5、一旦我們運行命令,它將暫停,並要求我們在設備上確認,如下面的截圖所示:

Android-APP 安全(六)之android取證

6、在這裡,我們需要選擇Back up my data(備份我的數據)選項,並且還可以為備份指定加密密碼。 一旦備份過程完成,我們將獲得22.ab文件。

7、接下來,我們需要解壓此備份,以便從.ab文件獲取數據庫。 為此,我們將使用dd和openssl創建一個.tar文件,然後我們可以解壓它。

dd if=22.ab bs=24 skip-1 | opensssh zlib –d > 22.tar

8、現在,由於我們獲得了.tar文件,我們可以使用tar xvf簡單解壓它。

Android-APP 安全(六)之android取證

9、一旦它解壓完成,我們可以訪問apps/[h..]下的db文件夾,來獲取數據庫。 這裡,程序包名稱為com.h..。

讓我們快速使用ls -l來查看db文件夾中的所有可用文件。

Android取證:android手機falsh物理鏡像獲取概述

這裡引用在一篇博客上看到的一個利用adb連接漏洞提取鏡像的思路:內容來源:https://blog.csdn.net/cl079074282/article/details/8942985

ADB連接漏洞:當Android手機和PC或其他設備通過USB連接,選擇USB調試模式時,即使用戶設置了開機密碼和解鎖圖案,PC或設備仍可以通過ADB連接到手機,也即android系統沒有對adb連接設置密碼保護驗證。

1、打開USB端口,用於設備和手機通過ADB協議通信,設備驅動層使用libusb等usb協議庫實現了usb協議的細節,使得應用程序上層像操作串口和文件一樣操作usb口。

2、通過端口向手機發送指令,打開ADB連接。

3、發送指令,打開ADB shell。

4、對手機進行root,獲得操作手機的最高權限。

5、三種Root方法:ZergRush,Psneuter,fourrunnerStatic。

6、下載/proc/mtd MTD flash分區信息。

7、上傳讀取flash的apk,之後連接apk,和apk交互獲得整個flash物理鏡像。

8、過程中使用到adb工具,以及usb分析儀等抓包工具。

Android取證:供應商支持

Android現在已經得到很多商業的移動取證軟件商家的支持。到目前為止,取證軟件只能支持對Android終端設備進行邏輯檢查,使用的是與AFLogical相同的內容提供商技術。對取證檢查師來說,理解每一個取證軟件商家如何實現對Android的支持,這對工作的開展很有幫助。

簡單列舉幾個取證軟件包(按照字母排列先後順序)

Cellebrite公司的UFED

Compelson公司的MOBILedit

EnCase公司的Neutrino

Micro Systemation公司的XRT

美亞柏科的Forensics取證大師

雲帆贏通的IEDF

UFED 手機取證設備支持約1600 款的手機,其中包括使用 Palm、微軟、黑莓和 Symbian 操作系統的型號,獲取的重要數據,如電話本、照片、視頻、音頻、短信、通話記錄、ESI 與 IMEI 信息等。此設別便攜式設計,可獨立操作,無論在現場或實驗室均能使用。數據可以複製到任何標準的 SD 卡、USB 閃存,並能製成清晰的報告。

MOBILedit支持幾千種不同的手機,包括如三星,HTC,諾基亞,索尼,LG 以及摩托羅拉等生產的普通手機。它還支持所有的智能手機操作系統,包括 Android, iPhone, Blackberry, Symbian, Windows Mobile, Windows Phone, Bada, Meego, 中國手機和 CDMA 手機。從 iPhones 和 Androids 中提取數據。MOBILedit 能夠檢索已安裝的應用程序的列表,併為您提供訪問所有應用程序數據,例如 Dropbox, Evernote, Skype, WhatsApp 等。如果可能的話,它甚至能夠從移動應用程序檢索已刪除的數據。

IEDF電子數據鏡像ROOT、取證分析系統技術參數:

https://blog.csdn.net/xCnhYKoHj3eK/article/details/80416124

Android取證:取證大師

接上一個供應商取證:取證大師(Forensics Master),是廈門市美亞柏科信息股份有限公司自主研發的計算機取證拳頭產品,國內第一個自主知識產權的計算機犯罪取證調查的綜合軟件。

提供電子證據固定、分析、報告生成等取證功能;提出了自動取證技術概念,並形成專業取證產品;多項全球領先技術創新(反取證軟件檢測、即時通訊軟件綜合調查等)。

在手機取證的過程中,第一步的工作是從手機各個相關證據源中獲取有線索價值的電子證據。手機的SIM卡、內存、外置存儲卡和移動網絡運營商的業務數據庫一同構成了手機取證中的重要證據源。

取證大師手機取證源:

1.SIM卡

在移動通信網絡中,手機與SIM卡共同構成移動通信終端設備。SIM(SubscribeIdentityModule)卡即為客戶識別模塊,它也被稱為用戶身份識別卡。移動通信網絡通過此卡來對用戶身份進行鑑別,並且同時對用戶通話時的語音信息進行加密。目前,常見SIM卡的存儲容量有8kB、16kB、32kB和64kB這幾種。從內容上看,SIM卡中所存儲的數據信息大致可分為五類:

(1)SIM卡生產廠商存儲的產品原始數據。

(2)手機存儲的固有信息,主要包括各種鑑權和加密信息、GSIM的IMSI碼、CDMA的MIN碼、IMSI認證算法、加密密匙生成算法。

(3)在手機使用過程中存儲的個人數據,如短消息、電話薄、行程表和通話記錄信息。

(4)移動網絡方面的數據中包括用戶在使用SIM卡過程中自動存入和更新的網絡服務和用戶信息數據,如設置的週期性位置更新間隔時間和最近一次位置登記時手機所在位置識別號。

(5)其它的相關手機參數,其中包括個人身份識別號

(PIN),以及解開鎖定用的個人解鎖號(PUK)等信息。

2.手機內/外置存儲卡

隨著手機功能的增強,手機內置的存儲芯片容量呈現不斷擴充的趨勢。手機內存根據存儲數據的差異可分為動態存儲區和靜態存儲區兩部分。動態存儲區中主要存儲執行操作系統指令和用戶應用程序時產生的臨時數據,而靜態存儲區保存著操作系統、各種配置數據以及一些用戶個人數據。

從手機調查取證的角度來看,靜態存儲區中的數據往往具有更大的證據價值。GSIM手機識別號IMEI、CDMA手機識別號ESN、電話薄資料、收發與編輯的短信息,主/被叫通話記錄、手機的鈴聲、日期時間以及網絡設置等數據都可在此存儲區中獲取。但是在不同的手機和移動網絡中,這些數據在讀取方式和內容格式上會有差異。另外,為了滿足人們對於手機功能的個性化需求,許多品牌型號的手機都提供了外置存儲卡來擴充存儲容量。當前市面上常見的外置存儲卡有SD、MiniSD和MemoryStick。外置存儲卡在處理涉及版權或著作權的案件時是一個重要的證據來源。

3.移動網絡運營商

移動網絡運營商的通話數據記錄數據庫與用戶註冊信息數據庫存儲著大量的潛在證據。通話數據記錄數據庫中的一條記錄信息包括有主/被叫用戶的手機號碼、主/被叫手機的IMEI號、通話時長、服務類型和通話過程中起始端與終止端網絡服務基站信息。另外,在用戶註冊信息數據庫中還可獲取包括用戶姓名、證件號碼、住址、手機號碼、SIM卡號及其PIN和PUK、IMSI號和所開通的服務類型信息。在我國即將實行手機實名制的大環境下,這些信息可在日後案件調查取證過程中發揮巨大的實質性作用。

取證大師專業版取證流程,參考鏈接:

https://www.jb51.net/softs/555195.html

Android取證:使用logcat記錄

Android logcat有時在取證調查期間很有用。它包括在電話以及收音機上執行的所有活動的日誌。雖然不完整,它可以幫助調查員瞭解設備中發生了什麼。

為了捕獲和保存logcat轉儲文件,我們可以簡單地使用adb logcat並將輸出保存到一個文件,稍後我們可以分析它。

adb logcat
adb logcat > E:\\ad\\logcat.log
Android-APP 安全(六)之android取證

看E:\\ad路徑下已經有logcat.log文件。

Android-APP 安全(六)之android取證

Android-APP 安全(六)之android取證

我們還可以使用logcat以更加詳細和有用的方式獲取日誌,我們可以通過指定-p參數和radio來獲取收音機日誌。-b標誌用於顯示緩衝區(如收音機或事件)的logcat。-v標誌用於控制輸出格式,它代表verbose(詳細),也可以是time,boref,process,tag,raw,threadtime或long。除了-v,我們還可以使用-d(調試),-i(信息),-w(警告)或-e(錯誤)。

adb logcat –v time –b radio –d

我們還可以使用其他工具,如dmesg,它將打印內核消息,以及getprop,它將打印設備的屬性:

adb shell dmesg

它將打印內核消息

adb shell dmesg > E:\\ad\\dmesg.txt
Android-APP 安全(六)之android取證

Android-APP 安全(六)之android取證

adb shell getprop

它將打印設備的屬性

adb shell getprop > E:\\ad\\get.txt
Android-APP 安全(六)之android取證

Android-APP 安全(六)之android取證

以上對Android 取證技術的講解,思路取材部分來源於網絡以及《Android 取證實戰》一書。

https://www.jb51.net/softs/555195.html

https://blog.csdn.net/y505772146/article/details/51291609

https://blog.csdn.net/wizardforcel/article/details/53576157

https://blog.csdn.net/cl079074282/article/details/8942985

歡迎來安全脈搏查看更多的乾貨文章和我們一起交流互動哦!

脈搏地址:安全脈搏 | 分享技術,悅享品質

微博地址:Sina Visitor System


分享到:


相關文章: