iOS逆向:Mac远程登录iPhone

目录
一,为何远程登录
二,用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进行登录
  • 下载usbmuxd工具包:https://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz
  • 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)