objection - 基於 Frida 的 iOS APP Runtime 探測工具
介紹
在這篇文章中,我想介紹一下我一直在研究的一個工具包,叫做objection。這個名字其實所隱含的意思就是「object」以及「injection」。objection是由Frida提供的可以對移動平台的runtime進行檢測的工具包。該工具包目前只在iOS上,其旨在允許您能夠在非越獄iOS設備runtime時,在其未加密的iOS應用程序上執行各種安全相關的任務。功能包括檢查特定應用程序的KeyChain,以及在(或之後)執行期間檢查磁碟上剩餘的各種工件。
隨著iOS設備的越獄越來越難以被做到,並且即將到來的iOS 11會使你不得不做出許多其他操作問題來試圖阻止現有的iOS設備更新(也會無法越獄),而objection將允許您在應用程序沙箱的現有限制內執行大部分典型的移動安全評估。
為什麼
很多時候,我們作為分析師都會發現自己處在一個尷尬的位置——我們需要向你解釋你所擁有的史詩般的pwnage的「現實世界相關性」。通常, 你必須承認你的設備越獄了,而事實上對於您所執行的這種攻擊有多麼「真實」,我們都不得不產生懷疑。而這樣做的目的無非是讓你有root許可權,並且這種技術看起來比其他任何方式都好,對吧?是的,但這不是唯一的辦法。
拋開客戶自身參與的案例不談,大多數存在的工具都是要求您的設備進行越獄(而且認為這樣是正確的)。但是如果您根本沒有越獄設備呢?那麼可能您只能夠關注應用程序消耗的API端點,寄希望SSL pinning被打破後足夠讓您了解其工作原理。SSL pinning可以理解為證書綁定。在一些應用場景中,客戶端和伺服器之間的通信是事先約定好的,既伺服器地址和證書是預先知道的,這種情況常見於CS架構的應用中。這樣的話在客戶端事先保存好一份伺服器的證書(含公鑰),每次請求伺服器的時候,將伺服器返回的證書與客戶端保存的證書進行對比,如果證書不符,說明受到中間人攻擊,馬上可以中斷請求。這樣的話中間人就無法偽造證書進行攻擊了。
讓我們來改變這一現狀吧!
舉例說明
首先我們來揭開蓋子了解一下它,objection會使用 Frida 將對象注入到被打了補丁的應用程序runtime中,並在該應用程序安全上下文中執行它們從而能夠執行各種任務。比較典型的任務可能是短暫的命令,例如ls 可以讓您從移動應用程序角度瀏覽移動設備文件系統,當然也可以使用更長時間的命令,例如禁用ios sslpinning這一用於固定SSL證書的常用方法,並防止您正在使用的應用程序驗證失敗。
當我們談論文件系統時,也可以直接從設備下載文件(您有讀訪問許可權),還可以重新上傳授予寫入許可權的文件,例如應用程序文檔目錄。
objection還包括一個內聯SQLite編輯器,用於操作可能存在的隨機sqlite資料庫。
實例展示
使用objection來檢測已經打補丁和運行的iOS應用程序各個部分的示例會話如下所示:
Objection - mobile runtime exploration
主要功能
雖然仍在進行中,但objection已經包含了許多功能。其中一些值得注意的有:
與遠程文件系統進行交互,上傳和下載獲得訪問許可權的文件。轉儲當前進程內存,瀏覽載入的模塊以及導出模塊。在遠程文件系統上與SQLite資料庫進行交互。轉儲共享存儲器的各種比特,比如NSUserDefaults,NSHTTPCookieStorage 以及iOS設備磁碟上人們可讀格式的.plist 文件。模擬越獄環境,以便在這樣的環境中測試iOS應用程序的行為。iOS SSL pining 利用眾所周知的SSL-Killswitch2方法繞過模塊。轉儲iOS keychain。執行iOS TouchID繞過。執行一個類轉儲,它將列出可用的Objective-C類和類方法。動態hook並觀察特定類方法的方法調用。另外,objection可以嘗試和轉儲在調用時傳遞的方法參數。
… 以及更多。
本文翻譯自:Objection - mobile runtime exploration,如若轉載,請註明原文地址: objection - 基於 Frida 的 iOS APP Runtime 探測工具 更多內容請關注「嘶吼專業版」——Pro4hou
推薦閱讀:
※【快訊】Leet.cc上600萬Minecraft玩家數據被竊
※花無涯帶你走進黑客世界5 黑客歷程
※已知某一RSA公鑰密碼體制中公鑰為(23,1073),求密文c=19對應的明文m?