iOS逆向安防从入门到秃头--OpenSSH

1,518 阅读4分钟

小谷秃头合集

  • 兄弟们首先要有越狱手机,然后装好OpenSSH插件。(小谷就不演示手机越狱过程了,毕竟班门弄斧了)

1. SSH 登录

1.1. 登录演示

  • 介绍下SSH,是一种网络协议,用于加密登录

  • 我们逆向开发的时候,肯定会用到手机。这个时候我们会用OpenSSH登录(就是基于SSH的一个插件

  • 我们用OpenSSH登录的话,有2个用户。一个是root登录,一个是mobile登录。我们逆向开发的话,通常用root登录,毕竟权限比较高

    1. 登录命令(终端直接输入) ssh root@IP地址

这里的IP地址是只你手机连接WiFi的IP

1.png

    1. 第一次会有选项 2.png

然后你就可以操作你的手机了. (也可以玩一下mobile登录,只是把root改成mobile就可以了,不过权限较低)

1.2. 登录原理

为了OpenSSH写一篇博客,肯定说下他的原理了~

  • 小谷还是画个图好点:(我们是用电脑登录手机)

3.1.png

1.3. 中间人攻击

上面的登录原理,可能会出现一丢丢安全隐患(不知道兄弟们发现了没有,第一次登录的时候回有个RAS的SHA256值

1.3.1. 中间人攻击原理

先说下中间人攻击。然后说下SSH登录如何防护

  • 兄弟们可以想象一下。假如,我们链接的WiFi做了一波操作:在iPhone传给Mac截取公钥,发给Mac--自己的公钥,然后Mac输完密码,在用自己的私钥解密,然后在用拿到的iPhone的公钥加密,传给iPhone,是不是就有点问题~

  • 说的有点麻烦,还是画图比较清晰

4.1.png

1.3.2. 防中间人措施

小谷这么笨都想到了隐患,所以SSH这么厉害可能想的到解决办法,😁

  • 兄弟们还记的,第一次登录的时候的RAS的SHA256值

  • Mac发送的时候,会有一波校验,这样就可以保证是iphone的公钥加密了

  • 小谷这次就不画图了(画图水准有限~ 😆)

2. 免密登录(公钥登录)

2.1. 免密登录原理

  • 兄弟们肯定不想每次都输密码的。所以就产生了 免密登录

  • 免密登录主要是用的Mac电脑的公钥和私钥

  • 小谷必须展示一波绘画天赋了~

5.png

所以免密登录也称公钥登录

2.2. 免密登录演示

  • 如果是第一次登录的话,先要生成公钥和私钥 ssh-keygen

6.png

  • 如果你已经有公钥私钥了,它会自动匹配,那这一步就可以不操作

  • 然后请求发送 ssh-copy-id root@IP地址

7.1.png

  • 之后就可以不要密码登录了

8.png

2.3. config 配置

越懒的人就要想越轻松的办法。(比如我,😆)

  • 我们可以用到更轻松的办法。在~.ssh中配置config

9.png

  • 我们登录的话

10.png

这样就方便很多了~

3. USB登录

  • 由于逆向开发的时候。用WiFi链接登录,有时候会有卡顿。所以又出来了个USB登录

这个是真的爽

  • 我们用WiFi 登录时,默认端口为22USB登录的话映射一下端口就可以了

自己映射的端口不要随便设置,找个用不到的端口。例如:12345

  • 刚才我们输入的 ssh root@ip == ssh -p 22 root@ip

  • USB登录网上有好多大佬写的脚本。我这里就说下libimobiledevice这个工具吧

    • 我们先安装 brew list libimobiledevice

    • 映射端口 iproxy 12345 22

    • 之后我们就可以登录了 ssh -p 12345 root@localhost

  • 我为了不每次都输入,写成了sh脚本。直接调用

11.png

我们Mac有个USB插件的识别,我们主要是映射他的接口,目录在 /System/Library/PrivateFrameworks/MobileDevice.framework/Resources 12.png

4. 总结

  • OpenSSH逆向开发必须要会的。用多了发现其实就是一个调用脚本的操作了~

  • 我下篇博客准备写一篇砸壳的。他跟OpenSSH是一个层次的

  • 最后了,希望兄弟们大佬们多多指点~