iOS逆向-day2:逆向環(huán)境搭建-SSH 安全連接

1丈挟、SSH與OpenSSH簡介
2刁卜、Mac遠程登錄到iPhone
3、iOS下的2個常用賬戶:root曙咽、mobile
4蛔趴、SSL和OpenSSL
5、建立安全連接與服務器公鑰的保存和變更
6例朱、SSH-客戶端認證
7孝情、SSH-遠程拷貝-文件權限
8鱼蝉、22端口
9、通過USB進行SSH登錄
10箫荡、usbmuxd-使用
11魁亦、利用sh腳本設置快捷方式
12笙蒙、Mac連接iPhone終端的中文亂碼問題

一、SSH與OpenSSH簡介

  • 1.1奠衔、SSH簡介

    • SSHSecure Shell 的縮寫樟遣,意為“安全外殼協(xié)議”,是一種可以為遠程登錄提供安全保障的協(xié)議
    • 使用SSH荒叶,可以把所有傳輸?shù)臄?shù)據(jù)進行加密,“中間人”攻擊方式就不可能實現(xiàn),能防止DNS欺騙和IP欺騙


      提示:sniffer嗅探器以及抓數(shù)據(jù)包軟件

  • 1.2镀赌、OpenSSH簡介

    • OpenSSH 是 SSH 協(xié)議的免費開源實現(xiàn)
    • 可以通過OpenSSH的方式讓Mac遠程登錄到iPhone

二、Mac遠程登錄到iPhone

  • 2.1际跪、Mac遠程登錄到iPhone的簡介

    • 我們經(jīng)常在Mac的終端上商佛,通過敲一些命令行來完成一些操作


      Mac的終端
    • iOS和Mac OS X都是基于Darwin(蘋果的一個基于Unix的開源系統(tǒng)內(nèi)核),所以iOS中同樣支持終端的命令行操作(在逆向工程中姆打,我們經(jīng)常會通過命令行來操縱iPhone)
    • 為了能夠讓Mac終端中的命令行能作用在iPhone上良姆,我們得讓Mac和iPhone建立連接


      Mac終端中的命令行能作用在iPhone圖
  • 2.2、Mac使用OpenSSH遠程登錄iphone的前提

    • 在iPhone上通過Cydia安裝OpenSSH工具(軟件源http://apt.saurik.com
      OpenSSH
    • OpenSSH的具體使用步驟可以查看Description中的描述


      OpenSSH的具體使用步驟可以查看Description中的描述
  • 2.3幔戏、使用OpenSSH遠程登錄 的 使用步驟 - (Mac充當客戶端玛追,iPhone充當服務器)

    • <1>、SSH是通過TCP協(xié)議通信闲延,所以要確保Mac和iPhone在同一局域網(wǎng)下痊剖,比如連接著同一個WiFi

    • <2>、在Mac的終端輸入ssh 賬戶名@服務器主機地址垒玲,如下是以root權限登錄的陆馁,其中的 192.168.3.73是手機的IP地址,這里的服務器是手機

      ssh root@192.168.3.73
      

      手機的IP地址的查看方式合愈,要和電腦在同一個WiFi下


      手機的IP地址的查看方式
    • <3>叮贩、初始密碼 alpine

      初始密碼 `alpine`

      登錄成功

      登錄成功過后的測試

    • <4>、登錄成功后就可以使用終端命令行操作iPhone佛析,如:退出登錄命令是exit,也可以使用快捷鍵:control+d

三妇汗、iOS下的2個常用賬戶:root、mobile (初始登錄密碼都是alpine)

root说莫、mobile

  • 3.1杨箭、root:最高權限賬戶,$HOME是 /var/root

    提示:$HOME是 登錄用戶的路徑储狭,查看方式如下

    • $HOME是 登錄用戶的路徑互婿,查看方式如下
  • 3.2捣郊、mobile:普通權限賬戶,只能操作一些普通文件慈参,不能操作系統(tǒng)級別的文件呛牲,$HOME是 /var/mobile

  • 3.3、修改一下root和mobile用戶的登錄密碼(登錄root賬戶后驮配,分別通過passwd娘扩、passwd mobile完成),使用root用戶登錄壮锻,登錄成功后命令如下


    修改一下root和mobile用戶的登錄密碼

四琐旁、SSL和OpenSSL

  • 分析:我們在安裝 OpenSSH的時候可以看到先安裝的是OpenSSL


    安裝 OpenSSH的時候可以看到先安裝的是OpenSSL
  • 4.1、SSL:Secure Sockets Layer的縮寫猜绣,是為網(wǎng)絡通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議灰殴,在傳輸層對網(wǎng)絡連接進行加密
  • 4.2、OpenSSL:SSL的開源實現(xiàn)掰邢;絕大部分HTTPS請求等價于:HTTP + OpenSSL

    提示1:OpenSSH的加密就是通過OpenSSL完成的


    OpenSSH的加密就是通過OpenSSL完成的

五牺陶、建立安全連接

  • 5.1、SSH的版本
    • SSH協(xié)議一共2個版本:SSH-1SSH-2(現(xiàn)在用的比較多的是SSH-2辣之,客戶端和服務端版本要保持一致才能通信)
    • 查看SSH版本(查看配置文件的Protocol字段)
      • 客戶端:/etc/ssh/ssh_config
      • 服務端:/etc/ssh/sshd_config
      • 舉例:以電腦作為客戶端與越獄手機作為服務器查看各自對應的SSH版本
        • 電腦作為客戶端查看SSH版本


          電腦作為客戶端查看SSH版本

          可以看到SSH的版本是2:Protocol 2
        • 越獄手機作為服務器端查看SSH版本


          越獄手機作為客戶端查看SSH版本
  • 5.2掰伸、SSH的通信過程可以分為3大主要階段:建立安全連接客戶端認證怀估、數(shù)據(jù)傳輸
  • 5.3碱工、建立安全連接
    • <1>、在建立安全連接過程中奏夫,服務器會提供自己的身份證明(也就是公鑰)

      建立安全連接
      • 提示:~/.ssh/known_hosts路徑下存儲 服務器的公鑰等其他的信息怕篷,在第一次存儲后,第二次客戶端再登錄服務器就不再需要驗證身份
      • 如果客戶端并無服務器端的公鑰信息酗昼,就會詢問是否連接此服務器,如下圖:我們在第一次登錄的時候一般都會提示


        沒有保存公鑰的提示
    • <2>廊谓、解釋下:在建立安全鏈接的過程中,~/.ssh/known_hosts所保存的服務器公鑰以及其他信息麻削,也就是上圖中的:字符串 (把服務器發(fā)過來的公鑰利用加密計算出來的一個字符串)

    • <3>蒸痹、服務器身份信息變更(也就是同一個服務器,但是服務器的公鑰發(fā)生了變化呛哟,也可以說本地的存儲的公鑰與服務器的不一樣),解決辦法:刪除掉同一個 IP 的信息,下面以 IP:192.168.3.73 為例

      901554888676_.pic_hd.jpg

      • (1)叠荠、cd ~/.ssh
      • (2)、vim know_hosts
      • (3)扫责、讓光標停留在192.168.3.73行榛鼎,按 dd 即可刪除
      • (4)、esc,shift+;,wq輸入回車鍵 保存推出;
      • (5)者娱、再次進行連接服務器ssh root@192.168.3.73抡笼;
      • (6)、重新提示要不要連接

      提示:快捷方式:ssh-keygen -R 服務器IP地址黄鳍,如和上面一樣的效果:ssh-keygen -R 192.168.3.73

    • <4>推姻、驗證客戶端存儲的 公鑰 與 服務器的公鑰是否一致

    驗證客戶端存儲的 公鑰 與 服務器的公鑰是否一致

六、SSH-客戶端認證

  • 6.1框沟、SSH-2 提供了2種常用的客戶端認證方式

    • 第一種(我們在 用到的密碼登錄):基于密碼的客戶端認證(使用賬號和密碼即可認證)
    • 第二種:基于密鑰的客戶端認證 (免密碼認證,最安全的一種認證方式)

    提示:SSH-2 默認會優(yōu)先嘗試 “密鑰認證”藏古,如果認證失敗,才會嘗試 “密碼認證”

  • 6.2忍燥、搭建 SSH - 基于密鑰的客戶端認證(也就是可以省略密碼登錄的過程)

    搭建 SSH - 基于密鑰的客戶端認證的過程
    • 首先要在客戶端生成公鑰與私鑰拧晕,然后把公鑰傳給服務器,將公鑰內(nèi)容追加到授權文件尾部灾前,在登錄驗證的時候防症,服務器發(fā)送一個登錄信息過來孟辑,使用私鑰進行解密或者其他的操作(不僅僅是這些操作哎甲,后面都會闡述),解密成功的話進行登錄
    • <1>饲嗽、在客戶端生成一對相關聯(lián)的密鑰(Key Pair):一個公鑰(Public Key)炭玫,一個私鑰(Private Key)
      • ssh-keygen
      • 一路敲回車鍵(Enter)即可
      • OpenSSH默認生成的是RSA密鑰,可以通過-t參數(shù)指定密鑰類型
      • 生成的公鑰:~/.ssh/id_rsa.pub
      • 生成的私鑰:~/.ssh/id_rsa


        公鑰與私鑰
    • <2>貌虾、把客戶端的公鑰內(nèi)容追加到服務器的授權文件(~/.ssh/authorized_keys)尾部
      • ssh-copy-id root@服務器主機地址
      • 需要輸入root用戶的登錄密碼
      • ssh-copy-id會將客戶端~/.ssh/id_rsa.pub的內(nèi)容自動追加到服務器的~/.ssh/authorized_keys尾部
        把客戶端的公鑰內(nèi)容追加到服務器的授權文件
        • 注意:由于是在~文件夾下操作吞加,所以上述操作僅僅是解決了root用戶的登錄問題(不會影響mobile用戶),也就是root用戶再使用 ssh root@IP地址 不再需要密碼,而mobile用戶是需要密碼的
          root用戶登錄不再需要密碼

七尽狠、SSH-遠程拷貝-文件權限(這里以上面 基于密鑰的客戶端認證的手動操作)

  • 7.1衔憨、可以使用 ssh-copy-id 將客戶端的公鑰內(nèi)容自動追加到服務器的授權文件尾部,也可以手動操作,復制客戶端的公鑰到服務器某路徑

    scp ~/.ssh/id_rsa.pub root@服務器主機地址:~
    
    • scp是secure copy的縮寫袄膏,是基于SSH登錄進行安全的遠程文件拷貝命令践图,把一個文件copy到遠程另外一臺主機上
    • 上面的命令行將客戶端的~/.ssh/id_rsa.pub拷貝到了服務器的~/.ssh/地址
    • 具體的細節(jié)

      • SSH登錄服務器:ssh root@服務器主機地址
      • 在服務器創(chuàng)建.ssh文件夾: mkdir .ssh
      • 追加公鑰內(nèi)容到授權文件尾部:cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
      • 刪除公鑰:rm ~/id_rsa.pub

      提示: ~ 指的是用戶目錄,登錄的是root的話就是:/var/root

  • 7.2沉馆、如果上面的操作都做完了還是無法基于密鑰的客戶端認證(也可以說免密登錄)码党,那就是和權限有關的問題了,設置下下面的權限


    設置下下面的權限
    chmod 755 ~
    chmod 755 ~/.ssh
    chmod 644 ~/.ssh/authorized_keys
    

八斥黑、22端口

  • 8.1揖盘、端口:就是設備對外提供服務的窗口,每個端口都有個端口號(范圍是0~65535锌奴,共2^16個)

  • 8.2兽狭、有些端口號是保留的,已經(jīng)規(guī)定了用途,比如

    • 21端口提供FTP服務
    • 80端口提供HTTP服務
    • 22端口提供SSH服務(可以查看/etc/ssh/sshd_config的Port字段)
    • 更多保留端口號
  • 8.3椭符、iPhone默認是使用22端口進行SSH通信荔燎,采用的是TCP協(xié)議


    iPhone默認是使用22端口進行SSH通信,采用的是TCP協(xié)議
    iPhone默認是使用22端口進行SSH通信
    cat /etc/ssh/sshd_config
    

九销钝、通過USB進行SSH登錄

  • 9.1有咨、使用USB進行SSH登錄的原因是:在上面
    我們是通過同一個WIFI的情況下進行的SSH登錄,在終端操作的時候可以感覺到輸入內(nèi)容很慢蒸健,這個時候我們可以可以使用USB進行SSH登錄

  • 9.2座享、默認情況下,由于SSH走的是TCP協(xié)議似忧,Mac是通過網(wǎng)絡連接的方式SSH登錄到iPhone渣叛,要求iPhone連接WiFi


    iPhone默認是使用22端口進行SSH通信,采用的是TCP協(xié)議
  • 9.3盯捌、為了加快傳輸速度淳衙,也可以通過USB連接的方式進行SSH登錄,Mac上有個服務程序 usbmuxd它會開機自動啟動)饺著,可以將Mac的數(shù)據(jù)通過USB傳輸?shù)絠Phone

    • usbmuxd的路徑在:/System/Library/PrivateFrameworks/MobileDevice.framework/Resources/usbmuxd
      usbmuxd的路徑

      通過USB連接的方式進行SSH登錄

十箫攀、usbmuxd 的使用

  • 10.1、下載usbmuxd工具包(下載v1.0.8版本幼衰,主要用到里面的2個python腳本:tcprelay.pyusbmux.py

    tcprelay.py 與 usbmux.py

  • 10.2靴跛、將iPhone的 22 端口(SSH端口)映射到Mac本地的 10010 端口(不一定非是10010端口,只要不是保留端口就好)渡嚣,做完下面的操作我們會發(fā)現(xiàn)再終端操作不會卡了

    提示:映射窗口不要關閉梢睛,在SSH登錄的時候 新開窗口操作,保持至少兩個窗口识椰,因為可能 連接 多個手機的 22 端口

    • 端口映射完畢后绝葡,以后如果想跟iPhone的22端口通信,直接跟Mac本地的10010端口通信就可以了

      ssh root@localhost -p 10010
      ssh root@127.0.0.1 -p 10010
      
      • localhost 是一個域名腹鹉,指向的IP地址是 127.0.0.1藏畅,本機虛擬網(wǎng)卡的IP地址
      • usbmuxd會將Mac本地10010端口的TCP協(xié)議數(shù)據(jù),通過USB連接轉發(fā)到iPhone的22端口
  • 10.3种蘸、遠程拷貝文件也可以直接跟Mac本地的10010端口通信

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

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

    scp的端口號參數(shù)是大寫的 -P

    提示:注意:scp的端口號參數(shù)是大寫的 -P

十一、利用 sh 腳本設置快捷方式

  • 11.1航瞭、我們可以將經(jīng)常執(zhí)行的一系列終端命令行放到sh腳本文件中(shell)诫硕,然后執(zhí)行腳本文件,舉例如下

    • <1>刊侯、usb.sh腳本的舉例:我們在使用 USB連接用戶的iPhone的時候章办,每次都要執(zhí)行 10.1tcprelay.py 這個腳本,我們可以把 tcprelay.py 存到一個固定位置,比如說我把它存在了桌面的 Jailbreak 文件夾,路徑就成為了 /Users/wangchong/Desktop/Jailbreak/tcprelay.py,我們在 將iPhone的 22 端口(SSH端口)映射到Mac本地的 10010 端口就變成為如下的命令

      python /Users/wangchong/Desktop/Jailbreak/tcprelay.py
      

      但是我們每次再映射的時候都要執(zhí)行上面的命令藕届,為了解決每次的麻煩挪蹭,我們可以使用 sh腳本,比如我在用戶目錄下創(chuàng)建一個 usb.sh 腳本文件休偶,把上面的路徑復制進去梁厉,如下


      usb.sh 腳本文件

      當我們再次執(zhí)行映射的時候可以直接如下操作

      sh usb.sh
      
      執(zhí)行腳本
    • <2>、login.sh腳本的舉例:同樣創(chuàng)建一個 login.sh 文件里面寫入要執(zhí)行登錄的腳本文件:ssh root@localhost -p 10010,執(zhí)行腳本如下

      sh login.sh 
      
    • <3>踏兜、總結:我們在每次映射和登錄iPhone連接的時候可以執(zhí)行下面的兩個腳本命令词顾,但是要是在兩個窗口,先映射后登錄

      sh usb.sh
      sh login.sh 
      
  • 11.2碱妆、擴展:我們在執(zhí)行腳本的時候不僅僅使用 sh肉盹,還有bashsource命令來執(zhí)行sh腳本文件

    • sh疹尾、bash
      • 當前shell環(huán)境會啟動一個子進程來執(zhí)行腳本文件上忍,執(zhí)行后返回到父進程的shell環(huán)境
      • 執(zhí)行cd時,在子進程中會進入到cd的目錄纳本,但是在父進程中環(huán)境并沒有改變窍蓝,也就是說目錄沒有改變
    • source
      • 在當前的shell環(huán)境下執(zhí)行腳本文件
      • 執(zhí)行cd后會跳轉到cd的目錄
      • source 可以用一個點"."來替代,比如". test.sh"
  • 11.3饮醇、source 與 sh它抱、bash的區(qū)別

    • source執(zhí)行的腳本如果是執(zhí)行 cd 路徑的時候秕豫,執(zhí)行后 顯示路徑
      屏幕快照 2019-04-11 下午3.30.46.png
    • sh朴艰、bash 執(zhí)行的腳本如果是執(zhí)行 cd 路徑的時候,執(zhí)行后 不會 顯示路徑
      屏幕快照 2019-04-11 下午3.30.32.png

十二混移、Mac連接iPhone終端的中文亂碼問題

  • 12.1祠墅、默認情況下,iOS終端不支持中文輸入和顯示歌径,解決方案:新建一個~/.inputrc文件毁嗦,文件內(nèi)容是

    不將中文字符轉化為轉義序列
    set convert-meta off 
    允許向終端輸出中文
    set output-meta on
    允許向終端輸入中文
    set meta-flag on 
    set input-meta on
    
    • 提示:如果是想在終端編輯文件內(nèi)容,可以通過Cydia安裝一個vim(軟件源http://apt.saurik.com
      vim軟件
  • 12.2回铛、做完上面操作后的效果如下


    WechatIMG108.jpeg
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末狗准,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子茵肃,更是在濱河造成了極大的恐慌腔长,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件验残,死亡現(xiàn)場離奇詭異捞附,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門鸟召,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胆绊,“玉大人,你說我怎么就攤上這事欧募⊙棺矗” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵跟继,是天一觀的道長何缓。 經(jīng)常有香客問我,道長还栓,這世上最難降的妖魔是什么碌廓? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮剩盒,結果婚禮上谷婆,老公的妹妹穿的比我還像新娘。我一直安慰自己辽聊,他們只是感情好纪挎,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著跟匆,像睡著了一般异袄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玛臂,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天烤蜕,我揣著相機與錄音,去河邊找鬼迹冤。 笑死讽营,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的泡徙。 我是一名探鬼主播橱鹏,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼堪藐!你這毒婦竟也來了莉兰?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤礁竞,失蹤者是張志新(化名)和其女友劉穎糖荒,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體苏章,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡寂嘉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年奏瞬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泉孩。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡硼端,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寓搬,到底是詐尸還是另有隱情珍昨,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布句喷,位于F島的核電站镣典,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏唾琼。R本人自食惡果不足惜兄春,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望锡溯。 院中可真熱鬧赶舆,春花似錦、人聲如沸祭饭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽倡蝙。三九已至九串,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寺鸥,已是汗流浹背猪钮。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留析既,地道東北人躬贡。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓谆奥,卻偏偏與公主長得像眼坏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子酸些,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

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