天天看點

objection - 基于 Frida 的 iOS APP Runtime 探測工具

本文講的是<b>objection - 基于 Frida 的 iOS APP Runtime 探測工具</b>,

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 - 基于 Frida 的 iOS APP Runtime 探測工具

當我們談論檔案系統時,也可以直接從裝置下載下傳檔案(您有讀通路權限),還可以重新上傳授予寫入權限的檔案,例如應用程式文檔目錄。 

objection還包括一個内聯SQLite編輯器,用于操作可能存在的随機sqlite資料庫。

objection - 基于 Frida 的 iOS APP Runtime 探測工具

執行個體展示

使用objection來檢測已經打更新檔和運作的iOS應用程式各個部分的示例會話如下所示:

https://sensepost.com/blog/2017/objection-mobile-runtime-exploration/

主要功能 

雖然仍在進行中,但objection已經包含了許多功能。其中一些值得注意的有:

… 以及更多。

原文釋出時間為:2017年7月17日

本文作者:Change

本文來自雲栖社群合作夥伴嘶吼,了解相關資訊可以關注嘶吼網站。

<a href="http://www.4hou.com/tools/6333.html" target="_blank">原文連結</a>