iOS逆向与安全(一):环境搭建

96
紫电清霜Owenli Excellent
0.1 2018.09.16 09:45* 字数 1250

前言

从本篇文章开始,笔者会整理iOS逆向相关的笔记。作为一位新人,希望通过整理笔记能够更好的理解和掌握知识。作为新人能力有限,在行文时难免出现错误欢迎批评和指正。

前期准备

  • 一台越狱的iOS设备,笔者使用iPad mini2系统iOS9.2.1(推荐使用iOS9.1或者可以完美越狱的系统)
  • 一台电脑,笔者使用的是MacBook Pro
  • 一条数据线

如何越狱

网上有很多教程帮助你来越狱,这里推荐两个网站:

注意:在购买iOS设备时直接购买对应版本的系统,由于苹果官方关闭降级通道所以无法刷固件降级。

越狱成功后,桌面上会出现一个叫做Cydia的应用,它是越狱后的App Store可以安装各种第三方的软件,比如:插件、补丁、APP等。该应用的作者Jay Freeman(saurik),一位骨灰级大神。

必装插件或补丁

  • Apple File Conduit 2:可以访问整个iOS设备的文件系统。作者是Jay Freeman
  • AppSync unified: 可以绕过系统验证,随意安装、运行破解的IPA安装包。
  • PP助手: 一个应用商店,可以自由安装海量APP。
  • OpenSSH: 用于远程登录iOS设备。

Mac 必备

  • iFunBox: 管理文件系统。
  • PP助手:一个应用商店。
  • iTerm2: 一款优秀的命令行工具
  • Alfred: 便捷搜索,自定义工作流,调高效率的工具

配置远程登录

SSH:Secure Shell的缩写,安全外壳协议,是一种可以为远程登录提供安全保障的协议。使用SSH可以把所有传输的数据进行加密,防止中间人攻击、DNS欺骗和IP欺骗。
OpenSSH: 是SSH协议的免费开源实现。通过它让Mac登录iOS设备,在Cycript中搜索安装。

使用密码登录

如果iOS设备上已经安装了OpenSSH,此时就可以通过Mac终端登录iOS设备。前提,iOS设备和Mac需要处于相同WiFi环境下。在设置中查看iOS设备的IP地址。打开终端输入:

ssh root@iOS设备IP地址
// 回车,会提示时候建立连接输入yes即可。之后提示输入密码,默认密码是`alpine`。

iOS设备上有两个默认账号:root,mobile。

  • root:最高权限账户,$HOME是/var/root。或者通过终端输入pwd查看。
  • mobile:普通权限账户,只能操作一些普通文件,$HOME是/var/mobile
  • mobile登录方式:ssh mobile@服务器地址。初始密码alpine
  • 修改root密码:passwd,修改mobile用户密码:passwd mobile

公钥登录

上面的密码登录方式比较麻烦,在每次登录时都需要输入密码。SSH提供了公钥登录,以省去密码的步骤。下面来看看公钥登录流程:
将电脑端的SSH公钥保存在iOS设备中,登录时iOS设备端会向电脑端发送一个随机字符串,登录用户通过自己的私钥加密后发送给iOS端,iOS端通过事先存储好的公钥解密,如果解密成功,证明用户是可信的。

查看$HOME/.ssh/目录,是否有id_rsa私钥和id_rsa.pub公钥,如果没有使用ssh-keygen生成。

上传公钥到远程设备,通过ssh-copy-id命令。

ssh-copy-id -i $HOME/.ssh/id_rsa.pub root@地址

该条命令的作用是将id_rsa.pub公钥追加到iOS设备的$HOME/.ssh/authorized_keys文件中。

cat $HOME/.ssh/authorized_keys //查看文件内容

通过USB登录设备

在WiFi不稳定的情况下,通过WiFi登录会非常的卡顿。可以通过接口转发的方法,使用USB SSH登录,保证连接的稳定性。

方法很简单,首先安装libimobiledevice,然后使用里面提供iproxy把本地端口(例如:2222)映射到设备的TCP端口22,就可以通过本地的2222端口建立连接了。

brew install libimobiledevice
iproxy 2222 22
ssh root@localhost -p 2222

如果,每次输入iproxy 2222 22进行接口转换比较麻烦,可以将其配置到电脑的开机启动项中。创建~/Library/LaunchAgents/com.usbmux.iproxy.plist,填入一下:

运行命令launchctl load ~/Library/LaunchAgents/com.usbmux.iproxy.plist使之生效。

每次输入ssh root@localhost -p 2222也很麻烦,可以通过指定一个名称进行SSH连接,打开$HOME/.ssh/config文件,没有创建一个,写入一下内容。

Host ipad 
Hostname localhost
User root
Port 2222 

通过以上配置,在终端输入ssh ipad即可登录iOS设备了。

小结

本文学习搭建逆向环境,安装一些必备的软件。后续会继续学习如何使用这些软件。

iOS逆向之旅
Web note ad 1