阅读 189

iOS逆向需要了解的OpenSSH

一、OpenSSH 概述

1.1 SSH

SSH 是一种网络协议,用于计算机之间的加密登录。

1995 年,芬兰学者 Tatu Ylonen 设计了 SSH 协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为 Linux 系统的标准配置。

1.2 OpenSSH

OpenSSHSSH (Secure SHell) 协议的免费开源实现。它是一款软件,应用非常广泛。SSH 协议可以用来进行远程控制, 或在计算机之间传送文件。

1.2.1 OpenSSH 插件安装

通过 OpenSSH 插件可以连接手机,进行远程控制, 或者传送文件。以越狱设备上的 cydia 为例,需要在软件源中添加源:


//蜜蜂源

apt.cydiami.com

//雷锋源

apt.abcydia.com

复制代码

这两个源比较有名, 推荐添加。软件源可以理解为服务器, 存放了插件安装包。

image.png

然后在搜索中搜索OpenSSH,认准来自 apt.bingner.com。当然直接添加这个源也可以。

image.png

1.3 SSH 登陆过程

sequenceDiagram

客户端(Mac)->>越狱设备(iPhone): 1. 请求链接到iPhone (22端口) (root@设备IP)

越狱设备(iPhone)-->>客户端(Mac): 2.手机将公钥发送给Mac

客户端(Mac)->>越狱设备(iPhone): 3. Mac电脑通过收到的公钥加密登陆密码 (默认是: alpine)

越狱设备(iPhone)-->>客户端(Mac): 4.手机用私钥解密登陆密码, 是否允许登录

具体步骤:

  1. 请求链接到iPhone (22端口)

  2. 手机将公钥发送给Mac

在首次登录的时候会出现提示 RSA keyhash 值( hash 值是提示验证公钥的), 也就是在这里接受的 RSA 的 key(公钥), 然后保存在 ~/.ssh 目录下的 knuwn_host 文件中.(下图是我测试过程中产生的)

image.png

  1. Mac电脑通过收到的公钥加密登陆密码

  2. 手机用私钥解密登陆密码, 是否允许登录

1.4 中间人攻击(Man-in-the-middle attack)

sequenceDiagram

participant 客户端(Mac)

participant 中间人

participant 越狱设备(iPhone)

客户端(Mac)->>越狱设备(iPhone): 1. 请求链接到iPhone (22端口) (root@设备IP)

越狱设备(iPhone)-->>中间人: 2.手机将公钥发送给Mac

Note right of 中间人:手机上的公钥(被拦截)

中间人-->>客户端(Mac): 3.发送自己的的公钥发送给Mac

Note right of 客户端(Mac):中间人的公钥

客户端(Mac)->>中间人: 4. Mac电脑通过收到的公钥加密登陆密码 (默认是: alpine)

中间人->>越狱设备(iPhone): 5. 中间人通过自己的私钥解密, 然后通过拦截的公钥加密发送给iPhone

越狱设备(iPhone)-->>客户端(Mac): 6.iPhone用私钥解密登陆密码,允许登录

  1. 中间人拦截获取或者模拟电脑给手机发送登录请求获取手机端公钥(I)

  2. 然后自己生成公私钥(M)将自己生成的公钥(M)发送给电脑

  3. 电脑端密码使用公钥(M)加密后发送给中间人,中间人使用私钥(M)解密拿到密码。

  4. 中间人将密码通过公钥(I)加密从而实现登录。

1.5 了解原理, 但是怎么防止中间人的呢?

其实这个 SSH 早就解决了,

这个时候就用到了登录的时候返回的 hash 值了, 他就是用来检验公钥的.

一般服务器都会在自己的官网上公布自己公钥的 hash 值。这样就有效避免中间人攻击了。

文章分类
iOS
文章标签