iOS 逆向编程(五)通过 (OpenSSH) Wifi 远程连接登录 iPhone

981 阅读3分钟

一、安装 Mac 上提高效率的辅助工具 (可选)

二、简介

1、我们经常在 Mac 的终端上通过敲一些命令行来完成一些操作。

2、iOSMac OS X 都是基于 Darwin (苹果的一个基于 Unix 的开源系统内核) ,所以 iOS 中同样支持终端的命令行操作。

3、在逆向工程中,我们经常会通过命令行来操纵 iPhone

4、为了能够让 Mac 终端中的命令行能作用在 iPhone 上,我们得让 MaciPhone 建立连接。

5、通过 Mac 远程登录到 iPhone 的方式建立连接。

三、SSHOpenSSH

  • iOS 逆向编程(六) SSH、OpenSSH、SSL、OpenSSL 简介与关系

  • 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 协议通信,所以要确保 MaciPhone 在同一局域网下,比如连接着同一个 WiFi

2、然后在 Mac 的终端输入 ssh 账户名@服务器主机地址 这种格式的命令进行连接 iPhone

3、iOS 下有 2 个常用账户: rootmobile

  • 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.

六、修改 rootmobile 用户的登录密码

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