iOS 逆向: 越狱使用 SSH

越狱

使用苹果设备或者做 iOS 开发的朋友们, 几乎都应该听说过越狱这个词. 那么究竟什么是越狱呢?

iOS越狱(英语:iOS Jailbreaking)是获取 iOS 设备的 Root 权限的技术手段。iOS 设备的 Root 权限一般是不开放的。由于获得了Root 权限,在越狱之前无法查看的 iOS 的文件系统也可查看.

上面是维基百科的解释, 具体可以去 iOS 越狱) 了解一下. iOS 的越狱就类似 Android 获取 root 权限一样的道理.

手头上面之前闲置了一台 iPhone4s, 闲来无事就把他越狱了, 后面不知道怎么操作的, 手机变成了白苹果(开机就白屏, 无法进入系统), 最后没办法, 只能升级系统, 这台手机也算是废了.

当时使用的工具是 盘古越狱, 越狱的 iOS 系统是 7.x. 现在 iOS 已经升级到 11.x 了, 很多 APP 和游戏已经不再支持 iOS8 以下的系统了, 系统的安全性也越来越好了, 越狱破解的难度也随之提高了, 目前市面上能越狱的最高版本应该是 10.3.x 的系统(截止到该篇文章写的时候).

为了能够分析和学习一些优秀 App 的设计, 我索性买了台iPhone6sPlus 拿来越狱, 所以接下来的分享都是基于这台手机的.

越狱工具和设备

[1]. 设备 iPhone6s Plus, 系统 iOS10.3.2
[2]. 越狱工具: 爱思助手和 doubleH3lix.ipa

安装并打开 pc 上面的 爱思助手 直接开始越狱, 爱思助手会帮您在设备上安装 doubleH3lix. 运行 doubleH3lix 应用,点击 jailbreak 按钮,等待设备自行重启.

手机重启后, 你会看到 Cydia 静静的呆在那里了, 这种方式的越狱属于非完美越狱, 换句话说就是没有真正的破解 iOS 系统.

如果发现手机断电关机或者重启后 Cydia 一打开就闪退, 就使用 doubleH3lix 重新越狱就可以了, 如果还是不行就需要重新使用 爱思助手 了.

参考越狱教程 64位设备iOS 10-10.3.3爱思助手一键越狱教程.

安装 iOS 终端

安装终端, 在 Cydia 中搜索 MTerminal, 安装即可.

安装好终端工具后, 打开终端, 输入

1
su

紧接着让你输入密码, 默认的 root 用户密码是 alpine. 输入改密码回车即可.

为了安全起见, 修改默认密码 alpine.

1
passwd

连续输入相同的密码即为呢修改后的新密码.

配置 SSH

配置和使用 SSH 功能是后续越狱工作的基础, 这样就可以在 MacOS 的终端中访问 iOS 系统了, 各种 shell 命令让你倍感亲切, 所以大家尽量要完成该步骤. 试想一下, 本来手机上面文字输入的体验就不好, 还需要在 iPhone 设备上面的终端中敲着命令…没法忍!

iOS 10 越狱以后自带了 SSH, 所以不需要单独去 Cydia 下载和安装 OpenSSH.

很多人越狱后, 发现也安装了 OpenSSH, 但是一旦连接 iPhone 设备就无法连接甚至报错. 如果你已经安装了 OpenSSH 并且无法使用 SSH 来操作你的 iPhone 设备, 请继续往下看.

[1]. 打开 Cydia, 分别搜索 OpenSSL 和 Openssh, 然后分别卸载 OpenSSL 和 Openssh.

[2]. 打开 Cydia, 添加源:http://cydia.ichitaso.com/test

点击左上角的 添加, 在弹框中输入对应的源地址即可.

[3]. 在 Cydia 中搜索 dropbear 并安装.

安装即可.

安装成功后, 一般就可以正常使用 SSH 功能了.

打开 MacOS 终端, 开始使用 SSH 连接你的 iPhone 设备.

[1]. 查看 iPhone 设备的(wifi) IP 地址. 如我的是 192.168.1.105.
[2]. 使用 MacOS 终端, 输入:

1
ssh root@192.168.1.105

成功的话, 它先会警告你是否继续操作, 输入 yes 即可, 然后又提示你输入 root 密码, 密码就是前面说的修改后的密码. 如果你没有修改密码, 那就是 alpine. 操作流程如下:

1
2
3
4
5
The authenticity of host '192.168.1.105 (192.168.1.105)' can't be established.
ECDSA key fingerprint is SHA256:ANF7Cvc1yM/ZdaHyz9V1EHjG115cylIcHWyOzCL+kzs.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.105' (ECDSA) to the list of known hosts.
root@192.168.1.105's password:

之前在 iOS 10.2.x 越狱修改对应的配置文件, 就可以使用 SSH 功能了, 但是在 iOS10.3.x 无济于事, 如果你是iOS 10.2.x 的越狱手机, 可以参考本文末附录配置 SSH, 也是我之前实践的结果.

usbmuxd

上面是通过 wifi 来连接 iPhone 设备的, 其实还有一种方式, 就是借助于 usbmuxd 这个工具通过 USB 连接(手机数据线连接电脑)不需要 wifi, USB连接比 wifi 响应速度快,且无网络环境的限制.

使用 usbmuxd 的前提是你的手机可以正常的使用 SSH 功能, 否则 usbmuxd 也无法救你.

[1].MacOS 安装 usbmuxd

1
brew install usbmuxd

[2]. 使用 usbmuxd 自带工具 iproxy.

iproxy 可以快捷的操作连接 iPhone 等操作.

MacOS 上只支持 4 位的端口号,需要把 iPhone 的默认端口 22 映射到 Mac 上面一个 4 位端口号的端口上面,相当于建立一个 Mac 和 iPhone 之间的通道. iproxy 具体使用, 后面再讲. 大家先安装一下即可.

1
2
iproxy 5678 22
waiting for connection

以上命令就是把当前连接设备的 22 端口(SSH端口)映射到电脑的 5678 端口,那么想和设备 22 端口通信,直接和本地的 5678 端口通信就可以了.

终端提示 waiting for connection, 表示这两个端口之间已经可以通信了,保留当前终端窗口(如果关闭就停止端口之间的通信了),新建另一个终端输入,默认密码 root 密码.

1
ssh -p 5678 root@127.0.0.1

执行过程如下, 类似上面通过 wifi 操作的方式.

1
2
3
4
5
The authenticity of host '[127.0.0.1]:5678 ([127.0.0.1]:5678)' can't be established.
ECDSA key fingerprint is SHA256:ANF7Cvc1yM/ZdaHyz9V1EHjG115cylIcHWyOzCL+kzs.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[127.0.0.1]:5678' (ECDSA) to the list of known hosts.
root@127.0.0.1's password:

接下来, 你就可以在 MacOS 终端上面操作你的 iPhone 设备了, 尽情的享受 shell 命令吧. 不使用的时候, 输入 exit 即可退出 SSH.

附录

[1]. iOS 10.2.x 越狱使用 SSH 功能.

首先修改 root 密码.

iOS 10.2 (越狱后)自带 OpenSSH,不需要自己重新安装 OpenSSH, 但是需要修改一个文件才能使用.

在手机上安装 MTERMINAL,运行 su,输入 root 密码,执行:

1
ps aux|grep dropbear

如果你看到的进程没有 dropbear, 执行:

1
/usr/local/bin/dropbear -F -R -p 22

然后就可以连接了,重启依然有效.

如果你看到进程是这样的:

1
/usr/local/bin/dropbear -F -R -p 127.0.0.1:22

意思是只能数据线重定向连接 SSH,如果你想改成 WIFI 可以访问, 需要修改 /private/var/containers/Bundle/Application/D9185B6D-EA9E-4678-B59C-BF43DEFE67BF/yalu102.app/dropbear.plist
把里面有个参数 127.0.0.1:22 改成22 保存,重启手机即可.

[2]. 使用 usbmuxd 无法使用 SSH

执行 ssh -p 5678 root@127.0.0.1 后报错, 如下:

1
ssh_exchange_identification: read: Connection reset by peer

这种情况一般是没有正确的使用数据线连接 Mac 电脑, 使用数据线正常连接 Mac 电脑即可解决问题.

坚持原创技术分享!