越獄開(kāi)發(fā)筆記
必備插件

安裝openSSH插件

-
SSH、open SSH
open SSH是工具,通過(guò) open SSH 可以訪(fǎng)問(wèn)手機(jī)、和其他的應(yīng)用
通過(guò)openSSH連接(登錄)手機(jī)
$ ssh 用戶(hù)名@用戶(hù)服務(wù)器地址
// cycript 相當(dāng)于 有個(gè)cycript應(yīng)用,是電腦通過(guò)cycript 鏈接手機(jī)
// ssh 是協(xié)議:ssh登錄手機(jī)



上圖第9個(gè)、pwd: alpine
iOS 下有兩個(gè)用戶(hù)
- root 最高權(quán)限的用戶(hù) $ HOME: /var/root
- 還有一個(gè) mobile $ HOME: /var/mobile
$ cd ~/.ssh
$ ls
$ cat known_hosts
$ pwd
$ exit
$ ssh mobile@192.168.31.178 //--> iPhone:~ mobile$ pwd
$ ssh root@192.168.31.178 //--> iPhone:~ root# pwd
// 1--------------------------------------------------------
$ ssh root@192.168.31.178 //--> iPhone:~ root# pwd
iPhone:~ root# cd /
iPhone:~ root# ls
iPhone:~ root# pwd
iPhone:~ root# touch 1.txt //新建一個(gè)文件 " 1.txt " --> 創(chuàng)建成功
iPhone:~ root# rm 1.txt //刪除文件 " 1.txt " rm = remove
iPhone:~ root# passwd //修改登錄密碼
New password: xxx
Retype new password: xxx
iPhone:~ root# sudo
iPhone:~ root# cd var/mobile/
iPhone:var/mobile/ root# exit // --> logout
// 2 --------------------------------------------------------
$ ssh mobile@192.168.31.178 // --> iPhone:~ mobile$ pwd
iPhone:~ mobile# cd /
iPhone:~ mobile# ls
iPhone:~ mobile# pwd
iPhone:~ mobile# touch 2.txt //新建一個(gè)文件 --> 創(chuàng)建失敗 touch:cannot touch '2.txt': Permission dened
iPhone:~ mobile#
iPhone:~ mobile#
iPhone:~ mobile# cd var/mobile/
iPhone:var/mobile/ root# exit // --> logout
// 由1、2 得出:root 用戶(hù)才有讀寫(xiě)權(quán)限




刪除SSH服務(wù)器對(duì)應(yīng)的公鑰(登錄過(guò)的才有,才能刪除)
$ ssh-keygen -R 服務(wù)器IP地址
$ ssh-keygen -R root@192.168.31.178
// 第一次連接 SHA256:xxx (xxx是公鑰的哈希值)
$ ssh root@192.168.31.178

如果第一次登錄就被攻擊了呢?
第一次登錄 直接和 服務(wù)對(duì)比,用肉眼去看

查看公鑰 :
$ cat known_hosts

劃出來(lái)的 公鑰 保存在Mac
$ ssh root@192.168.31.17
iPhone:~ root# cd /etc/ssh/
iPhone:/etc/ssh root# ls -l //--> ssh_host_rsa_key.pub
iPhone:/etc/ssh root# cat ssh_host_rsa_key.pub

-
004--SSH公鑰登陸(免密登陸).wmv
$ ssh root@192.168.31.17



$ ssh-keygen //生成一對(duì) 公鑰、私鑰 ,id_rsa:私鑰,id_rsa.pub:公鑰
$ ls
$ ssh-copy-id root@192.168.31.178
$ ssh root@192.168.31.178
iPhone:~ root# ls
iPhone:~ root# cd ~/.ssh/
iPhone:~ root# cat authorised_keys
iPhone:~ root# rm authorised_keys //刪除后 再去登錄 就需要密碼了
-
005--usbl連接.wmv //------------------------------------------------------------
$ ssh -p 22 root@192.168.31.178

這個(gè)腳本是做 映射的!映射到USB連接的手機(jī)!

//監(jiān)聽(tīng)本地(本機(jī)Mac)的12345,只要監(jiān)聽(tīng)到,就給手機(jī)的22 端口發(fā)數(shù)據(jù)
python tcprelay-py -t 22:12345

// 把 python-client 文件夾 移入 ZMshell 腳本文件夾內(nèi)

login.sh --> cylogin.sh // 可以修改名稱(chēng)


//映射本地端口
$ python /Users/zhangmeng/ZMshell/python-client/tcprelay.py -t 22:12345

5.1、拷貝login.sh 文件,復(fù)制,改名為 usbConnect.sh
5.2、編輯此文件:刪掉原內(nèi)容,拷貝此命令到 此文件內(nèi)
(命令為:python /Users/zhangmeng/ZMshell/python-client/tcprelay.py -t 22:12345)

$ sh usbConnect.sh //命令運(yùn)行腳本,通過(guò)USB連接手機(jī)
5.3、拷貝usbConnect.sh 文件,復(fù)制,改名為 usbLogin.sh
// 下面登錄連接會(huì)報(bào)錯(cuò)
$ ssh root@localhost -p 12345
$ ssh root@127.0.0.1


// 解決方案

5.4、編輯此文件(usbLogin.sh):刪掉原內(nèi)容,拷貝此命令到 此文件內(nèi)
(命令為:ssh root@localhost -p 12345)
5.5、關(guān)閉終端,保存腳本
5.6、重新運(yùn)行終端
$ sh usbConnect.sh
$ sh usbLogin.sh

//還是報(bào)錯(cuò),解決方案:刪除 localhost對(duì)應(yīng)的 key
$ vim /Users/zhangmeng/.ssh/known_hosts // 編輯 hosts 刪掉 localhost


$ sh usbLogin.sh //重新登錄 并重新保存 key
5.7、編輯此文件(usbLogin.sh):修改內(nèi)容命令為:ssh root@127.0.0.1 -p 12345
$ sh usbLogin.sh //重新登錄,也成功了! 原因:公鑰保存了,并沒(méi)有改變
5.8、換一個(gè)手機(jī)
$ sh usbLogin.sh //重新登錄,登錄失敗了!
$ vim /Users/zhangmeng/.ssh/known_hosts // 編輯 hosts 刪掉 127.0.0.1
$ sh usbLogin.sh //重新登錄,登錄成功了!
默認(rèn)密碼 pwd: alpine
1.怎么樣才能出現(xiàn)中間人攻擊???
答:同樣IP 不一樣的公鑰??!
2.本地只能保存一個(gè)公鑰嗎??
答:不止一個(gè)
3.本地一個(gè)IP:端口 只能保存一個(gè)公鑰嗎?
答:1個(gè)

$ cd ~/.ssh
$ ~/.ssh ls
$ ~/.ssh cat known_hosts

箭頭處:只有端口號(hào)的 端口是 22
-
006--文件拷貝.wmv //----------------------------------------
-
6.1

$ sh usbLogin.sh //重新登錄
$ touch 123.txt
$ ls
$ scp 123.txt root@192.168.31.178:~/ // 通過(guò)WiFi 拷貝
$ ssh root@192.168.31.178
$ cd / //到用戶(hù)目錄
$ cd ~/ //到電腦的根目錄
$ rm 123.txt
-
6.2
$ cd Desktop
$ scp -P 12345 123.txt root@localhost:~/ // 把 12345 拷貝到 123.txt 文本內(nèi),通過(guò)映射 USB 傳輸數(shù)據(jù)
-
007--應(yīng)用瘦身.wmv //----------------

//安裝 越獄版:騰訊視頻



// 剝離架構(gòu) 應(yīng)用瘦身
$ lipo live4iphone -thin arm64 -output arm64_live4 //166M --> 64M
創(chuàng)建文件夾 PayLoad,arm64_live4 放入PayLoad文件內(nèi),
$ zip -ry TenXunLive.ipa PayLoad //64M --> 47M

重新安裝 TenXunLive.ipa //安裝成功 --> 94.5 M 非越獄手機(jī),用重簽名安裝

總結(jié):
iOS 下有兩個(gè)用戶(hù)
- root 最高權(quán)限的用戶(hù) $HOME:/var/root
- 還有一個(gè) mobile $HOME: /var/mobile
修改ssh登錄密碼
- passwd 輸入兩次新密碼
SSH
SSH是一種網(wǎng)絡(luò)協(xié)議.用于計(jì)算機(jī)之間的加密登錄!
openSSH
openSSH其中一種軟件.
SSH通訊過(guò)程

中間人攻擊(Man-in-the-MiddleAttack,簡(jiǎn)稱(chēng)“MITM攻擊”)
預(yù)防中間人攻擊最有效的方法就是驗(yàn)證 公鑰是不是服務(wù)器的!!
如果是公開(kāi)的SSH服務(wù)器,一般會(huì)將公鑰的哈希值 公布在網(wǎng)站上!!
SSH使用公鑰登錄
除了使用密碼登錄,也可以免密碼登錄!
所謂的"公鑰登錄",原理:
1.Mac電腦將自己的公鑰發(fā)給遠(yuǎn)程的手機(jī)
2.手機(jī)隨機(jī)的生成一段字符串,發(fā)給Mac電腦.
3.Mac利用私鑰加密字符串!
4.手機(jī)利用公鑰解密字符串!
如果還要輸入密碼的話(huà),設(shè)置文件的權(quán)限! chmod 755
USB
SSH的默認(rèn)端口是22
usbmuxd 在iOS和Mac上都是自帶的!
通過(guò)openSSH連接(登錄)手機(jī)
$ssh 用戶(hù)名@用戶(hù)服務(wù)器地址
刪除SSH服務(wù)器對(duì)應(yīng)的公鑰
$ssh-keygen -R 服務(wù)器IP地址