22-越狱 & OpenSSH
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了22-越狱 & OpenSSH相关的知识,希望对你有一定的参考价值。
参考技术A 本篇文章将给大家介绍下 iOS越狱 的流程,以及 OpenSSH 的原理,看看 越狱后 如何使用 OpenSSH 连接以及调试手机。越狱( Jailbreak ):通过iOS系统 安全启动链 漏洞,从而禁止掉信任链中负责 验证 的组件,拿到iOS系统最大权限 👉🏻 root权限 。
那什么是 安全启动链 呢?👇🏻
以上整个流程如下图👇🏻
所以, 越狱 的工作原理正是攻击这一 信任链 。所有越狱工具的开发者,都需要找到这一信任链上的漏洞,从而禁止掉信任链中负责验证的组件。拿到iOS系统最大权限 root权限 。
根据越狱的情况不同,可以分为如下两种越狱👇🏻
目前比较靠谱的 两种 越狱工具👇🏻
接下来,我们看看什么是 OpenSSH 👇🏻
OpenSSH 是 SSH(Secure SHell) 协议的免费开源实现。 SSH 协议可以用来进行远程控制, 或在计算机之间传送文件。
Mac电脑 登录 iPhone手机 的过程如下图所示 👇🏻
Mac端存储的 公钥 在什么位置呢?
这里就存储了所有的公钥。我们可以找到手机设备的 IP地址 以及对应的 公钥 👇🏻
上面的意思就是 👉🏻 客户端 不存在 公钥,视为 首次登录 。将 手机公钥 发给 Mac电脑 ,同时还有一个 RSA密钥 的 SHA256指纹 ,输入 yes ,让后续流程继续。
中间人:例如手机和电脑连接的 黑客WiFi ,中间人攻击即 Man-in-the-middle attack ,过程如下图👇🏻
那如何预防中间人攻击呢?👇🏻
为了避免中间人攻击, SSH 在首次登录时,除了返回 公钥 ,还会给出 密钥的SHA256指纹 。
指纹 的作用 👉🏻 服务器生成的有效指纹,会在网站上公布。用户首次登录时,可以人工核对该指纹的合法性。如果返回的指纹和公布的指纹不一致,可能出现中间人的伪造,立刻终止登录行为。
这样我们就可以在手机上开启 SSH登录服务 。
之前说过,首次登录就会出现上述提示。
如果 未出现 密码输入的提示,直接 无视警告 ,尝试再次登录
输入默认密码 alpine
成功登录到手机设备上,并且处于设备的 root 目录下。
接下来我们来看看 免密登录 的流程。
免密登录 也称之为 公钥登录 。起原理如下👇🏻
此时就直接允许登录了,没有要求输入密码。
作为逆向工程师,分别会使用 完美越狱 和 非完美越狱 两台手机。在 更换设备 时,切换 登录 的过程还是比较麻烦的,此时就需要给设备的 SSH取别名 。
之前,我们都是使用 WiFi ,通过 ip和端口号 登录的,其实也可以手机usb线连接Mac电脑,使用 USB登录 ,因为使用 WiFi 连接手机,在使用一些指令时,会出现卡顿情况。
在Mac电脑上,默认是支持USB连接的。例如:在Xcode中使用的USB调试SSH登录,默认使用 22 端口。
而USB连接,需要使用 usbmuxd 服务 👉🏻 主要用于在 USB协议 上,实现 多路TCP连接 。 usbmuxd 所在Mac电脑的位置👇🏻
将本地 12345 端口,映射到设备 TCP 的 22 端口上。这样就可以通过本地的 12345 端口建立连接。
SSH连接本地12345端口,由于进行了端口映射,所以会通过USB连接到设备的22端口。
此时成功登录到手机设备上!🍺🍺🍺🍺🍺🍺
上面出现警告⚠️,因为设备更换,服务器返回的公钥发生了变化,但连接的IP地址都是 localhost 。当相同IP地址的公钥发生变化,客户端会给出 疑似中间人 攻击的警告,并阻止登录。
怎么办呢?2种方式👇🏻
每次切换都去删除显然很麻烦,所以建议第2种。
输入默认密码 alpine ,设备登录成功。
以上连接设备登录等操作,都需要手动一条条的输入指令完成,还是挺麻烦,为了省事,建议使用脚本。
USB连接设备,除了使用 Python 脚本,还可以使用 iproxy命令 。
USB连接成功!🍺🍺🍺🍺🍺🍺
当越狱设备出现问题,如果在设备的“通用-还原”中,选择“还原所有设置”,很容易出现白苹果。正确的做法是,先将设备清理越狱环境,然后进行设备平刷
使用 uncOver 工具越狱,在设置中很容易清理越狱环境。但如果是老系统的设备,使用其他工具进行越狱,此时想清理越狱环境就很困难了
这种情况下清理越狱环境的方法:
以上是关于22-越狱 & OpenSSH的主要内容,如果未能解决你的问题,请参考以下文章