美文网首页
iOS逆向一:环境搭建

iOS逆向一:环境搭建

作者: julieQY7 | 来源:发表于2019-08-13 18:16 被阅读0次

    一、越狱

    在一切开始之前,你需要准备一台完美越狱的iPhone,关于如何越狱这里就不多说了,在这里简单说明几点

    • 越狱是合法的:本质上是利用iOS的系统漏洞来获取iOS的最高操作权限
    • 完美越狱:越狱后iPhone可以正常开关机、正常使用,不会出现白苹果现象
    • Cydia:越狱后的iPhone会自动安装Cydia,因此你可以通过判断是否安装了Cydia来判断该iPhone是否越狱
    • 通过Cydia可以安装各种插件(一般为.deb格式)、补丁、APP,如果通过Cydia找不到你需要的插件,你可以去网上下载相应插件,然后通过Cydia的自动安装目录来安装,即直接将下载的插件拖到自动安装目录里(Device/var/root/Media/Cydia/AutoInstall/),为了帮助我们更好的操作iPhone,越狱后建议你首先安装如下插件:
      1. Apple File Conduit 2:该插件使iPhone的整个文件系统可以像Mac上一样去访问
      2. AppSync Unified:该插件使iPhone可以安装任意来源的APP
    • 安装完插件Apple File Conduit 2后,就可以任意访问iPhone的文件系统了,随后可以通过在Mac和iPhone分别安装文件访问APP来访问iPhone的文件系统
      1. Mac: iFunBox
      2. iPhone:iFile(通过Cydia的自动安装目录来安装)
        Cydia自动安装目录
    • SpringBoard:安装完插件后,有时会提示重启SpringBoard,SpringBoard指的就是iOS的桌面,直接选择重启即可

    二、如何通过Mac操作iPhone?

    我们知道所谓逆向就是以Mac为开发工具,调试、破解、修改iPhone上的APP的过程,那么如何通过Mac来操作iPhone呢?答案很简单那就是让Mac远程登录iPhone,OpenSSH提供了安全登录协议SSH的开源实现。

    使Mac和iPhone支持远程登录
    • Mac默认支持SSH协议
    • 通过Cydia安装插件OpenSSH,使iPhone支持远程登录

    到此iPhone和Mac都具备了远程登录的环境,下边我们来看下如何远程登录iPhone?接下来我们将分解介绍通过网络和USB访问iPhone

    通过网络登录iPhone
    • Mac和iPhone需要在同一个局域网内,如同一WiFi环境下
    • Mac终端输入指令:ssh 账户名@服务器ip地址
      1. 这里的服务器即iPhone
      2. iPhone有两个账户:rootmobile,为了拥有更高的权限,我们一般使用root账户
        1)账号的初始密码均为:alpine
        2)两个账户修改密码的指令分别为: passwdpasswd mobile
    通过USB登录iPhone
    • Mac上有个服务程序usbmxd(开机自启),可以将Mac和iPhone的数据通过USB传输
    • 将iPhone的SSH端口映射到Mac的任意非保留端口,如:10086
      1. SSH服务默认使用22端口
      2. 端口映射:python tcprelay.py -t 22:1086
        1)-t:同时支持多个接口映射
        2)tcprelay.py文件来源:下载usbmxd文件,从中找到tcprelay.py所在文件夹,在该文件目录下执行上述指令即可完成接口转发,即:
        maigandeiMac:~ maigan$ cd /Users/maigan/Desktop/iOS逆向/工具/python-client
        maigandeiMac:python-client maigan$ python tcprelay.py -t 22:10086
        
    • 登录Mac的10086端口:完成端口映射后,访问Mac上的10086端口就等于访问iPhone上的22端口,因此我们只需要登录到Mac的10086端口即可。
      1. 方式一:ssh root@localhost -p 10086
      2. 方式二:ssh root@127.0.0.1 -p 10086
        注意:要一直保持接口转发,才可以通过端口操作iPhone,因此上述的操作我们需要另起一个终端窗口(快捷键command+t)
    退出iPhone
    • 终端指令:exit

    三、小结

    总的来说使Mac操作iPhone就三步

    • 使Mac、iPhone支持远程登录
    • 通过网络或USB登录iPhone
    • 退出登录

    接下来我们对上面用到的一些知识做些扩展

    四、知识扩展

    SSH、OpenSSH、SSL、OpenSSL
    • SSH:全称Secure Shell,安全外壳协议,为远程登录提供安全保证的协议,默认端口号22
    • OpenSSH:SSH协议的开源实现
    • SSL:全称Secure Socket Layer,为网络通讯提供的一种安全协议,在传输层为网络连接进行加密
    • OpenSSL:SSL的开源实现,
      1. 绝大多数的HTTPS等价于HTTP加OpenSSL
      2. OpenSSH的加密就是通过OpenSSL实现的
    SSH通信过程
    • 建立安全连接
      服务器(iPhone)将公钥等信息发送给客户端(Mac),提供自己的身份证明。如果客户端没有服务端的公钥信息,就会询问是否建立连接此服务器 是否连接此服务器
      注:删除本地存储的服务器公钥:ssh-keygen -R 服务器ip地址
    • 客户端认证
      1. 基于密码的客户端认证:直接登录时输入服务端密码进行客户端认证


        基于密码的客户端认证
      2. 基于秘钥的客户端认证:客户端生成一对公钥私钥,然后将公钥追加到服务端的授权文件里

        基于秘钥的客户端认证
        注:SSH-2默认会优先尝试“密钥认证”,如果认证失败,才会尝试“密码认证”,因此完成秘钥追加后,后续登录将不再需要密码认证
    • 数据传输
    多指令 脚本文件

    我们可以将多条命令写在一个脚本文件(.sh)里,一起执行,如上边接口映射时的cd /xxx/xxx/xxx/xxx/python tcprelay.py -t 22:10086

    • 建立脚本文件,写入上述命令
    • 通过指令source 脚本文件xx.sh执行脚本文件,指令source可以简写为.
      • 注意虽然指令shbash也可以执行脚本文件,但是这里不采用,因为shbash执行脚本文件时,当前shell环境会启动一个子进程来执行脚本文件,执行后返回到父进程的shell环境,所以执行cd时,在子进程中会进入到cd的目录,但是在父进程中环境并没有改变,也就是说目录没有改变

    相关文章

      网友评论

          本文标题:iOS逆向一:环境搭建

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