美文网首页
九、iOS逆向之《越狱&OpenSSH》

九、iOS逆向之《越狱&OpenSSH》

作者: Hanfank | 来源:发表于2019-01-11 23:25 被阅读47次

越狱概述

通过iOS系统安全启动链条的漏洞,从而禁止掉负责信任验证的组件,拿到iOS的root最高权限账号。

iPhone安全启动链

1、在设备启动后会先从只读的Boot ROM存储器读取启动引导程序,Boot ROM 引导程序包含了苹果权威认证的公钥。
2、引导程序启动成功后,便使用公钥对底层启动加载器(LLB)进行签名验证。
3、底层启动器(LLB)启动后,便使用公钥对第二级引导程序iBoot签名验证。
4、iBoot启动后,便验证内核签名合法性。
5、最后便进入恢复模式或启动内核模式kernel。
6、这个信任链会确保所有的系统组件都有苹果官方写入、签名、分发,不能来自第三方机构。

image.png

越狱的工作原理正是攻击这一信任链。所有的越狱工具的作者都需要找到这一信任链上的漏洞,从而禁止掉信任链中负责验证的组件。拿到iOS系统最大权限ROOT权限。

完美越狱&非完美越狱

完美越狱:
完美越狱就是破解iOS系统漏洞后,每次启动都能注入恶意代码,达到破坏安全验证,获得root账号权限。

非完美越狱:设备重新启动中无法重新注入恶意代码,重启后便恢复到了系统状态,失去了root账号权限,因没足够权限,很多越狱应用经常出现无法使用的情况。

越狱成功后常用插件

Cydia:越狱成功后便会出现的越狱应用商店。

Cydia

Apple File Conduit “2”:可以获得根目录访问权限。

2334426-1152049765d043f2.jpg

AppSync Unified:可以绕过签名检测。


AppSync Unified

adv-cmds:命令行。


image.png

OpenSSH插件:


OpenSSH

OpenSSH

OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。 SSH协议可以用来进行远程控制, 或在计算机之间传送文件。

通过OpenSSH连接手机

通过OpenSSH连接手机,手机一定要先越狱。
通过插件使用Wifi连接手机:ssh 用户名@手机IP地址 默认密码:alpine

HanDaDaMacBook-Air:~ HanDaDa$ssh root@192.168.31.231

首次连接会提示:是否保存RSA Key。选择YES,下次再次登录可以保证无中间人攻击。保证连接安全。

首次连接会显示

退出登录用指令:exit

HanDaDaMacBook-Air:~ HanDaDa$exit

iOS下有两个账户rootmobile
root 拥有最高权限,可以访问任意文件。
mobile 普通用户,只能访问修改用户目录文件/var/mobile文件夹

修改root、mobile用户密码

root用户可以修改所有账号密码
修改密码指令 :$passwd

HanDaDaMacBook-Air:~ HanDaDa$ passwd

输入两次新密码,确认修改,因为是登录状态所以不用输入原始密码。

SSH

SSH是一种网络协议,用于计算机之间的加密登录。
1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
它和OpenSSH有什么却别?
OpenSSH 它是一款软件,而SSH是种网络协议。

SSH登录过程

登录过程

普通登录过程

SSH登录
1、mac电脑给手机发送登录请求
2、手机收到请求后,把手机的公钥发给mac电脑。
3、电脑收到公钥后,使用手机公钥对刚刚登录时输入的密码进行加密,发送给 手机。
4、手机收到后,手机用私钥进行解密,能解密成功并且密码正确,即可登录。

免密登录

免密登录
免密登录概述:免密登录也称“公钥登录”, 原理是将电脑的公钥存入手机中,登录时,手机随机发送一个字符串给电脑,电脑通过私钥对随机字符串加密,发送给手机,手机收到后使用事先存在手机的电脑公钥对其解密,解密成功证明用户是可信的,直接允许登录,不需要密码。
1、手机随机生成字符串
2、电脑使用私钥对字符串加密,并发送回手机
3、手机使用电脑公钥对其解密
4、正确则直接登录

# 电脑在~/.ssh/目录下生成公钥
HanDaDaMacBook-Air:~ HanDaDa$ssh-keygen
# 拷贝公钥给SSH手机 
HanDaDaMacBook-Air:~ HanDaDa$ssh-copy-id 用户名@手机IP
# 连接手机
HanDaDaMacBook-Air:~ HanDaDa$ssh root@192.168.31.231

不管是免密登录还是使用密码登录整个过程简而概之:确认过眼神,遇上对的人。


image.png

USB登录

苹果有一个服务,叫usbmuxd,这个服务主要用于在USB协议上实现多路TCP连接.

USB 登录需要端口映射,目前有两种方式映射

  1. Python脚本 tcprelay 端口映射:
# 将本地的12345端口映射到设备的TCP端口22
# -t 表示能够同时支持多个SSH连接
HanDaDaMacBook-Air:~ HanDaDa$python tcprelay.py -t 22:12345
  1. Iproxy端口映射
# 安装libimobiledevice工具
HanDaDaMacBook-Air:~ HanDaDa$brew install libimobiledevice
# 映射端口
HanDaDaMacBook-Air:~ HanDaDa$iproxy 12345 22
  • 以上两种方式成功后皆可通过以下SSH连接登录手机
# ssh连接本地的端口12345,由于做了端口映射,所以会通过usb连接对面设备的22端口。
# 127.0.0.1 是IP地址
# -p 表示端口号
HanDaDaMacBook-Air:~ HanDaDa$ssh -p 12345 root@127.0.0.1

每次都需要输入IP地址,有点烦,取个别名登陆。

取别名登录

  1. 在~/.ssh 目录下创建一个config文件。内部可以配置ssh登录的别名,如果没有,可以新建一个。
Host 5s //别名
Hostname 192.168.0.2 //IP地址 
User root //用户名
Port 22 //端口号
  1. 完成映射后就可以连接手机了
HanDaDaMacBook-Air:~ HanDaDa$ssh 5s

中间人攻击

什么是中间人攻击?
中间人攻击是在电脑和手机连接时,有中间人进行拦截登陆,窃取信息的行为。
ssh是通过公钥比对发现中间人攻击的,由于手机的公钥存在于电脑上,当电脑向手机请求登录时,发现公钥和本地电脑保存的公钥不一致时就会警告。


中间人攻击示意图

遇到这种情况一定要确认安全,确认安全后仍然无法登陆,需要删除下面信息后,再次尝试登陆。

  • 删掉保存的服务器地址的key
HanDaDaMacBook-Air:~ HanDaDa$ssh-keygen –R 服务器IP地址(当SSH登录手机,手机就是服务器)
  • 或在系统~/.ssh 目录中找到know_hosts文件,删除对应的公钥和IP地址
    know_hosts文件:用于保存SSH登录服务器所接受的key

结束语

愿世界和平

相关文章

网友评论

      本文标题:九、iOS逆向之《越狱&OpenSSH》

      本文链接:https://www.haomeiwen.com/subject/dscirqtx.html