如何在iOS應用程序中用Frida來繞過「越獄檢測」?
本文我將為大家展示,如何在iOS應用程序中使用Frida來繞過越獄檢測。在正式開始之前,讓我們先來簡單了解下本文的具體流程。
以下是本文將要介紹的內容:
Frida框架介紹
Frida在iOS上的設置
將Frida連接到一個iOS進程
dump類和方法信息
使用Frida進行iOS應用程序的運行時操作
總結
Frida介紹
Frida是一款基於python + javascript 的hook與調試框架。它允許你將 JavaScript 的部分代碼或者你自己的庫注入到 windows、macos、linux、iOS、Android,以及 QNX 的原生應用中,同時能完全訪問內存和功能。
該工具由OleAndréV.Ravn?s(
@oleavr)開發,並且還有一個非常活躍的IRC頻道,在這裡你可以與其他許多同樣熱衷於Frida的技術人員探討交流。你可以通過irc.freenode.net上的#frida加入IRC。
Frida的一些實際用例(根據自身使用的目的而定)–
hook特定函數並更改返回值
分析定製協議,並迅速嗅探/解密流量
對自己的應用程序進行調試
從iOS應用程序中dump類和方法信息等等
除以上提到的作用之外,Frida 還提供了一系列的 API 以及方法。你可以使用命令行窗口或者像 frida-trace 的記錄 low-level 函數(例如 libc.so 中的』open』調用)的工具來快速運行。你可以使用C,NodeJs或者Python綁定來完成更加複雜的工作。因此,Frida 也是我強烈推薦大家使用的安全或分析工具的首選。目前,已經有好幾種工具都建立在了Frida上,包括
Needle和
AppMon。
Frida的另一大優勢就是,可以在非越獄的設備上正常工作。為了更好的運行Frida來調試非越獄設備上的應用程序,你可以使用Swizzler2等工具來修改應用程序,以便在應用程序中添加FridaGadget dylib。
Frida在iOS上的設置
Frida在ios上的設置也非常的簡單,只需要在你的iOS設備以及主機上執行以下操作。
要在你的iOS設備上安裝Frida伺服器,請參照以下步驟。
1.在你的iOS設備上打開Cydia應用程序。
2.添加一個源,URL為:
https://build.frida.re3.打開Source或搜索Frida,單擊Modify,然後單擊Install。
為了在你的系統上安裝Frida的Python綁定,你需要啟動erminal並輸入pip install frida來進行安裝。
將Frida連接到一個iOS進程
現在我們已經安裝了Frida。下面我們就要正式開始使用Frida,對我們的iOS應用程序進行安全評估和開發了!
在本案例中,我們將使用Damn Vulnerable iOS App(DVIA)這款包含大量安全漏洞的app來進行測試,你可以從
這裡下載到它。以下大部分所使用的ios app Frida測試腳本你可以在
Github獲取到。
我們將分析DVIA的越獄檢測行為,目前該設備顯示已越獄。
讓我們先來查看下,目標設備上所有正在運行的進程有哪些:
frida-ps –U
從上面的截圖我們可以看到,所有當前正在運行的進程。
下面讓我們來attach一個進程。你可以通過 『frida -U 進程名』 的格式來attach某個進程。成功attach後,我們將進入到frida的控制台界面,在該控制台我們可以訪問到目標進程的所有不同屬性,內存內容和功能。
我們可以在Frida的shell中工作,並與我們的進程進行交互,或者我們還可以通過編寫自己的JavaScript,來獲取我們想要的數據。
dump類和方法信息
這項工作的目的是為了確定在DVIA的越獄檢測中,負責驗證我們的設備是否越獄的ViewController和function是哪個。
我們先來寫一個基本的Frida腳本,來轉儲目標應用程序中存在的所有類和方法。在這裡,我們將尋找與越獄相關所有的內容,以便我們能夠在Frida的幫助下繞過越獄檢測。
基本操作流程如下:
使用Frida查找DVIA中的越獄檢測類
我們先來看看,應用程序中的類都有哪些。
for (var className in ObjC.classes)
{
if (ObjC.classes.hasOwnProperty(className))
{
console.log(className);
}
}
一旦運行它,你會看到Frida成功attach到目標進程(如下圖所示),隨後它將為我們顯示目標進程中的所有類。
這裡我們可以通過grep命令來篩查出包含Jailbreak字樣的類。這裡我們看到一個叫JailbreakDetectionVC的類,如下所示。
找到所有實例後,在這裡你可能會遇到一個可忽略的錯誤語句。
在完成了目標類的查找之後,接下來讓我們將目光轉向類中的方法。
使用Frida查找DVIA中越獄檢測類的方
為了找到方法,我們需要使用 ObjC.classes.class-name.$methods。在這裡我們將只查找JailbreakDetectionVC類中的方法。
讓我們繼續運行它,並繼續使用grep命令來檢測那些帶有Jailbreak , Jailbroken 和 Detection字元串的內容,如下所示。
我們發現該類中其中有三個方法,包含我們的查找關鍵字,它們分別為Jailbroken,jailbreakTest1Tapped:和 jailbreakTest2Tapped:。
在我們的案例中,isjailbroken 是最有可能被用於檢測是否越獄,並發送返回值的函數。
使用Frida修改DVIA越獄檢測類中方法的返回值
所以讓我們繼續看看,Jailbroken都發送了什麼類型的返回值。
運行此腳本後,請在iOS應用程序中按 Jailbreak Test 1,你將看到Frida控制台中顯示的返回值。
由於我們的設備已經越獄,所以它的返回值為0×1。
接下來我們需要做的就是覆蓋此返回值並修補該方法,以便每次在應用程序中按下Jailbreak Test 1按鈕時,它將返回false或0×0。
讓我們添加以下代碼,來更改這個特定函數的返回值並記錄到控制台:
完整腳本如下。
運行該腳本後,我們可以看到返回值已經被修改,如下所示。
此時當你再次查看你的iOS應用程序時你會發現,應用程序將提示你的設備還未越獄(如下所示)。
總結
通過本案例,我們已經學會了Frida的基本使用方法。在後續的文章中我將帶大家更深入的了解Frida腳本以及如何利用Frida的API和其它工具,來執行iOS和Android應用程序的安全性評估工作。
*參考來源:attify,FB小編 secist 編譯,轉載請註明來自FreeBuf(FreeBuf.COM)
※支持MACRBACABAC多種模型的Golang訪問控制框架 – casbin
※美國在安全教育方面是怎麼做的,還有什麼地方需要改進?
※防火防盜防間諜:走近中國「反間諜」手段
※Hacking Tools搜羅大集合
TAG:FreeBuf |
※使用Delphi Packer來繞過惡意軟體檢測
※使用AutoHotkey和Excel中嵌入的惡意腳本來繞過檢測
※如何使用Apple News Plus訂閱來繞過付費牆
※使用Microsoft.com域來繞過防火牆並執行有效載荷
※灣區最好喝的奶茶都在這了,連起來繞地球一圈,哪個是你心中的No.1?
※模塊化遠程訪問特洛伊木馬使用複雜的技術來繞過檢測
※歐足聯擔憂中資可信度 法索內未來繞開李哥行事?
※轟-6K轟炸機「繞島巡航」飛一圈航程多少公里?未來繞飛七千公里
※8000噸現代級被用來繞島?外形夠衝擊,神盾艦或太秀氣!
※每日全球幣圈資訊,上周加密貨幣市場普跌 比特幣環比下跌3.6%;俄羅斯和伊朗可能會使用加密貨幣來繞過國際制裁
※2月,故人重逢,心動情再動,繞來繞去,還是回到舊愛身邊的星座
※下半年運勢低落,需提防小人來繞的幾個星座,有你嗎?
※繞來繞去的線條
※2019,舊愛糾纏,愛情軌道回歸,繞來繞去,跟舊愛複合的星座
※趙麗穎身穿「荷葉裙」,曲線繞來繞去有點多,卻靚得清新脫俗!
※繞來繞去終遇有情人的三大生肖,下半年愛情美滿!
※朱棣為何要編纂近4億字的《永樂大典》?繞來繞去只有兩個字
※19年愛情有奇蹟,兜兜轉轉,繞來繞去,再次回到舊愛身邊的星座
※春日,那繞來繞去美麗的花朵披肩
※徐子淇一身紅裙滿身珠寶,紅帶子繞來繞去似留在塵世的仙子,好美