阅读 82

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 登陆过程

客户端(Mac)越狱设备(iPhone)1. 请求链接到iPhone (22端口) (root@设备IP)2.手机将公钥发送给Mac3. Mac电脑通过收到的公钥加密登陆密码 (默认是: alpine)4.手机用私钥解密登陆密码, 是否允许登录客户端(Mac)越狱设备(iPhone)

具体步骤:

  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)

客户端(Mac)中间人越狱设备(iPhone)1. 请求链接到iPhone (22端口) (root@设备IP)2.手机将公钥发送给Mac手机上的公钥(被拦截)3.发送自己的的公钥发送给Mac中间人的公钥4. Mac电脑通过收到的公钥加密登陆密码 (默认是: alpine)5. 中间人通过自己的私钥解密, 然后通过拦截的公钥加密发送给iPhone6.iPhone用私钥解密登陆密码,允许登录客户端(Mac)中间人越狱设备(iPhone)

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

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

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

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

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

其实这个 SSH 早就解决了,

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

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


作者:Keya
链接:https://juejin.cn/post/7023660104931082248


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐