iOS逆向02 -- SSH與SSL

Mac遠程登錄iPhone

  • 我們經(jīng)常在Mac終端上菱父,通過敲一些命令來完成一些操作甚纲;
  • iOS和Mac OS X都是基于Darwin(蘋果的一個基于Unix的開源系統(tǒng)內(nèi)核)商膊,所以iOS中同樣支持終端命令操作售睹;
  • 在逆向工程中尊残,我們經(jīng)常會通過命令行來操縱iPhone绍些;
  • 為了能夠讓Mac終端命令能作用在iPhone上,我們需要讓Mac和iPhone之間建立連接柬批;- - 通過Mac遠程登錄到iPhone的方式建立連接啸澡;

SSH與OpenSSH

  • SSH是Secure Shell的縮寫,意為"安全外殼協(xié)議"萝快,是一種可以為遠程登錄提供安全保障的協(xié)議锻霎;
  • 使用SSH,可以把所有傳輸?shù)臄?shù)據(jù)進行加密揪漩,"中間人"攻擊方式就不可能實現(xiàn)旋恼,能防止DNS欺騙和IP欺騙;
  • OpenSSH是SHH協(xié)議的免費開源實現(xiàn)奄容,可以通過OpenSSH的方式讓Mac遠程登錄到iPhone冰更;

使用OpenSSH遠程登錄

  • 在iPhone上通過Cydia安裝OpenSSH工具(軟件源:http://apt/saurik.com)
  • OpenSSH的具體使用步驟可以查看Description中的描述;
  • SSH是通過TCP協(xié)議通信昂勒,所以要確保Mac和iPhone在同一局域網(wǎng)下蜀细,比如連接者同一個Wi-Fi;
  • 登錄iPhone的root賬戶:在Mac終端輸入ssh root@服務(wù)器主機地址
  • 例如ssh root@10.1.1.168(這里的服務(wù)器是手機) 初始密碼為:alpine
Snip20210607_80.png
  • 登錄成功后可以使用終端命令來操作iPhone戈盈;

終端中輸入以下命令奠衔,查看文件系統(tǒng)與Mac上的iFunBox查看的文件系統(tǒng)進行比較如下所示:

Snip20210607_81.png
Snip20210607_82.png
  • 發(fā)現(xiàn)文件系統(tǒng)是相同的,說明我們通過OpenSSH塘娶,讓Mac成功登錄到iPhone归斤,兩者之間建立了連接。
  • exit 是退出登錄刁岸,操作結(jié)果如下:
Snip20210607_83.png

root 和 mobile賬戶

  • iOS下有兩個常用賬戶:root和mobile
  • root賬戶:最高權(quán)限賬戶脏里,$HOME是/var/root
  • 登錄root賬戶:ssh root@服務(wù)器主機地址
  • mobile賬戶:普通權(quán)限賬戶,只能操作一些普通文件虹曙,不能操作系統(tǒng)級別的文件迫横,$HOME是/var/mobile
  • 登錄mobile賬戶:ssh mobile@服務(wù)器主機地址
  • root和mobile賬戶的初始登錄密碼都是alpine
  • 最好修改一下root和mobile用戶的登錄密碼番舆,登錄root賬戶后,通過passwd修改矾踱;登錄mobile賬戶恨狈,通過passwd mobile修改;
Snip20210607_84.png
  • 可以看到root賬號級別的顯示#介返,mobile賬號級別的顯示$拴事;

SSL與OpenSSL

  • SSL是Secure Socket Layer的縮寫沃斤,是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議圣蝎,在傳輸層對網(wǎng)絡(luò)連接進行加密;
  • OpenSSL是SSL的開源實現(xiàn)衡瓶,絕大部份HTTPS網(wǎng)絡(luò)請求等價于:HTTP + OpenSSL
  • OpenSSH的加密就是通過OpenSSL完成的徘公;

SSH的版本

  • SSH協(xié)議一共有兩個版本,分別為SSH-1與SSH-2哮针;
  • 現(xiàn)在用的比較多的是SSH-2关面,客戶端與服務(wù)端版本要保持一致才能相互通信;

通過WI-FI進行SSH登錄

  • 必須保證Mac與iPhone在相同的網(wǎng)絡(luò)環(huán)境下十厢,即連接同一個WI-FI網(wǎng)絡(luò)


    SSH登錄.png

其SSH的通信過程可以分為3大階段:
第一步:建立安全連接

  • 在建立安全連接過程中等太,服務(wù)器會提供自己的身份證明;
  • 如果客戶端并無服務(wù)端的公鑰蛮放,就會詢問是否連接此服務(wù)器缩抡;
Snip20210607_85.png
SSH.png
  • ~/.ssh/known.hosts:是存儲服務(wù)端公鑰信息的文件;
  • 在Mac上~:表示主路徑相當于根路徑包颁,終端剛打開時的路徑瞻想,等價于/Users/用戶名
  • 在建立連接過程中,可能會遇到以下的錯誤信息:服務(wù)器的身份信息發(fā)生了變更娩嚼;如果確定要連接此服務(wù)器蘑险,刪除之前服務(wù)器的公鑰信息即可;或者直接打開known.hosts文件刪除服務(wù)器的公鑰信息岳悟;

第二步:客戶端認證
SSH-2提供了兩種常用的客戶端認證方式:
第一種:基于密碼的客戶端認證

  • 使用賬號和密碼即可認證

第二種:基于密鑰的客戶端認證

  • 免密碼認證佃迄,最安全的一種認證方式;
  • SSH-2默認會優(yōu)先嘗試密鑰認證贵少,如果認證失敗呵俏,才會嘗試密碼認證;
  • 基于密鑰的客戶端的認證原理如下:
ssh原理.png

第一種方案:

  • 在客戶端生成一對相關(guān)聯(lián)的密鑰:一個公鑰(Public Key)春瞬,一個私鑰(Private Key)
  • 終端命令為:ssh -keygen柴信,一路敲回車即可;
  • OpenSSH默認生成的是rsa密鑰宽气,可以通過-t參數(shù)指定密鑰的類型随常;
  • 生成的公鑰:~/.ssh/id_rsa.pub
  • 生成的私鑰:~/.ssh/id_rsa
  • 把客戶端的公鑰追加到服務(wù)端的授權(quán)文件(~/.ssh/authroized_keys)尾部潜沦,終端命令為:ssh copy id root@服務(wù)端主機地址,需要輸入root賬戶的登錄密碼绪氛;

第二種方案:

  • 一對密鑰的生成同上唆鸡;
  • 復(fù)制客戶端的公鑰到服務(wù)器的某路徑;終端命令為:scp ~/.ssh/id.rsa.pub root@服務(wù)器主機地址:~指定路徑
  • scp是Secure Copy的縮寫枣察,是基于SSH登錄進行安全的遠程文件拷貝命令争占,把一個文件copy到遠程另外一臺主機上;

上述兩種方案均可實現(xiàn)免密碼登錄序目。
可能會用到的終端命令:

  • 刪除公鑰:rm ~/.ssh/id_rsa.pub

第三步:數(shù)據(jù)傳輸

  • 現(xiàn)在我們來實現(xiàn)將越獄iPhone中的文件臂痕,拷貝到Mac電腦上;
  • 首先iPhone上的文件目標為:/tmp/fseventsd-uuid猿涨,如下所示:
Snip20210618_44.png
  • Mac終端環(huán)境執(zhí)行:scp root@172.20.10.2:/tmp/fseventsd-uuid ~/Desktop/握童,其中172.20.10.2是iPhone的主機地址,通過查看Wi-Fi網(wǎng)絡(luò)獲得叛赚;
Snip20210618_45.png
  • 執(zhí)行完成之后澡绩,查看Mac的桌面文件系統(tǒng),
Snip20210618_46.png
  • 實現(xiàn)了文件傳遞:iPhone --> Mac

通過USB進行SSH登錄

為了加快傳輸速度俺附,也可以通過USB連接的方式進行SSH登錄肥卡,在Mac上有個服務(wù)程序usbmuxd(它會開機自動啟動),可以將Mac的數(shù)據(jù)通過USB傳輸?shù)絠Phone事镣,其路徑如下:/System/Library/PrivateFrameworks/MobileDevice.framework/Resources/usbmuxd

Snip20210607_86.png

原理圖如下:

SSH_USB.png

端口

端口就是設(shè)備對外提供服務(wù)的窗口步鉴,每個端口都有一個端口號(范圍是0~65535,共2^16)

  • 21端口提供FTP服務(wù)
  • 80端口提供HTTP服務(wù)
  • 22端口提供SSH服務(wù)(查看命令:etc/ssh/sshd_config)
  • iPhone默認是使用22端口進行SSH通信蛮浑,采用的是TCP協(xié)議

usbmuxd的使用

Snip20210608_89.png
  • 終端命令,cd usbmuxb 文件路徑下蕴掏,執(zhí)行python tcprelay.py -t 22:10010障般,即將iPhone的22端口(SSH端口)映射到Mac本地的10010端口;
Snip20210608_90.png
  • 端口映射完畢后盛杰,以后如果想跟iPhone的22端口通信挽荡,直接跟Mac本地的10010端口通信就可以了;然后command+T 新建一個命令行窗口即供,SSH登錄到Mac本地的10010窗口定拟,命令行為:ssh root@localhost -p 10010,密碼為alpine
Snip20210608_91.png
  • usbmuxd會將Mac本地10010端口的TCP協(xié)議數(shù)據(jù)逗嫡,通過USB連接轉(zhuǎn)發(fā)到iPhone的22端口青自;
  • 遠程拷貝文件也可以直接跟Mac本地的10010端口通信株依,命令行如下:scp -P 10010 ~/.ssh/id_rsa root@localhost:~ 即將Mac端的id.rsa.pub公鑰文件拷貝到iPhone的主文件夾下;
    Mac端的id.rsa.pub公鑰文件延窜,如下所示:
Snip20210618_43.png
  • 終端執(zhí)行命令:scp -P 10010 ~/.ssh/id.rsa root@localhost:~恋腕,注意是在Mac的終端環(huán)境下執(zhí)行,如下所示:
Snip20210618_41.png
  • 打開iPhone的主文件夾逆瑞,如下所示:
Snip20210618_40.png
  • 實現(xiàn)了文件傳遞:Mac --> iPhone

sh腳本文件

我們可以將經(jīng)常執(zhí)行的一些列終端命令行放到sh腳本文件中(shell)荠藤,然后執(zhí)行腳本文件;制作腳本的相關(guān)命令如下:

  • 在當前主文件路徑下~ 執(zhí)行vim usb.sh:創(chuàng)建編輯usb.sh文件获高,進入編輯界面哈肖;
  • 按下i鍵,現(xiàn)在可以往usb.sh文件中添加內(nèi)容了谋减,添加內(nèi)容為:python /Users/liyanyan33/Desktop/usbmuxd/usbmuxd/tcprelay.py -t 22:10010
  • 按下Esc鍵退出牡彻,然后按下Shift + 冒號 組合鍵扫沼,最后輸入wq 回車出爹,保存退出文件編輯界面;
  • ls -l:可以預(yù)覽當前文件夾下的所有文件缎除,看是否有usb.sh文件
  • 如果有usb.sh文件严就,輸入cat usb.sh可查看文件中的內(nèi)容;

腳本文件的執(zhí)行命令有如下幾種:

  • sh usb.sh
  • bash usb.sh
  • source usb.sh
  • 可以按Ctrl + C 組合鍵退出當前的狀態(tài)
  • sh與bash腳本執(zhí)行命令會在當前shell環(huán)境啟動一個子進程來執(zhí)行腳本文件器罐,執(zhí)行后返回到父進程的shell環(huán)境梢为,執(zhí)行cd時,在子進程中會進入到cd的目錄轰坊,但是在父進程中環(huán)境并沒有改變铸董,也就是說目錄沒有改變;
  • source腳本命令是在當前的shell環(huán)境下執(zhí)行腳本文件肴沫;

上面進行端口映射粟害,創(chuàng)建了一個usb.sh腳本文件,下面SSH登錄到Mac本地的10010窗口颤芬,也創(chuàng)建一個login.sh腳本悲幅,其步驟與上面的相同,腳本內(nèi)容為ssh root@localhost -p 10010站蝠,以后的端口映射與登錄就直接執(zhí)行usb.shlogin.sh兩個腳本文件即可汰具;

  • 必須保證手機是越獄的狀態(tài),否則會出現(xiàn)SSH登陸報錯的情況菱魔,如下圖所示:
Snip20210623_25.png

iOS終端的中文亂碼問題

  • 默認情況下留荔,iOS終端不支持中文輸入和顯示的;
  • 解決方案:新建一個~/.inputrc文件澜倦,文件內(nèi)容為:
  • set convert-mea off:不將中文字符轉(zhuǎn)化為轉(zhuǎn)義字符
  • set output-mea on:允許向終端輸出中文
  • set mea-flag on:允許向終端輸入中文
  • set input-mea on:允許向終端輸入中文
  • 如果想在終端編輯文件內(nèi)容聚蝶,可以通過Cydia安裝一個vim(軟件源:http://apt.saurik.com)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載拔疚,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末既荚,一起剝皮案震驚了整個濱河市稚失,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌恰聘,老刑警劉巖句各,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異晴叨,居然都是意外死亡凿宾,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門兼蕊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來初厚,“玉大人,你說我怎么就攤上這事孙技〔蹋” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵牵啦,是天一觀的道長亚情。 經(jīng)常有香客問我,道長哈雏,這世上最難降的妖魔是什么楞件? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮裳瘪,結(jié)果婚禮上土浸,老公的妹妹穿的比我還像新娘。我一直安慰自己彭羹,他們只是感情好黄伊,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著皆怕,像睡著了一般毅舆。 火紅的嫁衣襯著肌膚如雪愈腾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天悦即,我揣著相機與錄音,去河邊找鬼。 笑死辜梳,一個胖子當著我的面吹牛粱甫,可吹牛的內(nèi)容都是我干的作瞄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宗挥,長吁一口氣:“原來是場噩夢啊……” “哼乌庶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起契耿,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤搪桂,失蹤者是張志新(化名)和其女友劉穎透敌,沒想到半個月后踢械,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡顾瞻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年德绿,在試婚紗的時候發(fā)現(xiàn)自己被綠了退渗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡个粱,死狀恐怖翻翩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胶征,我是刑警寧澤桨仿,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響骂铁,放射性物質(zhì)發(fā)生泄漏罩抗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一名段、第九天 我趴在偏房一處隱蔽的房頂上張望泣懊。 院中可真熱鬧,春花似錦馍刮、人聲如沸信夫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽匈辱。三九已至,卻和暖如春亡脸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背大州。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工垂谢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人根暑。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓徙邻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親躏率。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容