iOS逆向環(huán)境搭建

一瑰抵、Mac遠(yuǎn)程登錄到iPhone

1.我們經(jīng)常在Mac的終端上,通過敲一些命令來完成一些操作
iOS和Mac OS X都是基于Darwin(蘋果的一個(gè)基于Unix的開源系統(tǒng)內(nèi)核)握侧,所以iOS中同樣支持終端的命令行操作
2.在逆向工程中,我們經(jīng)常會(huì)通過命令行來操縱iPhone
為了能夠讓Mac終端中的命令行能作用在iPhone上企蹭,我們得讓Mac和iPhone建立連接
通過Mac遠(yuǎn)程登錄到iPhone的方式建立連接


屏幕快照 2018-09-23 上午11.30.55.png

二雳攘、SSH、OpenSSH

1.SSH,Secure Shell的縮寫任柜,意為“安全外殼協(xié)議”卒废,是一種可以為遠(yuǎn)程登錄提供安全保障的協(xié)議
使用SSH,可以把所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密宙地,“中間人”攻擊方式就不可能實(shí)現(xiàn)摔认,能防止DNS欺騙和IP欺騙。
2.OpenSSH
是SSH協(xié)議的免費(fèi)開源實(shí)現(xiàn)
可以通過OpenSSH的方式讓Mac遠(yuǎn)程登錄到iPhone

三宅粥、使用OpenSSH遠(yuǎn)程登錄

1.在iPhone上通過Cydia安裝OpenSSH工具(軟件源http://apt.saurik.com

圖片 1.png

2.SSH是通過TCP協(xié)議通信参袱,所以要確保Mac和iPhone在同一局域網(wǎng)下,比如連接著同一個(gè)WiFi秽梅。
在Mac的終端輸入ssh 賬戶名@服務(wù)器主機(jī)地址,服務(wù)器地址可以進(jìn)入網(wǎng)絡(luò)詳情中的IP地址

ssh root@192.168.0.109(這里的服務(wù)器是手機(jī))

初始密碼alpine

登錄成功后就可以使用終端命令行操作iPhone

退出登錄命令是exit

四抹蚀、root、mobile

1.iOS下有2個(gè)常用賬戶:root企垦、mobile
root:最高權(quán)限賬戶环壤,HOME是/var/root mobile:普通權(quán)限用戶,只能操作一些普通文件竹观,不能操作系統(tǒng)級(jí)別的文件镐捧,HOME(當(dāng)前登錄的用戶的主文件夾)是/var/mobile
登錄mobile用戶:root mobile@服務(wù)器主機(jī)地址
root和mobile用戶的初始登錄沒密碼都是alpine

圖片 2.png

2.最好修改一下root和mobile用戶的登錄密碼(登錄root賬戶后潜索,分別通過passwd、passwd mobile完成)


圖片 3.png

五懂酱、SSL竹习、OpenSSL

1.SSL (Secure Sockets Layer的縮寫),是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議列牺,在傳輸層對(duì)網(wǎng)絡(luò)連接進(jìn)行加密
2.OpenSSL
SSL的開源實(shí)現(xiàn)
絕大多數(shù)HTTPS請(qǐng)求等價(jià)于:HTTP+OpenSSL

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


屏幕快照 2018-09-23 下午1.01.06.png

六整陌、SSH的版本

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

七、SSH的通信過程

SSH的通信過程可以分為3大主要階段

1.建立安全連接

(1)在建立安全連接過程中瞎领,服務(wù)器會(huì)提供自己的身份證明


屏幕快照 2018-09-23 下午2.14.39.png

(2)如果客戶端并無服務(wù)器端的公鑰信息泌辫,就會(huì)詢問是否連接次服務(wù)器


圖片 6.png

(3)在建立安全連接過程中,可能會(huì)遇到以下錯(cuò)誤信息:提醒服務(wù)器的身份信息發(fā)生了變更


圖片 7.png

如果確定要連接此服務(wù)器九默,刪除掉之前服務(wù)器的公鑰信息就行
ssh-keygen -R 服務(wù)器IP地址

或者直接打開known_hosts文件刪除服務(wù)器的公鑰信息就行

vim ~/.ssh/known_hosts
2.客戶端認(rèn)證

(1)SSH-2提供了2種常用的客戶端認(rèn)證方式
基于密碼的客戶端認(rèn)證
使用賬號(hào)和密碼即可認(rèn)證

基于密鑰的客戶端認(rèn)證
免密碼認(rèn)證
最安全的一種認(rèn)證方式

SSH-2默認(rèn)會(huì)優(yōu)先嘗試“密鑰認(rèn)證”震放,如果認(rèn)證失敗,才會(huì)嘗試“密碼認(rèn)證”
(2)在客戶端生成一對(duì)相關(guān)聯(lián)的密鑰(Key Pair):一個(gè)公鑰(Public Key)驼修,一個(gè)私鑰(Private Key)
ssh-keygen
一路敲回車鍵(Enter)即可
OpenSSH默認(rèn)生成的是RSA密鑰殿遂,可以通過-t參數(shù)指定密鑰類型
生成的公鑰:~/.ssh/id_rsa.pub
生成的私鑰:~/.ssh/id_rsa

(3)把客戶端的公鑰內(nèi)容追加到服務(wù)器的授權(quán)文件(~/.ssh/authorized_keys)尾部

ssh-copy-id root@服務(wù)器主機(jī)地址

需要輸入root用戶的登錄密碼
ssh-copy-id會(huì)將客戶端/.ssh/id_rsa.pub的內(nèi)容自動(dòng)追加到服務(wù)器的/.ssh/authorized_keys尾部

注意:由于是在~文件夾下操作,所以上述操作僅僅是解決了root用戶的登錄問題(不會(huì)影響mobile用戶)

3.數(shù)據(jù)傳輸

可以使用ssh-copy-id將客戶端的公鑰內(nèi)容自動(dòng)追加到服務(wù)器的授權(quán)文件尾部乙各,也可以手動(dòng)操作
復(fù)制客戶端的公鑰到服務(wù)器某路徑

scp ~/.ssh/id_rsa.pub root@服務(wù)器主機(jī)地址:~

scp是secure copy的縮寫墨礁,是基于SSH登錄進(jìn)行安全的遠(yuǎn)程文件拷貝命令,把一個(gè)文件copy到遠(yuǎn)程另外一臺(tái)主機(jī)上
上面的命令行將客戶端的/.ssh/id_rsa.pub拷貝到了服務(wù)器的地址

SSH登錄服務(wù)器

ssh root@服務(wù)器主機(jī)地址

需要輸入root用戶的登錄密碼

在服務(wù)器創(chuàng)建.ssh文件夾

mkdir .ssh

追加公鑰內(nèi)容到授權(quán)文件尾部

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

刪除公鑰

rm ~/id_rsa.pub

八耳峦、22端口

1.端口是設(shè)備對(duì)外提供服務(wù)的窗口恩静,每個(gè)端口都有個(gè)端口號(hào)(范圍是0~65535,共2^16個(gè))
2.有些端口號(hào)是保留的蹲坷,已經(jīng)規(guī)定了用途驶乾,比如
(1)21端口提供FTP服務(wù)
(2)80端口提供HTTP服務(wù)
(3)22端口提供SSH服務(wù)(可以查看/etc/ssh/sshd_config的Port字段)
(4)更多保留端口號(hào):https://baike.baidu.com/item/端口號(hào)/10883658#4_3
3.iPhone默認(rèn)是使用22端口進(jìn)行SSH通信,采用的是TCP協(xié)議

屏幕快照 2018-09-23 下午1.21.26.png

九冠句、通過USB進(jìn)行SSH登錄

1.默認(rèn)情況下轻掩,由于SSH走的是TCP協(xié)議,Mac是通過網(wǎng)絡(luò)連接的方式SSH登錄到iPhone懦底,要求iPhone連接WiFi
2.為了加快傳輸速度唇牧,也可以通過USB連接的方式進(jìn)行SSH登錄
Mac上有個(gè)服務(wù)程序usbmuxd(它會(huì)開機(jī)自動(dòng)啟動(dòng)),可以將Mac的數(shù)據(jù)通過USB傳輸?shù)絠Phone


屏幕快照 2018-09-23 下午1.37.29.png

十聚唐、usbmuxd的使用

1.下載usbmuxd工具包(下載v1.0.8版本丐重,主要用到里面的一個(gè)python腳本:tcprelay.py)

https://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz

2.將iPhone的22端口(SSH端口)映射到Mac本地的10010端口

cd ~/Documents/usbmuxd-1.0.8/python-client

python tcprelay.py -t 22:10010

加上-t參數(shù)是為了能夠同時(shí)支持多個(gè)SSH連接


圖片 5.png

注意:要想保持端口映射狀態(tài),不能終止此命令行(如果要執(zhí)行其他終端命令行杆查,請(qǐng)新開一個(gè)終端界面)

不一定非要10010端口扮惦,只要不是保留端口就行

3.端口映射完畢后,以后如果想跟iPhone的22端口通信亲桦,直接跟Mac本地的10010端口通信就可以了

新開一個(gè)終端界面崖蜜,SSH登錄到Mac本地的10010端口(以下方式2選1)

ssh root@localhost -p 10010
ssh root@127.0.0.1 -p 10010

localhost是一個(gè)域名浊仆,指向的IP地址是127.0.0.1,本機(jī)虛擬網(wǎng)卡的IP地址
usbmuxd會(huì)將Mac本地10010端口的TCP協(xié)議數(shù)據(jù)豫领,通過USB連接轉(zhuǎn)發(fā)到iPhone的22端口

4.遠(yuǎn)程拷貝文件也可以直接跟Mac本地的10010端口通信

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

將Mac上的/Desktop/1.txt文件抡柿,拷貝到iPhone上的/test路徑
注意:scp的端口號(hào)參數(shù)是大寫的-P

十一、sh腳本文件

1.我們可以將經(jīng)常執(zhí)行的一系列終端命令行放到sh腳本文件中(shell),然后執(zhí)行腳本文件
2.可以通過sh等恐、bash洲劣、source命令來執(zhí)行sh腳本文件
(1)sh、bash
當(dāng)前shell環(huán)境會(huì)啟動(dòng)一個(gè)子線程來執(zhí)行腳本文件课蔬,執(zhí)行后返回到父進(jìn)程的shell環(huán)境執(zhí)行cd時(shí)囱稽,在子線程中會(huì)進(jìn)入到cd的目錄,但是在父進(jìn)程中環(huán)境并沒有改變二跋,也就是目錄沒有改變
(2)source
在當(dāng)前的shell環(huán)境下執(zhí)行腳本文件
執(zhí)行cd后會(huì)跳轉(zhuǎn)到cd的目錄
source可以用一個(gè)點(diǎn)“.”來替代战惊,比如“. test.sh”

十二、iOS終端的中文亂碼問題

1.默認(rèn)情況下同欠,iOS終端不支持中文輸入和顯示
2.解決方案:新建一個(gè)~/.inpputrc文件样傍,文件內(nèi)容是
(1)不將中文字符轉(zhuǎn)化為轉(zhuǎn)義序列

set convert-meta off

(2)允許向終端輸出中文

set output-meta on

(3)允許向終端輸入中文

set meta-flag on
set input-meta on

3.如果是想在終端編輯文件內(nèi)容,可以通過Cydia安裝一個(gè)vim(軟件源http://apt.saurik.com)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末铺遂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子茎刚,更是在濱河造成了極大的恐慌襟锐,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膛锭,死亡現(xiàn)場(chǎng)離奇詭異粮坞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)初狰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門莫杈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人奢入,你說我怎么就攤上這事筝闹。” “怎么了腥光?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵关顷,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我武福,道長(zhǎng)议双,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任捉片,我火速辦了婚禮平痰,結(jié)果婚禮上汞舱,老公的妹妹穿的比我還像新娘。我一直安慰自己宗雇,他們只是感情好兵拢,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著逾礁,像睡著了一般说铃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘹履,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天腻扇,我揣著相機(jī)與錄音,去河邊找鬼砾嫉。 笑死幼苛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的焕刮。 我是一名探鬼主播舶沿,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼配并!你這毒婦竟也來了括荡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤溉旋,失蹤者是張志新(化名)和其女友劉穎畸冲,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體观腊,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡邑闲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了梧油。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苫耸。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖儡陨,靈堂內(nèi)的尸體忽然破棺而出褪子,到底是詐尸還是另有隱情,我是刑警寧澤迄委,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布褐筛,位于F島的核電站,受9級(jí)特大地震影響叙身,放射性物質(zhì)發(fā)生泄漏渔扎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一信轿、第九天 我趴在偏房一處隱蔽的房頂上張望晃痴。 院中可真熱鬧残吩,春花似錦、人聲如沸倘核。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽几莽。三九已至哥牍,卻和暖如春碉钠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鳍征。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工掌猛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留熔脂,地道東北人绰疤。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓铜犬,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親轻庆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子癣猾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344