美文网首页逆向开发
iOS逆向工程(二):Mac远程登录iPhone

iOS逆向工程(二):Mac远程登录iPhone

作者: 冰雨9527 | 来源:发表于2020-10-16 16:33 被阅读0次

    Mac远程登录iPhone

    一、如何远程登录iPhone呢?
      1. 在逆向的过程中,我们经常需要用命令行来操纵iPhone,所以我们需要Mac与iPhone之间建立连接。
      1. 为了保证Mac和iPhone之间连接的安全,我们用到了SSHSSH全称是Secure Shell,意思是”安全外壳协议“,这是一种为远程登录提供安全保障的协议。
      1. 使用SSH,可以把所有传输的数据进行加密,可以防止DNS欺骗和IP欺骗,相当于为我们的传输套上了一层外壳,保障我们的数据传输安全,如下图所示


        SSH为传输套了一层壳,保障传输安全
      1. SSH只是一种协议,我们并不能直接用,想用的话,得用OpenSSH工具,OpenSSH是基于SSH协议的免费开源实现,我们可以通过在手机上安装OpenSSH工具,来用Mac远程登录到iPhone上
      1. 在越狱手机的Cydia应用中,搜索OpenSSH,就可以下载安装了
    二、如何使用OpenSSH
      1. 保证Mac和iPhone连着同一个WiFi(因为SSH是通过TCP协议通讯的,所以要Mac和iPhone在同一个局域网下)
      1. 保证手机上安装好了OpenSSH工具(在越狱手机的Cydia应用中,搜索OpenSSH就可以下载安装了)
      1. 在Mac的终端里,输入ssh 账户名@服务器IP地址,就可以登录了,如下图所示,登录成功后,就可以使用命令操纵iPhone了。(这里的服务器就是指手机)
        ssh root@手机IP地址
      1. 要注意的几个问题:
      • (1). iOS下有两个默认账户:root和mobile,root是最高权限用户,mobile是普通权限用户,一般我们使用root账户,两个账户的默认密码都是alpine

      • (2). 第一次登录的时候,会让你保存公钥,输入yes保存即可

      • (3). 默认密码是alpine,我们也可以通过passwd命令,修改密码,如下所示,在root账户下,输入passwd和新密码,就修改了root账户的密码了。

        在root账户下,修改密码
      • (4). 退出命令是exit,登录到iPhone后,想退出登录就可用exit命令

      • (5). 手机的IP地址,可以在设置->无线局域网->点击已连WiFI的后面的感叹号->IP地址中查看

    三、使用SSH密钥登录,就可以免密码登录啦
      1. SSH的登录方式分为:基于密码的客户端认证(就是使用账号密码登录)、基于密钥的客户端认证(就是使用密钥登录,不需要账号密码,最安全的一种方式)
      1. 密钥登录,其实就是在客户端的~/.ssh目录生成一个公钥和私钥,然后把客户端的公钥追加到服务器端~/.ssh/authorized_keys文件的最后就可以了,如下图所示
      1. 在Mac的终端依次输入以下三条命令,就可以免密码登录了
    cd ~/.ssh          首先cd到.ssh目录下
    ssh-keygen         然后用这条命令,一路敲回车,就可以自动生成RSA的公钥和私钥
    ssh-copy-id root@服务器IP地址  最后将客户端的公钥追加到~/.ssh/authorized_keys文件最后就可以了
    
      1. 如果配置了免密码登录,还是需要输入密码,可能是服务器端文件权限的问题,依次输入以下命令,设置文件权限即可
    chmod 755 ~
    chmod 755 ~/.ssh
    chmod 644 ~/.ssh/authorized_keys
    
    四、为了加快传输速度,也可以用USB的方式登录到iPhone
      1. SSH的数据传输方式有两种,一种是WiFi传输,另一种是USB传输。默认走的时候TCP协议,也就是WiFi传输数据,为了加快传输速度,我们可以使用USB的方式来传输。
      1. iPhone默认是使用22端口进行SSH通讯,以前我们都是使用WiFi把数据传输到iPhone22端口的。
      1. Mac上有个服务程序usbmuxd(它会开机自启动的),用它可以将Mac的数据通过USB传输到iPhone,如下图所示:


      1. USB登录的整个流程是这样的:
    • (1). 将Mac的10010端口与iPhone的22端口绑定,这一步,需要用到一个Python脚本,下载地址在这里,下载好以后,使用下面的命令。(想要保持端口映射状态,不能关闭此命令行,想要执行其他命令,需要重新开一个命令行,快捷键Command+T)
    cd 下载好的文件目录/usbmuxd-1.0.8/python-client 
    python tcprelay.py -t 22:10010
    
    • (2). 端口映射完毕后,想要跟iPhone的22端口通讯,就直接跟Mac本地的10010端口通信就可以了,新开一个命令行后,SSH登录到Mac本地的10010端口,命令如下
    ssh -p 10010 root@localhost
    
      1. 如果想要远程拷贝文件,可以用scp -P 本地端口号 本地文件路径 root@localhost:服务器文件地址命令,例如:scp -P 10010 ~/Desktop/1.txt root@localhost:~/TXT,注意scp的端口号参数是大写的P
    五、用Shell脚本,将常用命令脚本化
      1. 使用SSH的USB方式登录手机时,每次都要输入以下相同的命令,非常麻烦
    cd 下载好的文件目录/usbmuxd-1.0.8/python-client 
    python tcprelay.py -t 22:10010 
    新开一个命令行窗口,输入下面的命令
    ssh -p 10010 root@localhost
    
      1. 我们可以将上述命令写到两个Shell脚本中,例如写到usb.sh和login.sh脚本中,以后每次调用Shell脚本就可以了,如下所示,是不是非常方便呢
    sh usb.sh
    新开一个命令行
    sh login.sh
    
      1. usb.sh脚本的编写方式如下:
    1.打开命令行
    2.vim usb.sh
    3.按i进入插入模式,将下面两条命令,复制进去
    cd 下载好的文件目录/usbmuxd-1.0.8/python-client 
    python tcprelay.py -t 22:10010 
    4.按esc,输入:wq,保存并退出
    
      1. login.sh脚本的编写方式如下:
    1.新开一个命令行
    2.vim login.sh
    3.按i进入插入模式,将下面的命令,复制进去
    ssh -p 10010 root@localhost
    4.按esc,输入:wq,保存并退出
    
      1. 以后每次需要以USB的方式SSH到iPhone,就可以使用usb.sh和login.sh脚本了,命令都不用记忆了,非常方便

    ❌,
    
    登录是出现如下提示:
    
    ssh root@192.168.***.**
    
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    
    @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
    
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    
    It is also possible that the RSA host key has just been changed.
    
    The fingerprint for the RSA key sent by the remote host is
    
    76:fb:b3:70:14:48:19:d6:29:f9:ba:42:46:be:fb:77.
    
    Please contact your system administrator.
    
    Add correct host key in /home/fante/.ssh/known_hosts to get rid of this
    
    message.
    
    Offending key in /home/fante/.ssh/known_hosts:68
    
    RSA host key for 192.168.***.** has changed and you have requested strict checking.
    
    Host key verification failed.
    
    server端密码或是其他发生改变的时候。
    

    解决方法->一般就需要删除~/.ssh/known_hosts的东西,然后再登录即可。

    ❌,错误提示信息`Failure: Address already in use `
    (背景:启动项目,发现地址已经被使用)
    

    1.查看端口被哪个程序占用
    sudo lsof -i tcp:port
    如: sudo lsof -i tcp:端口号
    2.看到进程的PID,可以将进程杀死。
    kill PID(此处是pid号)
    如:kill 30118

    ❌,没安OpenSSH会报
    gndeMacBook-Pro:.ssh gn$ ssh -p 10010 root@127.0.0.1
    kex_exchange_identification: read: Connection reset by peer
    

    解决方法->手机端安装OpenSSH

    ❌,越狱掉了会报
    gndeMacBook-Pro:.ssh gn$ ssh -p 10010 root@127.0.0.1
    `kex_exchange_identification: Connection closed by remote host`
    解决方法->[重新越狱](https://www.i4.cn/news_detail_37413.html)
    

    相关文章

      网友评论

        本文标题:iOS逆向工程(二):Mac远程登录iPhone

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