一、安装 Mac 上提高效率的辅助工具 (可选)
二、简介
1、我们经常在 Mac 的终端上通过敲一些命令行来完成一些操作。
2、iOS 和 Mac OS X 都是基于 Darwin (苹果的一个基于 Unix 的开源系统内核) ,所以 iOS 中同样支持终端的命令行操作。
3、在逆向工程中,我们经常会通过命令行来操纵 iPhone。
4、为了能够让 Mac 终端中的命令行能作用在 iPhone 上,我们得让 Mac 和 iPhone 建立连接。
5、通过 Mac 远程登录到 iPhone 的方式建立连接。
三、SSH 与 OpenSSH
-
SSH:Secure Shell的缩写,意为安全外壳协议, 是一种可以为远程登录提供安全保障的协议- 使用
SSH,可以把所有传输的数据进行加密,中间人攻击方式就不可能实现,能防止DNS欺骗和IP欺骗,中途拦截篡改数据。
-
OpenSSH:- 是
SSH协议的免费开源实现。 - 可以通过
OpenSSH的方式让Mac远程登录到iPhone。
- 是
四、使用 OpenSSH 远程登录到 iPhone,先安装 OpenSSH
-
默认
iPhone上是不支持OpenSSH的,我们需要通过Cydia安装OpenSSH工具 (软件源apt.saurik.com) -
打开
Cydia搜索OpenSSH即可安装,如果搜不到在添加上面的软件源,默认应该是有的,如果网络有问题建议换个网络环境。(附:Cydia 商店安装方式)
五、OpenSSH 使用步骤
1、SSH 是通过 TCP 协议通信,所以要确保 Mac 和 iPhone 在同一局域网下,比如连接着同一个 WiFi。
2、然后在 Mac 的终端输入 ssh 账户名@服务器主机地址 这种格式的命令进行连接 iPhone。
3、iOS 下有 2 个常用账户: root、mobile
-
root:最高权限账户,$HOME(路径)是/var/root -
mobile:普通权限账户,只能操作一些普通文件,不能操作系统级别的文件,$HOME(路径)是/var/mobile
4、账户名 我们这里用 root。
5、服务器主机地址 也就是 IP 地址,电脑与手机都连接一个 Wifi,然后打开手机 设置 -> 无限局域网 -> 点你连接Wifi后面的叹号 -> 然后就看到 IP 地址了。
6、然后通过以上结合的命令就是: ssh root@10.0.89.184,然后在命令行中使用,(OpenSSH 的默认密码都是 alpine)。
dengzemiaodeMacBook-Pro:~ dengzemiao$ ssh root@10.0.89.184
// 这个 IP 地址是没有建立过连接的
The authenticity of host '10.0.89.184 (10.0.89.184)' can't be established.
// 服务器公钥通过 SHA256 加密之后的字符串,如果确定连接将解析出来并存到本地
// 一个方便下次连接不需要再次询问确认,二个以免有同样 IP 地址的服务端冒充
RSA key fingerprint is SHA256:TmFvst8CU2JJqrFZ1QIANzprd1rUckdYjV4lcVaS8Gk.
// 问你是否确定连接,选 yes
// 然后就会将验证公钥解析出来并存到你本地 ~/.ssh/known_hosts 文件夹里面,下次连接使用
// 可以通过命令 $ ssh-keygen -R 10.0.89.184 进行清除存储的公钥,然后再次回到这个询问
Are you sure you want to continue connecting (yes/no)? yes
// 然后需要密码,OpenSSH 的默认密码都是 alpine ,所以你直接输入即可,下面也有修改密码教程
root@10.0.89.184's password:
// 如果输入成功,就进入到 iPhone 里面了,这里可以通过正常的 cd、ls 等命令操作
iPhone:~ root#
// exit 退出登录
iPhone:/ root# exit
logout
Connection to 10.0.89.184 closed.
六、修改 root、mobile 用户的登录密码
1、登录 root 账号,只有它才有权限修改。
2、修改 root 账号的密码
// 登录手机 root 账户
dengzemiaodeMacBook-Pro:~ dengzemiao$ ssh root@10.0.89.184
// 输入旧密码
root@10.0.89.184's password:
// 输入 passwd 命令进行修改密码
iPhone:~ root# passwd
Changing password for root.
// 输入新密码
New password:
// 再次输入新密码
Retype new password:
3、修改 mobile 账号的密码,同样还是在 root 账号里面进行修改
// 通过 passwd 命令进行修改密码,passwd mobile :指的是修改 mobile 账户的密码
iPhone:~ root# passwd mobile
Changing password for mobile.
// 输入新密码
New password:
// 再次输入新密码
Retype new password:
七、(附带扩展知识)根据上面链接手机询问,如何查看比较公私钥?
连接手机成功之后,在电脑上查看一下存储的公钥是什么,之前有说如果确定连接了,公钥会被存到 ~/.ssh/known_hosts 这个文件夹中。
// 进入 ~/.ssh 文件
dengzemiaodeMacBook-Pro:~ dengzemiao$ cd ~/.ssh
// 展示列表文件
dengzemiaodeMacBook-Pro:.ssh dengzemiao$ ls
id_rsa id_rsa.pub known_hosts
// 查看 known_hosts 文件
dengzemiaodeMacBook-Pro:.ssh dengzemiao$ cat known_hosts
....... 前面还有很多端口号,我就省略了,找到我们连接的端口号看看就好了
10.0.89.184 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCHckZZQzMFLhuHGwSQleU13ygF7Kv5URZSw88L1MtpL1jRo+Sa6IvNF9HMKScLxRed+XPSorBlt7vxaQbvSd2ESeqn3EW52S44z3Jnc4R4jUPfLqd1QgGbXbXc8emnTnqXv/o6aZcWQNlcNX8WBRJuXU5Tfr8NX9Sp8nERi2tiRKx01uh4S5eAEr7TUXE+Vh5kcXU6m0jQWsqTnwz3nHNTYlKyGz5qCpU/RufhavTxeaQyE9MH3E7RxTpjeSuYb3xNF7p3emXqnlrSZx3/RCvPMELDMiFlUCRRWxVCm6TtvUAkFwS6sMgT1lDWJvsF8ycr3qgUkkgwbAwsp+ZCz6xx
// 客户端电脑的公钥看到了,我们可以看看服务端(手机)上的公钥
dengzemiaodeMacBook-Pro:.ssh dengzemiao$ ssh root@10.0.89.184
root@10.0.89.184's password:
// 进入 /etc/ssh
iPhone:~ root# cd /etc/ssh
// 在 /etc/ssh 目录下有公私钥数据,我们打开公钥文件
iPhone:/etc/ssh root# cat ssh_host_rsa_key.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCHckZZQzMFLhuHGwSQleU13ygF7Kv5URZSw88L1MtpL1jRo+Sa6IvNF9HMKScLxRed+XPSorBlt7vxaQbvSd2ESeqn3EW52S44z3Jnc4R4jUPfLqd1QgGbXbXc8emnTnqXv/o6aZcWQNlcNX8WBRJuXU5Tfr8NX9Sp8nERi2tiRKx01uh4S5eAEr7TUXE+Vh5kcXU6m0jQWsqTnwz3nHNTYlKyGz5qCpU/RufhavTxeaQyE9MH3E7RxTpjeSuYb3xNF7p3emXqnlrSZx3/RCvPMELDMiFlUCRRWxVCm6TtvUAkFwS6sMgT1lDWJvsF8ycr3qgUkkgwbAwsp+ZCz6xx