移动应用安全基础篇——Android、ios环境准备 – 作者:tales

IOS环境准备:

越狱

几种类型的越狱:

1、Tethered jailbreaks 不完美越狱,重启后无法保留

2、Semi-tethered jailbreaks 半完美越狱,必须通过连接电脑越狱,设备启动后会自动进入非越狱模式

3、Semi-untethered jailbreaks 半完美越狱,设备启动能自己进入到越狱模式,但内核的代码签名校验不会被自动禁用,需要通过启动一个应用完成

4、Untethered jailbreaks 完美越狱,一次越狱后即可永久越狱

根据iOS版本判断设备是否可以越狱:

Can I Jailbreak? https://canijailbreak.com/

几个iPhone越狱相关的资源:

The iPhone Wiki

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/

image.png

3、进入已添加的源,搜索“Frida”,点击“Modify”然后安装。

image.png

4、要在主机(mac为例)上安装Frida,我们需要启动控制台,输入“pip install frida”命令,安装Frida程序。

image.png

5、使用Frida连接iOS进程:

Frida安装完毕后,现在我们已经准备就绪,可以开始使用Frida评估iOS应用的安全性的可利用性。

我们可以先看一下目标设备当前运行的进程列表,命令如下:

frida-ps –U

image.png

我们可以使用“frida –U process-name”命令,将Frida附加到任意一个进程上,命令执行成功后我们将会跳转到Frida控制台中,可以访问目标进程的所有属性、内存内容以及函数功能。

image.png

Needle

Needle是iOS平台上的一套动态测试,由mwr开发,类似于Android平台上的Drozer,但因系统的不同而功能不一。

以下为mac上配置Needle的过程:

1、安装依赖

image.png

2、手机上安装needle代理

Cydia添加源http://mobiletools.mwrinfosecurity.com/cydia/,搜索NeedleAgent安装即可

3、使用needle

image.png

Needle所涵盖的测试领域的一些示例包括:数据存储,进程间通信,网络通信,静态代码分析,挂钩和二进制保护。里面有很多集成了很多模块能方便的帮我们完成测试工作。

Android环境准备:

在手机硬件的考虑上,首先优选谷歌的:Nexus和Pixel系列,系统为Android 8.1.0版本上进行测试。

frida官网指出的factory software就是谷歌的官方工厂镜像网站,右边就是手机型号一览表,在这里我们选择Nexus 5X的型号bullhead。

image.png

使用wget命令来下载最新的8.1.0 (OPM7.181205.001, Dec 2018)版本。

刷入该系统:

首先将手机进入fastboot状态,操作流程如下:

1、将USB线断开,并确保手机有80%左右的电量;

2、将手机完全关机;

3、同时按住音量向下键和开机键;

4、手机将进入fastboot状态;

手机用USB线连上电脑,运行脚本,将系统刷进手机。

image.png

刷入twrp recovery

recovery相当于Windows PE微型系统,在recovery里我们也可以挂载磁盘,修改系统分区,使用adb命令,等一系列功能。详细的功能列表可以百度或者谷歌。

我们这里只需要下载twrp针对bullhead机型的镜像,刷进去即可。

image.png

我们下载最新的twrp-3.2.3-0-bullhead.img镜像文件。

然后将手机设置到fastboot模式,使用fastboot命令将镜像刷进去。

image.png刷入Magisk

我们只是用Magisk来获取root权限。

在github项目主页的release页面,下载最新的卡刷包:Magisk-v17.3.zip

然后使用adb命令将卡刷包上传到手机中去。

image.png

滑动确认安装。

image.png

打开App可以看到安装成功。

image.png

获取root权限

使用adb命令进入安卓手机的shell,并且获取root权限。

在手机上找到设置→系统→关于手机→版本号,点击版本号五下,打开开发者选项,然后进入设置→系统→开发者选项,打开USB调试选项。然后USB连接到电脑,使用adb命令连上去。手机上会出现授权,点击接受该指纹的电脑连接,此时是shell权限,权限非常小。我们来切换到root用户:

image.png

手机上会出现Magisk的超级用户请求,点击允许,com.android.shell即可获取root权限。

image.png在Android上使用Frida

从Frida官方github页面的release标签里,找到最新版的frida-server,注意要匹配系统和架构,比如arm和arm64就不能搞错,比如我们这里选择的就是frida-server-12.2.29-android-arm64.xz的版本。

下载完成后进行解压,获得linux原生的可执行文件,我们将它重命名为frida-server。

使用adb命令将其推送到手机上去:

image.png

使用adb shell命令进入到手机中去,执行以下命令:

image.png

frida-server即可运行成功。

此时在电脑上新开一个shell,运行frida-ps -U命令,即可显示手机中正在运行的进程。

image.png

到这里我们在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 或关注公众号:


ewm.png

来源:freebuf.com 2019-04-02 08:38:04 by: tales

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论