iOS逆向之OpenSSH登錄iPhone

前言

上篇文章介紹了iOS逆向中常用的一些軟件,其中就介紹了OpenSSH可以幫助我們?cè)贛ac或windows上以SSH的方式安全登錄iPhone設(shè)備

OpenSSH介紹

說到OpenSSH需要先介紹SSH。SSH(Secure Shell)是建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議。用于計(jì)算機(jī)之間的加密登錄,可以在不安全的網(wǎng)絡(luò)中為網(wǎng)絡(luò)服務(wù)器提供安全的傳輸環(huán)境。SSH最初是UNIX系統(tǒng)上的程序,后來迅速擴(kuò)展到其他操作系統(tǒng)平臺(tái)。OpenSSH是對(duì)SSH協(xié)議的開源實(shí)現(xiàn)。筆者系統(tǒng)時(shí)iOS13.5,在Cydia中搜索并安裝OpenSSH即可。

SSH協(xié)議一共2個(gè)版本SSH-1、SSH-2
現(xiàn)在用的比較多的是SSH-2,客戶端和服務(wù)端版本要保持一致才能通信
查看SSH版本(查看配置文件的Protocol字段)
客戶端:/etc/ssh/ssh_config
服務(wù)端:/etc/ssh/sshd_config

SSH是通過TCP協(xié)議通信,所以要確保Mac和iPhone在同一局域網(wǎng)下,比如連接著同一個(gè)WiFi。使用SSH登錄成功后就可以使用終端命令行操作iPhone。使用exit命令退出登錄。下面先來介紹下如何通過SSH登錄iPhone。

SSH登錄iPhone

1.iOS下有2個(gè)常用賬戶:root、mobile。root是最高權(quán)限賬戶可以操作任意文件;mobile是普通權(quán)限賬戶,只能操作一些普通文件,不能操作系統(tǒng)級(jí)別的文件。root下,$HOME指向/var/root。mobile下,$HOME指向/var/mobile。App Store下載的App存放在/var/mobile/containers/Bundle/Appication目錄下,就是以mobile身份運(yùn)行的。root和mobile用戶的初始登錄密碼都是alpine。

# 登錄root用戶
$ ssh root@iPhone的IP地址 
# 登錄mobile用戶
$ ssh mobile@iPhone的IP地址 

通過WIFI登錄

1.確保iPhone 和 電腦在同一個(gè)WIFI網(wǎng)絡(luò)下
2.在【設(shè)置】的網(wǎng)絡(luò)中找到iPhone的IP地址(例如192.168.111.11)
3.macOS終端使用命令行連接iPhone

$ ssh root@192.168.111.11

4.按【Enter】鍵然后輸入密碼(默認(rèn)為"alpine")輸入后按下【Enter】鍵順利登錄(注意這里輸入密碼后是無任何顯示的)

免密登錄

頻繁的登錄越獄設(shè)備時(shí)每次都要輸入密碼可能會(huì)有些讓人煩,所以我們可以通過上傳公鑰來免密登錄(讓人聯(lián)想到git以ssh方式訪問代碼倉庫)。
1.生成密鑰對(duì)(和git生成ssh密鑰對(duì)的方式一樣的,只是git需要email地址)

$ ssh-keygen -t rsa

2.將公鑰上傳到iPhone(把mac上的id_rsa.pub拷貝到iPhone的/var/root/.ssh/authorized_keys下)以下命令會(huì)自動(dòng)將mac上的id_rsa.pub追加到iOS越獄設(shè)備的授權(quán)文件authorized_keys尾部。因?yàn)樵摬僮魇窃谠姜z設(shè)備的~文件夾下,所以該操作僅僅解決了root賬戶的免密登錄問題,不會(huì)影響mobile的登錄。

# 該操作需要輸入root的登錄密碼
$ scp ~/.ssh/id_rsa.pub root@192.169.111.11:/var/root/.ssh/authorized_keys

如果iOS設(shè)備上不存在/var/root/.ssh/目錄,則需要先登錄設(shè)備創(chuàng)建目錄:

$ ssh root@192.168.111.11
$ cd /var/root/
$ mkdir .ssh

通過USB登錄

通過WIFI的方式連接設(shè)備嚴(yán)重依賴網(wǎng)絡(luò)流暢度,尤其動(dòng)態(tài)調(diào)試設(shè)備程序的時(shí)候會(huì)很卡頓。所以建議使用USB的方式連接iOS設(shè)備。
注意:確保iOS設(shè)備已經(jīng)和macOS通過USB數(shù)據(jù)線建立連接
1.下載usbmuxd工具包(下載v1.0.8版本,主要用到里面的一個(gè)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.遠(yuǎn)程登錄iOS設(shè)備密碼是"alpine"

ssh root@localhost -p 2222

如下圖:
第一次登錄時(shí),輸入上面的登錄命令后,系統(tǒng)會(huì)交換RSA密鑰,會(huì)詢問Are sure you want to continue connecting (yes/no[fingerpring])? 這里請(qǐng)輸入yes


第一次登錄

第二次登錄時(shí),直接輸入root密碼(默認(rèn)是alpine)即可。


第二次登錄

4.至此,已經(jīng)通過USB登錄了iOS設(shè)備

修改默認(rèn)密碼

越獄后iOS設(shè)備就擁有了最高權(quán)限,但root默認(rèn)密碼(“alpine”)是眾所周知的,如果開啟了SSH而不修改默認(rèn)密碼,一旦iOS越獄設(shè)備暴露在網(wǎng)絡(luò)中就很容易被入侵,所以需要修改密碼。如下分別是修改root用戶和mobile用戶默認(rèn)密碼的命令:

# 修改root用戶的默認(rèn)密碼
iPhone: ~ root# passwd

# 修改mobile用戶的默認(rèn)密碼
iPhone: ~ mobile# passwd mobile
image.png

使用scp傳輸文件

配置好OpenSSH后,可以使用scp(secure copy)工具在iOS設(shè)備和計(jì)算機(jī)之間互相傳輸文件。macOS自帶了scp。

將Mac上的/Desktop/1.txt文件,拷貝到iPhone上的/test路徑

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

參考

《iOS應(yīng)用逆向與安全之道》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容