
目录
一,为何远程登录
二,用OpenSSH实现远程登录
三,SSH的通信过程
四,通过USB进行登录
五,其他知识
一,为何远程登录
1,我们经常在Mac的终端上,通过敲一些命令来完成一些操作
2,iOS和Mac OS X都是基于Darwin(苹果公司一个基于Unix的开源系统内核),所以iOS同样支持终端的命令操作
3,在逆向工程中,我们经常会通过命令来操作iPhone
4,为了让Mac终端上的命令能作用在iPhone上,需要先让Mac和iPhone建立连接
5,通过Mac远程登录到iPhone的方式建立连接

二,用OpenSSH实现远程登录
1,SSH和OpenSSH
SSH
1>
Secure Shell(安全外壳协议)的缩写,是一种为远程登录提供安全保障的协议
2>它会把所有传输的数据都进行加密,以防止“中间人”攻击
OpenSSH
1>是
SSH的开源实现
2>通过它可以实现Mac远程登录到iPhone
3>在iPhone上通过Cydia安装该工具(软件源:http://apt.saurik.com)
2,登录步骤
Mac和iPhone连接同一个WiFi在
Mac终端输入:ssh 账户名@服务器地址(这里的服务器是手机)输入初始密码:
alpine登录成功:使用终端命令来操作
iPhone退出登录:
exit


3,常用账户
root
1>最高权限账户,$HOME是
/var/root
2>初始密码:alpine
3>修改密码:passwd
mobile
1>普通权限账户(只能操作普通文件,不能操作系统文件),$HOME是
/var/mobile
2>初始密码:alpine
3>修改密码:passwd
4,SSL和SSH
SSL
1>
Secure Sockets Layer(安全套接字协议)的缩写,是一种为网络通信提供安全及数据完整性的协议
2>OpenSSL是SSL的开源实现
3>HTTPS=HTTP+OpenSSL
SSH
1>
Secure Shell(安全外壳协议)的缩写,是一种为远程登录提供安全保障的协议
2>OpenSSH是SSH的开源实现
3>OpenSSH是基于OpenSSL实现的
5,SSH的版本
有两个版本:
SSH-1,SSH-2(常用)客户端和服务端版本要保持一致才能通信
查看版本:
/etc/ssh/ssh_config(客户端),/etc/ssh/sshd_config(服务端)




三,SSH的通信过程
1,三个阶段
建立安全连接
客户端认证
数据传输
2,建立安全连接
- 当客户端向服务端发起连接时,服务端会将公钥信息(身份证明)发送给客户端

- 如果客户端没有服务端的公钥信息,就会询问是否连接此服务器,输入
yes后,公钥信息就会保存到客户端的known_hosts文件中



- 如果客户端有服务端的公钥信息,就不会再询问了

- 如果服务端身份发生了变更,客户端发起连接时就会报错,因为新的公钥信息和客户端保存的对不上,只需将客户端保存的公钥信息删除即可

3,客户端认证
- 密码认证:每次都需要输入密码

- 密钥认证:只需认证一次,比密码更安全
1>生成客户端的公钥和私钥:输入
ssh-keygen,然后一直敲回车即可2>将客户端的公钥信息复制到服务端的
authorized_keys文件中:ssh-copy-id 账户名@服务器地址3>服务端认证后,以后就可以免密登录了
4>如果还是需要输入密码,在服务端设置一下文件权限即可
四,通过USB进行登录
1,端口
端口就是设备对外提供服务的窗口,每台设备都有2^16个端口,每个端口都有一个编号(0 ~ 65535)
有些端口是保留的,已经规定了用途
1>21端口提供
FTP服务
2>80端口提供HTTP服务
3>22端口提供SSH服务
4>更多保留端口:https://baike.baidu.com/item/%E7%AB%AF%E5%8F%A3
- 由于10010端口不是保留的,所以我们可以使用
2,SSH默认是通过网络进行登录的,要求客户端和服务端连接同一个WiFi

3,为了加快传输速度,也可以通过USB进行登录


- 用
python脚本将服务端的22端口映射到客户端的10010端口:python tcprelay.py -t 22:10010

- 新开一个终端窗口,用
SSH登录到客户端本地的10010端口:ssh root@localhost -p 10010

- Mac上的服务程序
usbmuxd会将本地10010端口的数据,通过USB转发到iPhone的22端口:/System/Library/PrivateFrameworks/MobileDevice.framework/Resources/usbmuxd

- 以后如果想跟服务端的22端口通信,直接跟客户端本地的10010端口通信就可以了
五,其他知识
1,我们可以将经常执行的一些命令放到sh脚本文件中,以后直接执行脚本文件即可,这样比较简单快捷
- 创建脚本文件
映射脚本
1>打开终端,输入:vim usbmuxd.sh
2>敲i,输入:python ~/Downloads/usbmuxd-1.0.8/python-client/tcprelay.py -t 22:10010
3>敲esc,输入::wq登录脚本
1>打开终端,输入:vim login.sh
2>敲i,输入:ssh root@localhost -p 10010
3>敲esc,输入::wq
- 执行脚本文件
1>先执行映射脚本:
sh usbmuxd.sh2>再在新窗口中执行登录脚本:
sh login.sh
2,iPhone上默认是不支持vim命令的,需要通过Cydia安装一个vim工具(软件源:http://apt.saurik.com)
- 安装前

- 安装后
















