三, 逆向环境的搭建

1, 概述

本篇总结下逆向环境的搭建.

我们在开发的过程中, 需要把mac和越狱iphone链接起来, 方便我们在mac上对手机进行各种调试. 这种链接是使用openSSL框架来进行链接的, openSSL框架是SSL协议的实现.

接下来我们先说一下链接的步骤, 然后简单说明一下SSL、openSSL以及另一个容易混淆的SSH、openSSH的联系和区别.

2, Mac链接越狱iphone的方法

有两种方法:
基于账号密码链接:不安全, 不推荐
基于秘钥的链接:安全, 也是openSSH2.0版本默认的方式, 这种方式不成功才会启动上一种方式.

2.1 基于账号密码链接

这个方法的前提条件必须是:
1, 手机跟电脑使用了数据线连接;
2, 手机跟电脑必须连着同一个WiFi.
为什么要这样, 后面会讲到.
满足这两个条件之后, 我们打开终端, 输入下面的命令
连接手机用到的第一个命令就是:
ssh 用户名@服务器IP
这里手机是服务器, Mac是客户端, 这里我们连接手机的root用户; 怎么查看手机IP地址请自行百度, 这里我的手机IP地址是192.168.199.144, 所以输入的命令是,

ssh [email protected]

如果是第一次连接, 则还会有这个提示, 根据提示我们输入yes

然后会提示我们输入手机的密码. 这里要说一下这个密码并不是手机的锁屏密码也不是mac的密码, 而是越狱之后手机安装的openSSH所需的密码, 第一次连接一般默认密码是alpine(默认密码在cydia->openSSH->Root Password How-To里面查看), 输入密码之后出现下面界面说明连接成功

2.2 基于客户端秘钥的连接

这种方式的认证的连接过程步骤如下:
1, 先在客户端Mac生成一对公钥和私钥(命令为ssh-keygen);
2, 把客户端Mac的公钥发送并拼接到服务器端iphone的授权文件的尾部(命令为ssh-copy-id root@服务器IP, 这一步需要输入root账户的密码);

下面是执行的结果(由于我的电脑已经生成公钥和私钥了, 这里我选择不覆盖):

3, 简单聊聊SSH、openSSH

SSH是secure shell的简称, 意思就是"安全外壳", 是一种可以为远程登录提供安全保障的协议; 使用SSH协议, 可以把所有传输的数据进行加密, "中间人"攻击方式就不可能实现, 能防止DNS欺骗和IP欺骗.
openSSH是SSH协议的开源实现, 免费, 可以使用openSSH让Mac远程登录到手机.
openSSH的链接过程主要分为三个阶段:
1, 建立安全连接
2, 客户端认证
3, 数据传输
为了能更好的讲解这三个过程, 我们需要复现刚刚的连接, 这时候就需要先把客户端(Mac端)的公钥先删除, cd到Mac文件下, 使用下面的命令删除上面连接时手机端发给mac的公钥:

ssh-keygen -R 192.168.199.144

删除了公钥之后, 我们开始重新连接手机服务端, 第一步就是建立安全连接.

3.1 建立安全连接

下面的截图是包括了删除公钥和重新连接的命令执行



1,删除公钥;
2, 重新连接手机.
其中2之后就是建立安全连接的过程:
当我们输入ssh root@...命令并按下回车键时, 客户端mac就会向服务端iphone发起连接请求;
服务端iphone收到请求之后, 会将包含公钥信息的内容发给客户端并询问是否继续(截图中最大红色框部分), 此时我们输入yes后就把包含公钥的信息存储到客户端mac了;
接下来就会让你输入服务端openSSH的密码, 这就是下一阶段:

3.2客户端认证

输入默认密码alpine, 链接成功; 到此, 服务端和客户端之间就建立起了安全连接, 就可以发送数据了, 也就是第三阶段.

3.3 传输数据

这个阶段不展开说了.

3.4怎么查看公钥

刚刚建立安全连接的公钥, 有的小伙伴可能会有疑问:我们怎么知道客户端的公钥一定是服务端传过来的呢? 接下来我们比对下两端的公钥.

先看mac端, 用到的命令和执行如下:

再看iphone端, 解说已经在截图里了:

3.5连接过程中可能碰到的问题

连接过程中可能会有弹出下面的信息, 解说和原因都在截图里了


你可能感兴趣的:(三, 逆向环境的搭建)