一、SSH与OpenSSH简介
- 1.1、SSH简介
SSH
是Secure Shell
的缩写,意为“安全外壳协议”,是一种可以为远程登录
提供安全保障的协议- 使用SSH,可以把所有传输的数据进行加密,“中间人”攻击方式就不可能实现,能防止DNS欺骗和IP欺骗
提示:sniffer
是嗅探器以及抓数据包软件
- 1.2、OpenSSH简介
- OpenSSH 是 SSH 协议的免费开源实现
- 可以通过OpenSSH的方式让Mac远程登录到iPhone
二、Mac远程登录到iPhone
- 2.1、Mac远程登录到iPhone的简介
- 我们经常在Mac的终端上,通过敲一些命令行来完成一些操作
- OS和Mac OS X都是基于Darwin(苹果的一个基于Unix的开源系统内核),所以iOS中同样支持终端的命令行操作(在逆向工程中,我们经常会通过命令行来操纵iPhone)
- 为了能够让Mac终端中的命令行能作用在iPhone上,我们得让Mac和iPhone建立连接
2.2、Mac使用OpenSSH
远程登录iphone的前提
- 在iPhone上通过Cydia安装OpenSSH工具(软件源http://apt.saurik.com)
OpenSSH的具体使用步骤可以查看Description中的描述
2.3、使用OpenSSH远程登录 的 使用步骤 - (Mac充当客户端,iPhone充当服务器)
- <1>、SSH是通过TCP协议通信,所以要确保Mac和iPhone在同一局域网下,比如连接着同一个WiFi
- <2>、在Mac的终端输入ssh 账户名@服务器主机地址,如下是以root权限登录的,其中的
192.168.3.73
是手机的IP地址,这里的服务器是手机
ssh root@192.168.3.73
手机的IP地址的查看方式,要和电脑在同一个WiFi下
<3>、初始密码 alpine
- <4>、登录成功后就可以使用终端命令行操作iPhone,如:退出登录命令是
exit
,也可以使用快捷键:control+d
三、iOS下的2个常用账户:root、mobile (初始登录密码都是alpine
)
3.1、root:最高权限账户,$HOME是 /var/root
提示:$HOME是 登录用户的路径,查看方式如下
- 3.2、mobile:普通权限账户,只能操作一些普通文件,不能操作系统级别的文件,$HOME是
/var/mobile
- 3.3、修改一下root和mobile用户的登录密码(登录root账户后,分别通过passwd、passwd mobile完成),使用root用户登录,登录成功后命令如下
四、SSL和OpenSSL
- 分析:我们在安装 OpenSSH的时候可以看到先安装的是OpenSSL
- 4.1、SSL:
Secure Sockets Layer
的缩写,是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密 - 4.2、OpenSSL:SSL的开源实现;绝大部分HTTPS请求等价于:
HTTP + OpenSSL
提示1:OpenSSH的加密就是通过OpenSSL完成的
五、建立安全连接
- 5.1、SSH的版本
- SSH协议一共2个版本:
SSH-1
与SSH-2
(现在用的比较多的是SSH-2,客户端和服务端版本要保持一致才能通信) - 查看SSH版本(查看配置文件的Protocol字段)
- 客户端:/etc/ssh/ssh_config
- 服务端:/etc/ssh/sshd_config
- 举例:以电脑作为客户端与越狱手机作为服务器查看各自对应的SSH版本
- 电脑作为客户端查看SSH版本
越狱手机作为服务器端查看SSH版本
- .2、SSH的通信过程可以分为3大主要阶段:建立安全连接、客户端认证、数据传输
- 5.3、建立安全连接
- <1>、在建立安全连接过程中,服务器会提供自己的身份证明(也就是公钥)
- 提示:
~/.ssh/known_hosts
路径下存储 服务器的公钥等其他的信息,在第一次存储后,第二次客户端再登录服务器就不再需要验证身份 - 如果客户端并无服务器端的公钥信息,就会询问是否连接此服务器,如下图:我们在第一次登录的时候一般都会提示
- <2>、解释下:在建立安全链接的过程中,
~/.ssh/known_hosts
所保存的服务器公钥以及其他信息,也就是上图中的:字符串 (把服务器发过来的公钥利用加密计算出来的一个字符串) - <3>、服务器身份信息变更(也就是同一个服务器,但是服务器的公钥发生了变化,也可以说本地的存储的公钥与服务器的不一样),解决办法:删除掉同一个 IP 的信息,下面以 IP:
192.168.3.73
为例
- 1)、cd ~/.ssh
- (2)、vim know_hosts
- (3)、让光标停留在192.168.3.73行,按 dd 即可删除
- (4)、
esc
,shift+;
,wq
输入回车键 保存推出; - (5)、再次进行连接服务器
ssh root@192.168.3.73
; - (6)、重新提示要不要连接
提示:快捷方式:ssh-keygen -R 服务器IP地址,如和上面一样的效果:
ssh-keygen -R 192.168.3.73
- <4>、验证客户端存储的 公钥 与 服务器的公钥是否一致