美文网首页傲视苍穹iOS《Objective-C》VIP专题
iOS逆向学习之二(Mac远程操控iPhone)

iOS逆向学习之二(Mac远程操控iPhone)

作者: 一意孤行的程序猿 | 来源:发表于2019-10-18 22:35 被阅读0次

    SSH、OpenSSH

    SSH

    • 是Secure的缩写,意为“安全外壳协议”,是一种可以为远程登录提供安全保障的协议
    • 使用SSH,可以把所有传输的数据进行加密,“中间人”攻击方式就不可能实现,能防止DNS欺骗和IP欺骗

    OpenSSH

    • 是SSH协议的免费开源实现
    • 我们可以通过OpenSSH让Mac远程登录到iPhone

    如何使用OpenSSH远程登录到iPhone?

    安装OpenSSH

    • 首先,需要在iPhone上通过Cydia安装OpenSSH工具,通过添加软件源apt.saurik.com进行安装。
    • 安装完成之后,可以通过查看OpenSSH下的【DESCRIPTION】来查看使用步骤。

    使用OpenSSH远程登录iPhone

    • SSH是通过TCP协议通信,所以要确保Mac和iPhone在同一局域网下

    • 具体连接步骤:

      • 在Mac终端输入ssh 账户名@服务器主机地址
      ssh root@192.168.199.105
      
      • 如果是第一次登录,会弹出权限验证,输入yes即可
      • 然后会让你输入密码,OpenSSH的默认密码是:alpine
      • 输入完密码就登录到了iPhone上。
      • 如果要退出登录,输入exit即可
    • 在iPhone上有两种用户,root和mobile

      • root是最高权限账户,$HOME是/var/root
      • mobile是普通权限账户,只能操作一些普通文件,不能操作系统级别的文件,$HOME是/var/mobile,mobile用户登录方式同root账户
      • 登录root和mobile账户之后,可以通过以下命令来修改root账户和mobile账户的登录密码。
      passwd
      passwd mobile
      

    SSL、OpenSSL

    SSL

    • Secure Sockets Layer的缩写,是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密

    OpenSSL

    • 是SSL的开源实现
    • 现在大部分的Https请求其实就是等价于:Http+OpenSSL
    • 我们之前使用的OpenSSH加密其实就是通过OpenSSL来来实现的。

    SSH的通讯过程

    SSH的通信过程主要分为3个阶段

    建立安全连接

    • 在建立安全连接的过程中,服务器会提供自己的身份证明.
    • 如果客户端并无服务器端的公钥信息,就会询问是否连接此服务器.
    • 如果确认连接,则客户端会将服务器的公钥信息存放到~/.ssh/known_hosts中
    • 如果服务器的ip地址发生改变,可以通过删除~/.ssh/known_hosts中已经存在的公钥信息,然后重新访问即可。
    • 除了手动删除公钥信息的方式,还可以使用如下命令来删除
    ssh-keygen -R 服务器ip地址
    

    客户端认证

    ssh2提供两种账号认证方式

    基于密码的客户端验证

    基于秘钥的客户端验证(免密码登录)

    • 通过以下命令在客户端生成一对相关联的密钥(Key Pair):一个公钥(Public Key),一个私钥(Private Key),
    ssh-keygen
    

    此时~/.ssh文件夹下会多出两个文件id_rsa、id_rsa.pub

    • 把客户端的公钥内容追加到服务器的授权文件(~/.ssh/authorized_keys)尾部
    ssh-copy-id root@服务器主机地址
    
    • 也可以手动将公钥追加到服务器的授权文件中

      • 复制客户端的公钥到服务器某路径
      scp ~/.ssh/id_rsa.pub root@服务器主机地址:~
      
      • SSH登录服务器
      ssh root@服务器主机地址
      
      • 在服务器创建.ssh文件夹
      mkdir .ssh
      
      • 追加公钥内容到授权文件尾部
      cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
      
      • 删除公钥
      rm ~/id_rsa.pub
      

    如果设置了免密码登录之后,还是需要输入密码。那么就需要在服务器端设置文件权限,使用如下命令:

    chmod 755 ~
    chmod 755 ~/.ssh
    chmod 644 ~/.ssh/authorized_keys
    

    数据传输

    通过USB进行SSH登录

    22端口

    • 端口就是设备对外提供服务的窗口,每个端口都有个端口号(范围是0~65535,共2^16个)
    • 有些端口号是保留的,已经规定了用途
    • iPhone默认是使用22端口进行SSH通信,采用的是TCP协议

    通过USB进行SSH登录

    • 默认情况下,由于SSH走的是TCP协议,Mac是使用SSH通过网络连接的方式登录到iPhone,要求iPhone连接WiFi
    • 为了加快传输速度,也可以通过USB连接的方式进行SSH登录。
    • Mac上有个服务程序usbmuxd(它会开机自动启动),可以将Mac的数据通过USB传输到iPhone,程序在如下地址:
    /System/Library/PrivateFrameworks/MobileDevice.framework/Resources/usbmuxd
    

    使用usbmuxd工具来进行端口映射

    • 通过以下地址下载usbmuxd工具包(下载v1.0.8版本,主要用到里面的两个python脚本:tcprelay.py和usbmux.py) 点击下载

    这两个python脚本在python3下运行会失败,需要在python2版本运行

    • 通过以下命令,将iPhone的22端口(SSH端口)映射到Mac本地的10088端口

    这里的10088端口可以自己随意定义,只要不使用保留的端口号就行。

    cd ~/Documents/usbmuxd-1.0.8/python-client
    python tcprelay.py -t 22:10088
    
    

    这里加上-t是为了同时支持多个ssh连接。注意:要想保持端口映射状态,不能终止此命令行(如果要执行其他终端命令行,请新开一个终端界面)

    • 端口映射完毕后,以后如果想跟iPhone的22端口通信,直接跟Mac本地的10088端口通信就可以了
    • 新开一个终端界面,使用如下命令SSH登录到Mac本地的10088
    ssh root@localhost -p 10088
    

    usbmuxd会将Mac本地10088端口的TCP协议数据,通过USB连接转发到iPhone的22端口

    • 远程拷贝文件也可以直接跟Mac本地的10010端口通信
    #将Mac上的~/Desktop/1.txt文件,拷贝到iPhone上的~/test路径
    scp -P 10088 ~/Desktop/1.txt root@localhost:~/test
    

    使用itnl工具来进行端口映射

    • 首先下载itnl工具
    • cd到itnl工具所在目录
    • 执行命令
    ./itnl --lport 22 --lport 10088
    

    如果出现permission deny,则使用chmod 755 itnl为itnl增加执行权限

    • 不要关闭当前窗口,新开一个终端窗口,使用如下命令登录到mac的10088端口
    ssh root@localhost -p 10088
    

    iOS终端的中文乱码问题

    默认情况下,终端不支持显示中文,解决方案:新建一个~/.inputrc文件,文件内容是:

    #不将中文字符转化为转义序列
    set convert-meta off 
    
    #允许向终端输出中文
    set output-meta on
    
    #允许向终端输入中文
    set meta-flag on 
    set input-meta on
    

    如果是想在终端编辑文件内容,可以通过Cydia安装一个Vi IMproved(软件源http://apt.saurik.com

    欢迎加入iOS开发交流学习群(密码123),我们一起共同学习,共同成长

    收录:原文地址

    相关文章

      网友评论

        本文标题:iOS逆向学习之二(Mac远程操控iPhone)

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