1.手機越獄
1.1 手機越獄概述
??當啟動一臺iOS設備時,系統首先會從只讀的ROM中讀取初始化指令,也就是系統的引導程序(事實上所有的操作系統啟動時都要經過這一步,只是過程略有不同)。這個引導ROM包含蘋果官方權威認證的公鑰,它會驗證底層啟動加載器(LLB)的簽名,一旦通過驗證后就啟動系統。LLB會做一些基礎工作,然后驗證第二級引導程序iBoot。iBoot啟動后,設備就可以進入恢復模式或啟動內核。在iBoot驗證完內核簽名的合法性之后,整個啟動程序開始步入正軌:加載驅動程序、檢測設備、啟動系統守護進程。這個信任鏈會確保所有的系統組件都有蘋果官方寫入、簽名、分發,不能來自第三方機構,流程如下圖所示:
??而越獄的工作原理正是攻擊這一信任鏈。所有的越獄工具的作者都需要找到這一信任鏈上的漏洞,從而禁止掉信任鏈中負責驗證的組件,從而拿到iOS系統最大權限ROOT權限。
??根據越獄的情況不同可以分為如下兩種越獄:
- 完美越獄
??所謂完美越獄就是破解iOS系統漏洞之后,每次系統重啟都能自動調用注入的惡意代碼,達到破壞安全驗證,再次獲得ROOT權限。 - 非完美越獄
??所謂非完美越獄是指,越獄系統后,并沒有完全破解安全鏈,有部分信息或功能應用不佳。比如:關機以后必須去連接越獄軟件來引導開機,或者重啟會導致越獄的失效,這樣的越獄稱為“不完美越獄”。
1.2 越獄工具
如果你的手機iOS12版本的可以直接使用愛思助手進行越獄,如果是iOS12以上版本的可以使用下面兩種工具進行越獄。
uncOver 越獄
Odyssey越獄
1.3 使用uncOver工具進行手機越獄
注意:在越獄之前請先做好數據備份,防止越獄失敗數據丟失!
首先進入uncOver官網主頁,直接點擊下載,下載安裝包,如下圖所示:
下載完畢之后,使用XCode新建一個Monkey的工程。
創建工程完畢之后,選運行程序,將程序安裝到手機上,然后再打開工程主目錄,將下載好的安裝包拖入到TargetApp文件夾中,如下圖所示:
鏈接手機,再次運行程序,進入應用界面,然后斷開數據線鏈接,殺死應用程序,再點擊啟動,進入如下界面:
然后點擊越獄,如果出現如下的錯誤提示:
重啟手機,重復越獄操作。
1.4 使用altStore以及unCover進行手機越獄。
??如果使用上面的方式始終無法越獄成功,也可以按下面的操作進行手機越獄。
首先進入altStore官網下載altServer.app,altStore官網
下載完后拖入到應用程序,如下所示:
打開之后,在頂部工具欄就會出現如下的圖標,然后進行如下操作:
然后會提示你輸入密碼,輸入密碼并確認后,就會提示你這個插件已經安裝好了,接下來,就打開你的郵件,登陸你的賬戶,如下所示:
然后按照下面的步驟給郵件配置一下這個插件,如下所示:
重啟你的郵件APP之后就使用USB鏈接你的手機,然后安裝altStore App到你的手機上。
輸入,你的Apple ID以及密碼,并點擊install:
安裝成功之后,就可以在手機上發現這樣一個APP,如下圖所示:
緊接著,我們打開手機上的瀏覽器,下載一下unCover的ipa包,如下圖所示:
然后手機上也會出現uncOver APP,打開它,點擊設置界面
然后就勾選下面的選項:
然后回到主界面,點擊jailbreak按鈕,進行越獄,中途出現了如下的廣告界面直接關閉掉就可以了
接著會提示你,越獄成功,提示你要關機進行重啟,你就點擊ok就可以了,如下所示:
關機重啟之后,再次打開uncOver應用,再次進入設置頁面,進行如下設置:
然后回到主頁再次點擊jailbreak按鈕,就越獄成功了,越獄成功之后手機桌面上也會出現Cydia應用了,你可以在這個Cydia應用中下載一些你需要的插件。
2.OpenSSH與SSH
2.1 什么是OpenSSH
??OpenSSH 是 SSH (Secure SHell) 協議的免費開源實現,它是一款軟件,應用非常廣泛。 而SSH協議可以用來進行遠程控制, 或在計算機之間傳送文件。
2.2 什么是SSH
??SSH是一種網絡協議,用于計算機之間的加密登錄。 1995年,芬蘭學者Tatu Ylonen設計了SSH協議,將登錄信息全部加密,成為互聯網安全的一個基本解決方案,迅速在全世界獲得推廣,目前已經成為Linux系統的標準配置。
??我們可以通過OpenSSH插件可以連接手機,進行遠程控制, 或者傳送文件。
2.3 SSH登錄
2.4 中間人攻擊
為了解決中間人攻擊這個問題,openSSH網站會有一個自己公鑰通過sha256生成的hash值字符串,在每次進行設備連接的時候,也會將這個公鑰的hash值字符串發給你,這個時候,你可以做一個對比,看是否與官網上的公鑰的hash值字符串一致,如果不一致,那么很有可能就是中間人攻擊了。
3.連接手機
3.1 使用wifi連接手機
連接手機命令格式:ssh 用戶名@手機IP地址(其實實際上是ssh -p 端口號 用戶名@手機IP地址,因為使用的是默認端口22,所有可以省略不寫)
在iOS中有兩個用戶:Root以及Mobile
Root用戶:最高權限用戶,可以訪問任意文件。
-
Mobile用戶:普通用戶,只能訪問改用戶目錄下文件/var/Mobile。
手機IP地址可以通過下面的方式,打開手機設置->無線局域網->點擊你連接的wifi,進到如下界面:
接著我們就打開終端進行手機連接的操作
-
root用戶登錄
首次連接的時候會提示你是否保存服務器端發送過來的公鑰,輸入yes,這個是用來做安全校驗的
-
mobile用戶登錄
3.2 使用USB連接手機
蘋果有一個服務,叫usbmuxd,這個服務主要用于在USB協議上實現多路TCP連接,這個可執行文件所在路徑為:/Library/Apple/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/Resources/usbmuxd,如下圖所示:
3.2.1 設置端口映射
- 方式1:使用一個Python腳本進行端口映射。
python腳本文件 密碼:wwmq
將這個文件下載下來后使用tcprelay.py這個腳本文件,打開終端進行以下操作:
python tcprelay.py -t 22:12345
//將本地的12345端口映射到設備的TCP端口22,這樣就可以通過本地的12345端口建立連接了。
-
方式2:使用libimobiledevice工具進行端口映射
首先需要在終端使用命令brew install libimobiledevice安裝這個工具,如下圖所示:
安裝完成之后,在終端使用這個工具進行端口映射:
iproxy 12345 22
3.2.2 使用USB鏈接手機
ssh -p 12345 用戶名@IP地址
//用戶名:root或mobile
//IP地址:127.0.0.1或localhost
3.3 修改登錄密碼
ROOT用戶可以修改所有用戶的密碼,而Mobile用戶只能修改自己的密碼,修改用戶密碼的命令如下:
passwd 用戶名
//輸入兩次新密碼,確認修改,因為是登錄狀態所以不用輸入原始密碼。
3.4 免密登錄&公鑰登錄
3.4.1 首先在本地生成一對公私鑰
3.4.2 將本地生成的公鑰拷貝到手機中
ssh-copy-id 用戶名@手機IP地址
用戶名:root或者mobile
手機IP地址:wifi就是wifi的IP地址,USB就是localhost或者127.0.0.1
設置成功后就可以不用輸入密碼直接登錄上了,如下所示:
3.4.2 廢除免密登錄
3.5 配置ssh登錄時的別名
在本地(電腦)的~/.ssh目錄下創建一個config文件,在其中可以配置ssh登錄的別名
Host 別名
Hostname IP地址(wifi鏈接就是wifiIP地址,USB鏈接就寫localhost或127.0.0.1)
User 用戶名 (root或mobile)
Port 端口號(wift鏈接寫成22,USB鏈接寫你映射的端口號)
3.5.1 配置wifi鏈接登錄別名
3.5.2 配置USB鏈接登錄別名
3.6 其他操作
3.6.1 查看手機安裝的應用以及運行的進程
3.6.2 查看本地保存的ssh服務服務器的IP地址及對應公鑰
??你可以在本地路徑 /Users/你的用戶名/.ssh中的knoww_hosts文件中查看這些內容,如下所示:
3.6.3 查看服務器中ssh服務器發送給連接中的公鑰
??你可以在SSH服務器中/etc/ssh路徑中查看到保存公鑰以及私鑰的文件,如下圖所示:
3.6.5 可以使用如下命令刪除本地保存的用戶名IP地址對應的公鑰信息
ssh-keygen -R 服務器IP地址
使用如下:
查看要刪除的公鑰
使用命令刪除
3.6.4 中間人攻擊報錯解決方案
??當你使用相同的用戶名以及IP地址登錄SSH服務器時遇到中間人攻擊保存禁止登錄時,是因為你的本地的knoww_hosts文件中以及保存了一份對應的服務器的IP地址及公鑰,當本地進行SSH服務登錄的時候發現這個用戶名及IP地址對應的公鑰發送了變換,就會認為遭到了中間人攻擊,如下所示:
可以使用3.6.5中的方式刪除本地保存的用戶名IP地址對應的公鑰信息。
如果上面的方式行不通,你可以自己編輯/Users/你的用戶名/.ssh/known_hosts文件中刪除對應的公鑰信息,刪除之后就可以登錄了。
4 SSH快捷鏈接
4.1創建文件
創建兩個文件ssh_connect.sh(提供USB鏈接的端口映射),l_xs.sh(USB方式連接ssh服務器)