當前位置:
首頁 > 新聞 > 如何在iOS應用程序中用Frida來繞過「越獄檢測」?

如何在iOS應用程序中用Frida來繞過「越獄檢測」?


本文我將為大家展示,如何在iOS應用程序中使用Frida來繞過越獄檢測。在正式開始之前,讓我們先來簡單了解下本文的具體流程。


以下是本文將要介紹的內容:





  1. Frida框架介紹



  2. Frida在iOS上的設置



  3. 將Frida連接到一個iOS進程



  4. dump類和方法信息



  5. 使用Frida進行iOS應用程序的運行時操作



  6. 總結




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.re



3.打開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)


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

支持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年愛情有奇蹟,兜兜轉轉,繞來繞去,再次回到舊愛身邊的星座
春日,那繞來繞去美麗的花朵披肩
徐子淇一身紅裙滿身珠寶,紅帶子繞來繞去似留在塵世的仙子,好美