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

简介: 本文讲的是objection - 基于 Frida 的 iOS APP Runtime 探测工具,在这篇文章中,我想介绍一下我一直在研究的一个工具包,叫做objection。这个名字其实所隐含的意思就是“object”以及“injection”。
本文讲的是 objection - 基于 Frida 的 iOS APP Runtime 探测工具

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已经包含了许多功能。其中一些值得注意的有:

与远程文件系统进行交互,上传和下载获得访问权限的文件。
转储当前进程内存,浏览加载的模块以及导出模块。
在远程文件系统上与SQLite数据库进行交互。
转储共享存储器的各种比特,比如NSUserDefaults,NSHTTPCookieStorage 以及iOS设备磁盘上人们可读格式的.plist 文件。
模拟越狱环境,以便在这样的环境中测试iOS应用程序的行为。
iOS SSL pining 利用众所周知的SSL-Killswitch2方法绕过模块。
转储iOS keychain。
执行iOS TouchID绕过。
执行一个类转储,它将列出可用的Objective-C类和类方法。
动态hook并观察特定类方法的方法调用。另外,objection可以尝试和转储在调用时传递的方法参数。

… 以及更多。




原文发布时间为:2017年7月17日
本文作者:Change
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
6天前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
116 3
|
6天前
|
Dart 数据安全/隐私保护 Swift
iOS代码混淆工具推荐:IPA Guard详细介绍
iOS代码混淆工具推荐:IPA Guard详细介绍
80 0
|
6天前
|
数据采集 JSON 监控
Kotlin高效App爬取工具:利用HttpClient与代理服务器的技巧
Kotlin高效App爬取工具:利用HttpClient与代理服务器的技巧
|
6天前
|
Android开发 iOS开发 开发者
App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
App备案-iOS云管理式证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
160 0
|
6天前
|
小程序 开发者
【微信小程序】微信开发者工具 app.json: [“subpackages“][0][“root“] 字段需为目录 已解决
【微信小程序】微信开发者工具 app.json: [“subpackages“][0][“root“] 字段需为目录 已解决
16 0
|
6天前
|
开发者 iOS开发
iOS App上架新规解析:如何进行App备案
iOS App上架新规解析:如何进行App备案
270 0
|
6天前
|
Linux iOS开发 开发者
ios ipa包上传需要什么工具
ios ipa包上传需要什么工具
26 0
|
6天前
|
iOS开发 开发者
【教程】uni-app iOS 打包解决 profile 文件与私钥证书不匹配问题
【教程】uni-app iOS 打包解决 profile 文件与私钥证书不匹配问题
|
6天前
|
移动开发 小程序
如何让uni-app开发的H5页面顶部原生标题和小程序的顶部标题不一致?
如何让uni-app开发的H5页面顶部原生标题和小程序的顶部标题不一致?
|
6天前
|
Android开发 开发者 UED
个人开发 App 成功上架手机应用市场的关键步骤
个人开发 App 成功上架手机应用市场的关键步骤