目录
一,为何远程登录
二,用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.sh
2>再在新窗口中执行登录脚本:
sh login.sh
2,iPhone上默认是不支持vim
命令的,需要通过Cydia
安装一个vim
工具(软件源:http://apt.saurik.com)
- 安装前
- 安装后
网友评论