iOS逆向之OpenSSH登录iPhone

前言

上篇文章介绍了iOS逆向中常用的一些软件,其中就介绍了OpenSSH可以帮助我们在Mac或windows上以SSH的方式安全登录iPhone设备

OpenSSH介绍

说到OpenSSH需要先介绍SSH。SSH(Secure Shell)是建立在应用层基础上的安全协议。用于计算机之间的加密登录,可以在不安全的网络中为网络服务器提供安全的传输环境。SSH最初是UNIX系统上的程序,后来迅速扩展到其他操作系统平台。OpenSSH是对SSH协议的开源实现。笔者系统时iOS13.5,在Cydia中搜索并安装OpenSSH即可。

SSH协议一共2个版本SSH-1、SSH-2
现在用的比较多的是SSH-2,客户端和服务端版本要保持一致才能通信
查看SSH版本(查看配置文件的Protocol字段)
客户端:/etc/ssh/ssh_config
服务端:/etc/ssh/sshd_config

SSH是通过TCP协议通信,所以要确保Mac和iPhone在同一局域网下,比如连接着同一个WiFi。使用SSH登录成功后就可以使用终端命令行操作iPhone。使用exit命令退出登录。下面先来介绍下如何通过SSH登录iPhone。

SSH登录iPhone

1.iOS下有2个常用账户:root、mobile。root是最高权限账户可以操作任意文件;mobile是普通权限账户,只能操作一些普通文件,不能操作系统级别的文件。root下,$HOME指向/var/root。mobile下,$HOME指向/var/mobile。App Store下载的App存放在/var/mobile/containers/Bundle/Appication目录下,就是以mobile身份运行的。root和mobile用户的初始登录密码都是alpine。

# 登录root用户
$ ssh root@iPhone的IP地址 
# 登录mobile用户
$ ssh mobile@iPhone的IP地址 

通过WIFI登录

1.确保iPhone 和 电脑在同一个WIFI网络下
2.在【设置】的网络中找到iPhone的IP地址(例如192.168.111.11)
3.macOS终端使用命令行连接iPhone

$ ssh [email protected]

4.按【Enter】键然后输入密码(默认为"alpine")输入后按下【Enter】键顺利登录(注意这里输入密码后是无任何显示的)

免密登录

频繁的登录越狱设备时每次都要输入密码可能会有些让人烦,所以我们可以通过上传公钥来免密登录(让人联想到git以ssh方式访问代码仓库)。
1.生成密钥对(和git生成ssh密钥对的方式一样的,只是git需要email地址)

$ ssh-keygen -t rsa

2.将公钥上传到iPhone(把mac上的id_rsa.pub拷贝到iPhone的/var/root/.ssh/authorized_keys下)以下命令会自动将mac上的id_rsa.pub追加到iOS越狱设备的授权文件authorized_keys尾部。因为该操作是在越狱设备的~文件夹下,所以该操作仅仅解决了root账户的免密登录问题,不会影响mobile的登录。

# 该操作需要输入root的登录密码
$ scp ~/.ssh/id_rsa.pub [email protected]:/var/root/.ssh/authorized_keys

如果iOS设备上不存在/var/root/.ssh/目录,则需要先登录设备创建目录:

$ ssh [email protected]
$ cd /var/root/
$ mkdir .ssh

通过USB登录

通过WIFI的方式连接设备严重依赖网络流畅度,尤其动态调试设备程序的时候会很卡顿。所以建议使用USB的方式连接iOS设备。
注意:确保iOS设备已经和macOS通过USB数据线建立连接
1.下载usbmuxd工具包(下载v1.0.8版本,主要用到里面的一个python脚本:tcprelay.py)

2.端口映射(把mac的2222端口映射到iPhone的22端口)

cd ~/Documents/usbmuxd-1.0.8/python-client
chomd 777 tcprelay.py
sudo python tcprelay.py -t 22:2222

3.远程登录iOS设备密码是"alpine"

ssh root@localhost -p 2222

如下图:
第一次登录时,输入上面的登录命令后,系统会交换RSA密钥,会询问Are sure you want to continue connecting (yes/no[fingerpring])? 这里请输入yes


第一次登录

第二次登录时,直接输入root密码(默认是alpine)即可。


第二次登录

4.至此,已经通过USB登录了iOS设备

修改默认密码

越狱后iOS设备就拥有了最高权限,但root默认密码(“alpine”)是众所周知的,如果开启了SSH而不修改默认密码,一旦iOS越狱设备暴露在网络中就很容易被入侵,所以需要修改密码。如下分别是修改root用户和mobile用户默认密码的命令:

# 修改root用户的默认密码
iPhone: ~ root# passwd

# 修改mobile用户的默认密码
iPhone: ~ mobile# passwd mobile
image.png

使用scp传输文件

配置好OpenSSH后,可以使用scp(secure copy)工具在iOS设备和计算机之间互相传输文件。macOS自带了scp。

将Mac上的/Desktop/1.txt文件,拷贝到iPhone上的/test路径

scp -P 2222 ~/Desktop/1.txt root@localhost:~/test

参考

《iOS应用逆向与安全之道》

你可能感兴趣的:(iOS逆向之OpenSSH登录iPhone)