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

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

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

二、简介

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

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

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

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

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

三、SSHOpenSSH

  • Secure Shell 的缩写,意为 安全外壳协议 , 是一种可以为远程登录提供安全保障的协议
  • 使用 SSH ,可以把所有传输的数据进行加密,中间人 攻击方式就不可能实现,能防止 DNS 欺骗和 IP 欺骗,中途拦截篡改数据。
  • OpenSSH
  • SSH 协议的免费开源实现。
  • 可以通过 OpenSSH 的方式让 Mac 远程登录到 iPhone

四、使用 OpenSSH 远程登录到 iPhone,先安装 OpenSSH

  • 默认 iPhone 上是不支持 OpenSSH 的,我们需要通过 Cydia 安装 OpenSSH 工具 (软件源http://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


相关文章
|
2月前
|
网络安全 开发工具 数据安全/隐私保护
如何把 ipa 文件 (iOS 安装包) 安装到 iPhone 手机上? 附方法汇总
如何把 ipa 文件 (iOS 安装包) 安装到 iPhone 手机上? 附方法汇总
|
5月前
|
iOS开发
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(五)(3)
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(五)
61 0
|
5月前
|
前端开发 数据处理 iOS开发
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(五)(2)
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(五)
49 0
|
5月前
|
iOS开发 Kotlin 容器
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(五)(1)
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(五)
54 0
|
5月前
|
存储 缓存 前端开发
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(四)(2)
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(四)
50 0
|
5月前
|
前端开发 Swift iOS开发
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(四)(1)
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(四)
96 0
|
5月前
|
存储 PHP Swift
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(三)(2)
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(三)
68 0
|
5月前
|
前端开发 iOS开发
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(三)(1)
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(三)
57 0
|
5月前
|
iOS开发 开发者 容器
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(二)(2)
实战编程·使用SwiftUI从0到1完成一款iOS笔记App(二)
52 0
|
3月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
61 0