安全圈 | 专注于最新网络信息安全讯息新闻

首页

移動應用安全基礎篇——android、ios環境準備

作者 recor 时间 2020-02-27
all

聲明:

本文由Tide安全團隊成員”tales“首發於freebuf TideSec專欄:

https://www.freebuf.com/column/199666.html

IOS環境準備:

越獄

幾種類型的越獄:

1、Tethered jailbreaks不完美越獄,重啟後無法保留

2、Semi-tethered jailbreaks半完美越獄,必須通過連接電腦越獄,設備啟動後會自動進入非越獄模式

3、Semi-untethered jailbreaks半完美越獄,設備啟動能自己進入到越獄模式,但內核的程式碼簽名校驗不會被自動禁用,需要通過啟動一個應用完成

4、Untethered jailbreaks完美越獄,一次越獄後即可永久越獄

根據iOS版本判斷設備是否可以越獄:

Can I Jailbreak?https://canijailbreak.com/

幾個iPhone越獄相關的資源:

The iPhone Wiki

Reddit Jailbreak

Cydia

通常在越獄完成後會自動安裝Cydia,下麵介紹幾個在Cydia下需要安裝的工具:

1、openssh:默認的ssh帳號是root,默認密碼為alpine

2、Frida:在Cydia中添加源 https://build.frida.re後直接蒐索安裝

3、BigBoss Recommended Tools:unix命令列工具,iOS系統不提供,如wget,unrar,less,sqlite3等

4、Class Dump:選取Mach-O檔案資訊

5、Substrate:Hook工具

6、AppList:査詢所有安裝的app

在iOS上使用Frida

在越獄的環境下,是用戶許可權最大的場景,在這樣的環境下你可以很輕鬆的調用系統服務和基礎組件。

越獄設備情况下:

1、在iOS設備上打開Cydia應用。

2、添加源,地址為“https://build.frida.re/”

3、進入已添加的源,蒐索“Frida”,點擊“Modify”然後安裝。

4、要在主機(mac為例)上安裝Frida,我們需要啟動控制台,輸入“pip install frida”命令,安裝Frida程式。

5、使用Frida連接iOS行程:

Frida安裝完畢後,現在我們已經準備就緒,可以開始使用Frida評估iOS應用的安全性的可利用性。

我們可以先看一下目標設備當前運行的行程清單,命令如下:

frida-ps–U

我們可以使用“frida–U process-name”命令,將Frida附加到任意一個行程上,命令執行成功後我們將會跳轉到Frida控制台中,可以訪問目標行程的所有内容、記憶體內容以及函數功能。

Needle

Needle是iOS平臺上的一套動態測試,由mwr開發,類似於Android平臺上的Drozer,但因系統的不同而功能不一。

以下為mac上配寘Needle的過程:

1、安裝依賴

2、手機上安裝needle代理

Cydia添加源http://mobiletools.mwrinfosecurity.com/cydia/,蒐索NeedleAgent安裝即可

3、使用needle

Needle所涵蓋的測試領域的一些示例包括:資料存儲,行程間通信,網路通信,靜態程式碼分析,掛鉤和二進位保護。裡面有很多集成了很多模塊能方便的幫我們完成測試工作。

Android環境準備:

在手機硬體的考慮上,首先優選穀歌的:Nexus和Pixel系列,系統為Android 8.1.0版本上進行測試。

frida官網指出的factory software就是穀歌的官方工廠鏡像網站,右邊就是手機型號一覽表,在這裡我們選擇Nexus 5X的型號bullhead。

使用wget命令來下載最新的8.1.0(OPM7.181205.001,Dec 2018)版本。

刷入該系統:

首先將手機進入fastboot狀態,操作流程如下:

1、將USB線斷開,並確保手機有80%左右的電量;

2、將手機完全關機;

3、同時按住音量向下鍵和開機鍵;

4、手機將進入fastboot狀態;

手機用USB線連上電腦,運行腳本,將系統刷進手機。

刷入twrp recovery

recovery相當於Windows PE微型系統,在recovery裏我們也可以掛載磁片,修改系統分區,使用adb命令,等一系列功能。詳細的功能清單可以百度或者穀歌。

我們這裡只需要下載twrp針對bullhead機型的鏡像,刷進去即可。

我們下載最新的twrp-3.2.3-0-bullhead.img鏡像文件。

然後將手機設定到fastboot模式,使用fastboot命令將鏡像刷進去。

刷入Magisk

我們只是用Magisk來獲取root許可權。

在github項目主頁的release頁面,下載最新的卡刷包:Magisk-v17.3.zip

然後使用adb命令將卡刷包上傳到手機中去。

滑動確認安裝。

打開App可以看到安裝成功。

獲取root許可權

使用adb命令進入安卓手機的shell,並且獲取root許可權。

在手機上找到設定→系統→關於手機→版本號,點擊版本號五下,打開開發者選項,然後進入設定→系統→開發者選項,打開USB調試選項。然後USB連接到電腦,使用adb命令連上去。手機上會出現授權,點擊接受該指紋的電腦連接,此時是shell許可權,許可權非常小。我們來切換到root用戶:

手機上會出現Magisk的超級用戶請求,點擊允許,com.android.shell即可獲取root許可權。

在Android上使用Frida

從Frida官方github頁面的release標籤裏,找到最新版的frida-server,注意要匹配系統和架構,比如arm和arm64就不能搞錯,比如我們這裡選擇的就是frida-server-12.2.29-android-arm64.xz的版本。

下載完成後進行解壓,獲得linux原生的可執行文件,我們將它重命名為frida-server。

使用adb命令將其推送到手機上去:

使用adb shell命令進入到手機中去,執行以下命令:

frida-server即可運行成功。

此時在電腦上新開一個shell,運行frida-ps -U命令,即可顯示手機中正在運行的行程。

到這裡我們在64比特手機Nexus 5X的安卓原生8.1系統上安裝frida-server就成功了。

總結:

在接下來的文章中,會向大家介紹Frida指令碼語言的詳細知識,以及如何利用Frida的API函數和其他工具對iOS和Android應用的安全性進行評估。

Tide安全團隊正式成立於2019年1月,是新潮資訊旗下以互聯網攻防技術研究為目標的安全團隊,現時聚集了十多比特專業的安全攻防技術研究人員,專注於網絡攻防、Web安全、移動終端、安全開發、IoT/物聯網/工控安全等方向。

Tide安全團隊自建立之初持續向CNCERT、CNVD、漏洞盒子、補天、各大S RC等漏洞提交平臺提交漏洞,在漏洞盒子先後組建的兩支漏洞挖掘團隊在全國300多個安全團隊中均擁有排名前十的成績。在產品研發方面,Tide自主研發了一款面向互聯網基礎設施的資產檢索系統,即Tide(潮汐)網路空間蒐索平臺,平臺結合網路安全技術與大資料分析處理科技,對互聯網基礎設施進行網路安全威脅監測和網路安全態勢分析。Tide安全團隊自研多套安全平臺,如分佈式web掃描平臺WDScanner、Mars平臺、潮汐指紋識別系統、內部SRC平臺、安全網路課堂、安全測試案例庫、社工庫、MoSec移動端檢測平臺、漏洞知識庫、代理資源池、字典權重庫等等,團隊成員在FreeBuf、簡書、CSDN、51CTO、CnBlogs等網站均開設專欄或部落格,研究安全技術、分享經驗技能。

想瞭解更多Tide安全團隊,請關注團隊官網: http://www.TideSec.net 或關注公眾號