iOS逆向工程 -- 逆向环境搭建(使用OpenSSH远程登录)
SSH、OpenSSH
SSH是Secure Shell的缩写,意为"安全外壳协议",是一种可以远程登录提供安全保障的协议,使用SSH,可以把所有传输的数据进行加密,"中间人"攻击方式就不可能实现,防止DNS欺骗和IP欺骗.
image.png
OpenSSH是SSH协议的免费开源的实现,可以通过OpenSSH的方式让Mac远程登录到iPhone
通过wifi远程登录
- 在iPhone上通过Cydia安装OpenSSH工具(软件源http://apt.saurik.com)
image.png -
OpenSSH的具体使用步骤可以查看Description中的描述
image.png
SSH是通过TCP协议通信,所以要确保Mac和iPhone在同一局域网下,比如连接着同一个WiFi
在Mac的终端输入ssh 账户名@服务器主机地址
比如ssh root@10.1.1.168(这里的服务器是手机)
初始密码alpine
登录成功后就可以使用终端命令行操作iPhone
退出登录命令是exit
image.png
这里已经显示登录进入手机了
通过USB进行SSH登录
-
默认情况下,由于SSH走的是TCP协议,Mac是通过网络连接的方式SSH登录到iPhone,要求iPhone连接WiFi
image.png -
为了加快传输速度,也可以通过USB连接的方式进行SSH登录
Mac上有个服务程序usbmuxd(它会开机自动启动),可以将Mac的数据通过USB传输到iPhone
/System/Library/PrivateFrameworks/MobileDevice.framework/Resources/usbmuxd
image.png
usbmuxd的使用1
下载usbmuxd工具包(下载v1.0.8版本,主要用到里面的一个python脚本:tcprelay.py)
https://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz
将iPhone的22端口(SSH端口)映射到Mac本地的10010端口
cd /Users/bobzhou/Desktop/usbmuxd-1.0.8/python-client (文件路径)
python tcprelay.py -t 22:10010
加上-t参数是为了能够同时支持多个SSH连接
!!!注意:要想保持端口映射状态,不能终止此命令行(如果要执行其他终端命令行,请新开一个终端界面),不一定非要10010端口,只要不是保留端口就行
端口映射完毕后,以后如果想跟iPhone的22端口通信,直接跟Mac本地的10010端口通信就可以了
新开一个终端界面,SSH登录到Mac本地的10010端口(以下方式2选1)
ssh root@localhost -p 10010
ssh root@127.0.0.1 -p 10010
localhost是一个域名,指向的IP地址是127.0.0.1,本机虚拟网卡的IP地址
usbmuxd会将Mac本地10010端口的TCP协议数据,通过USB连接转发到iPhone的22端口