IOS环境准备:
越狱
几种类型的越狱:
1、Tethered jailbreaks 不完美越狱,重启后无法保留
2、Semi-tethered jailbreaks 半完美越狱,必须通过连接电脑越狱,设备启动后会自动进入非越狱模式
3、Semi-untethered jailbreaks 半完美越狱,设备启动能自己进入到越狱模式,但内核的代码签名校验不会被自动禁用,需要通过启动一个应用完成
4、Untethered jailbreaks 完美越狱,一次越狱后即可永久越狱
根据iOS版本判断设备是否可以越狱:
Can I Jailbreak? https://canijailbreak.com/
几个iPhone越狱相关的资源:
Cydia
通常在越狱完成后会自动安装Cydia,下面介绍几个在Cydia下需要安装的工具:
1、openssh:默认的ssh账号是root,默认密码为alpine
2、Frida:在Cydia中添加源 https://build.frida.re后直接搜索安装
3、BigBoss Recommended Tools:unix命令行工具,iOS系统不提供,如wget, unrar, less,sqlite3等
4、Class Dump:提取Mach-O文件信息
5、Substrate:Hook工具
6、AppList:查询所有安装的app
在iOS上使用Frida
在越狱的环境下,是用户权限最大的场景,在这样的环境下你可以很轻松的调用系统服务和基础组件。
越狱设备情况下:
1、在iOS设备上打开Cydia应用。
2、添加源,地址为“https://build.frida.re/”
3、进入已添加的源,搜索“Frida”,点击“Modify”然后安装。
4、要在主机(mac为例)上安装Frida,我们需要启动控制台,输入“pip install frida”命令,安装Frida程序。
5、使用Frida连接iOS进程:
Frida安装完毕后,现在我们已经准备就绪,可以开始使用Frida评估iOS应用的安全性的可利用性。
我们可以先看一下目标设备当前运行的进程列表,命令如下:
frida-ps –U
我们可以使用“frida –U process-name”命令,将Frida附加到任意一个进程上,命令执行成功后我们将会跳转到Frida控制台中,可以访问目标进程的所有属性、内存内容以及函数功能。
Needle
Needle是iOS平台上的一套动态测试,由mwr开发,类似于Android平台上的Drozer,但因系统的不同而功能不一。
以下为mac上配置Needle的过程:
1、安装依赖
2、手机上安装needle代理
Cydia添加源http://mobiletools.mwrinfosecurity.com/cydia/,搜索NeedleAgent安装即可
3、使用needle
Needle所涵盖的测试领域的一些示例包括:数据存储,进程间通信,网络通信,静态代码分析,挂钩和二进制保护。里面有很多集成了很多模块能方便的帮我们完成测试工作。
Android环境准备:
在手机硬件的考虑上,首先优选谷歌的:Nexus和Pixel系列,系统为Android 8.1.0版本上进行测试。
frida官网指出的factory software就是谷歌的官方工厂镜像网站,右边就是手机型号一览表,在这里我们选择Nexus 5X的型号bullhead。
使用wget命令来下载最新的8.1.0 (OPM7.181205.001, Dec 2018)版本。
刷入该系统:
首先将手机进入fastboot状态,操作流程如下:
1、将USB线断开,并确保手机有80%左右的电量;
2、将手机完全关机;
3、同时按住音量向下键和开机键;
4、手机将进入fastboot状态;
手机用USB线连上电脑,运行脚本,将系统刷进手机。
刷入twrp recovery
recovery相当于Windows PE微型系统,在recovery里我们也可以挂载磁盘,修改系统分区,使用adb命令,等一系列功能。详细的功能列表可以百度或者谷歌。
我们这里只需要下载twrp针对bullhead机型的镜像,刷进去即可。
我们下载最新的twrp-3.2.3-0-bullhead.img镜像文件。
然后将手机设置到fastboot模式,使用fastboot命令将镜像刷进去。
刷入Magisk
我们只是用Magisk来获取root权限。
在github项目主页的release页面,下载最新的卡刷包:Magisk-v17.3.zip
然后使用adb命令将卡刷包上传到手机中去。
滑动确认安装。
打开App可以看到安装成功。
获取root权限
使用adb命令进入安卓手机的shell,并且获取root权限。
在手机上找到设置→系统→关于手机→版本号,点击版本号五下,打开开发者选项,然后进入设置→系统→开发者选项,打开USB调试选项。然后USB连接到电脑,使用adb命令连上去。手机上会出现授权,点击接受该指纹的电脑连接,此时是shell权限,权限非常小。我们来切换到root用户:
手机上会出现Magisk的超级用户请求,点击允许,com.android.shell即可获取root权限。
在Android上使用Frida
从Frida官方github页面的release标签里,找到最新版的frida-server,注意要匹配系统和架构,比如arm和arm64就不能搞错,比如我们这里选择的就是frida-server-12.2.29-android-arm64.xz的版本。
下载完成后进行解压,获得linux原生的可执行文件,我们将它重命名为frida-server。
使用adb命令将其推送到手机上去:
使用adb shell命令进入到手机中去,执行以下命令:
frida-server即可运行成功。
此时在电脑上新开一个shell,运行frida-ps -U命令,即可显示手机中正在运行的进程。
到这里我们在64位手机Nexus 5X的安卓原生8.1系统上安装frida-server就成功了。
总结:
在接下来的文章中,会向大家介绍Frida脚本语言的详细知识,以及如何利用Frida的API函数和其他工具对iOS和Android应用的安全性进行评估。
Tide安全团队正式成立于2019年1月,是新潮信息旗下以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防、Web安全、移动终端、安全开发、IoT/物联网/工控安全等方向。
Tide安全团队自建立之初持续向CNCERT、CNVD、漏洞盒子、补天、各大SRC等漏洞提交平台提交漏洞,在漏洞盒子先后组建的两支漏洞挖掘团队在全国300多个安全团队中均拥有排名前十的成绩。在产品研发方面,Tide自主研发了一款面向互联网基础设施的资产检索系统,即Tide(潮汐)网络空间搜索平台,平台结合网络安全技术与大数据分析处理技术,对互联网基础设施进行网络安全威胁监测和网络安全态势分析。Tide安全团队自研多套安全平台,如分布式web扫描平台WDScanner、Mars平台、潮汐指纹识别系统、内部SRC平台、安全网络课堂、安全测试案例库、社工库、MoSec移动端检测平台、漏洞知识库、代理资源池、字典权重库等等,团队成员在FreeBuf、简书、CSDN、51CTO、CnBlogs等网站均开设专栏或博客,研究安全技术、分享经验技能。
想了解更多Tide安全团队,请关注团队官网: http://www.TideSec.net 或关注公众号:
来源:freebuf.com 2019-04-02 08:38:04 by: tales
请登录后发表评论
注册