美文网首页逆向工程
iOS逆向:Mac远程登录iPhone

iOS逆向:Mac远程登录iPhone

作者: 码小菜 | 来源:发表于2020-06-06 22:26 被阅读0次

    目录
    一,为何远程登录
    二,用OpenSSH实现远程登录
    三,SSH的通信过程
    四,通过USB进行登录
    五,其他知识

    一,为何远程登录

    1,我们经常在Mac的终端上,通过敲一些命令来完成一些操作

    2,iOSMac OS X都是基于Darwin(苹果公司一个基于Unix的开源系统内核),所以iOS同样支持终端的命令操作

    3,在逆向工程中,我们经常会通过命令来操作iPhone

    4,为了让Mac终端上的命令能作用在iPhone上,需要先让MaciPhone建立连接

    5,通过Mac远程登录到iPhone的方式建立连接

    二,用OpenSSH实现远程登录

    1,SSH和OpenSSH
    • SSH

    1>Secure Shell(安全外壳协议)的缩写,是一种为远程登录提供安全保障的协议
    2>它会把所有传输的数据都进行加密,以防止“中间人”攻击

    • OpenSSH

    1>是SSH的开源实现
    2>通过它可以实现Mac远程登录到iPhone
    3>在iPhone上通过Cydia安装该工具(软件源:http://apt.saurik.com

    2,登录步骤
    • MaciPhone连接同一个WiFi

    • Mac终端输入:ssh 账户名@服务器地址(这里的服务器是手机)

    • 输入初始密码:alpine

    • 登录成功:使用终端命令来操作iPhone

    • 退出登录:exit

    3,常用账户
    • root

    1>最高权限账户,$HOME是/var/root
    2>初始密码:alpine
    3>修改密码:passwd

    • mobile

    1>普通权限账户(只能操作普通文件,不能操作系统文件),$HOME是/var/mobile
    2>初始密码:alpine
    3>修改密码:passwd

    4,SSL和SSH
    • SSL

    1>Secure Sockets Layer(安全套接字协议)的缩写,是一种为网络通信提供安全及数据完整性的协议
    2>OpenSSLSSL的开源实现
    3>HTTPS = HTTP + OpenSSL

    • SSH

    1>Secure Shell(安全外壳协议)的缩写,是一种为远程登录提供安全保障的协议
    2>OpenSSHSSH的开源实现
    3>OpenSSH是基于OpenSSL实现的

    5,SSH的版本
    • 有两个版本:SSH-1SSH-2(常用)

    • 客户端和服务端版本要保持一致才能通信

    • 查看版本:/etc/ssh/ssh_config(客户端),/etc/ssh/sshd_config(服务端)

    三,SSH的通信过程

    1,三个阶段
    • 建立安全连接

    • 客户端认证

    • 数据传输

    2,建立安全连接
    • 当客户端向服务端发起连接时,服务端会将公钥信息(身份证明)发送给客户端
    • 如果客户端没有服务端的公钥信息,就会询问是否连接此服务器,输入yes后,公钥信息就会保存到客户端的known_hosts文件中
    • 如果客户端有服务端的公钥信息,就不会再询问了
    • 如果服务端身份发生了变更,客户端发起连接时就会报错,因为新的公钥信息和客户端保存的对不上,只需将客户端保存的公钥信息删除即可
    3,客户端认证
    • 密码认证:每次都需要输入密码
    • 密钥认证:只需认证一次,比密码更安全

    1>生成客户端的公钥和私钥:输入ssh-keygen,然后一直敲回车即可

    2>将客户端的公钥信息复制到服务端的authorized_keys文件中:ssh-copy-id 账户名@服务器地址

    3>服务端认证后,以后就可以免密登录了

    4>如果还是需要输入密码,在服务端设置一下文件权限即可

    四,通过USB进行登录

    1,端口
    • 端口就是设备对外提供服务的窗口,每台设备都有2^16个端口,每个端口都有一个编号(0 ~ 65535)

    • 有些端口是保留的,已经规定了用途

    1>21端口提供FTP服务
    2>80端口提供HTTP服务
    3>22端口提供SSH服务
    4>更多保留端口:https://baike.baidu.com/item/%E7%AB%AF%E5%8F%A3

    • 由于10010端口不是保留的,所以我们可以使用
    2,SSH默认是通过网络进行登录的,要求客户端和服务端连接同一个WiFi
    3,为了加快传输速度,也可以通过USB进行登录
    • python脚本将服务端的22端口映射到客户端的10010端口:python tcprelay.py -t 22:10010
    • 新开一个终端窗口,用SSH登录到客户端本地的10010端口:ssh root@localhost -p 10010
    • Mac上的服务程序usbmuxd会将本地10010端口的数据,通过USB转发到iPhone的22端口: /System/Library/PrivateFrameworks/MobileDevice.framework/Resources/usbmuxd
    • 以后如果想跟服务端的22端口通信,直接跟客户端本地的10010端口通信就可以了

    五,其他知识

    1,我们可以将经常执行的一些命令放到sh脚本文件中,以后直接执行脚本文件即可,这样比较简单快捷

    • 创建脚本文件

    映射脚本
    1>打开终端,输入:vim usbmuxd.sh
    2>敲i,输入:python ~/Downloads/usbmuxd-1.0.8/python-client/tcprelay.py -t 22:10010
    3>敲esc,输入::wq

    登录脚本
    1>打开终端,输入:vim login.sh
    2>敲i,输入:ssh root@localhost -p 10010
    3>敲esc,输入::wq

    • 执行脚本文件

    1>先执行映射脚本:sh usbmuxd.sh

    2>再在新窗口中执行登录脚本:sh login.sh

    2,iPhone上默认是不支持vim命令的,需要通过Cydia安装一个vim工具(软件源:http://apt.saurik.com

    • 安装前
    • 安装后
    本文章仅供学习交流,如有侵权,请联系删除,谢谢!

    相关文章

      网友评论

        本文标题:iOS逆向:Mac远程登录iPhone

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