iOS環(huán)境下的中間人攻擊風(fēng)險淺析

0x00概述

中間人攻擊(Man-in-the-Middle Attack没龙,簡稱“MITM攻擊”)是一種“間接”的入侵攻擊,這種攻擊模式是通過各種技術(shù)手段將受入侵者控制的一臺計算機虛擬放置在網(wǎng)絡(luò)連接中的兩臺通信計算機之間,這臺計算機就稱為“中間人”。通過中間人攻擊可以竊取信息、進行篡改、欺騙等多種攻擊犁功。

對于Android平臺上的中間人攻擊已經(jīng)討論的比較多,今天來聊聊iOS平臺上的中間人攻擊婚夫,以及iOS的可信證書管理浸卦。

0x01中間人攻擊

在未做特殊說明的情況下,本文所有實驗環(huán)境為:

iPhone 5 + iOS 8.1.2 + 已越獄案糙。

1.1 中間人攻擊分級

iOS平臺上根據(jù)中間人攻擊的難度限嫌,可以將中間人攻擊分為3個等級:

1) level1:在沒用向手機中安裝攻擊者證書的情況下可以進行中間人攻擊

2) level2:在向手機中安裝攻擊者證書的情況下可以進行中間人攻擊

3) level3:在向手機中安裝攻擊者證書的情況下也不可以進行中間人攻擊

對于這三種情況靴庆,我們以一個例子分別對這三種情況進行說明。借用Owasp關(guān)于iOS https中間人演示的例子萤皂,稍做修改撒穷。正常情況下,程序啟動時如圖1裆熙,點擊“Fetch Secret”程序請求server端數(shù)據(jù)并顯示端礼,如圖2。

圖 1 啟動界面
圖 2 正常獲取數(shù)據(jù)

1.1.1 不導(dǎo)入證書可中間人

在此次連接的NSURLConnection對象的delegate類中只實現(xiàn)一個connection:didReceiveAuthenticationChallenge:方法入录,如圖3蛤奥。

圖 3 連接校驗方法

設(shè)置burp suite,開啟代理僚稿,如圖4凡桥。

圖 4 burp suite設(shè)置

手機設(shè)置代理為burp suite運行pc的地址,如圖5蚀同。

圖 5 手機代理設(shè)置

運行程序缅刽,點擊“Fetch Secret”,程序正常獲取到了與圖2相同的數(shù)據(jù)蠢络,burp suite也截獲了所有信息衰猛,如圖6,中間人攻擊成功刹孔。

圖 6 burp suite截獲數(shù)據(jù)

1.1.2 導(dǎo)入證書可中間人

修改程序啡省,在NSURLConnection對象的delegate類中實現(xiàn)connection:willSendRequestForAuthenticationChallenge:方法,如圖7髓霞。

圖 7 連接校驗方法

其他設(shè)置與1.1.1小節(jié)完全相同卦睹,程序發(fā)現(xiàn)連接異常,終止獲取數(shù)據(jù)方库,如圖8结序,burp suite也理所當然獲取數(shù)據(jù)失敗。

圖 8 獲取數(shù)據(jù)失敗

此時纵潦,向手機中安**urp suite證書笼痹,如圖9。

圖 9 安裝*burp證書

重新打開應(yīng)用酪穿,點擊“Fetch Secret”,應(yīng)用正常獲取數(shù)據(jù)晴裹,burp suite也截獲了全部數(shù)據(jù)被济,中間人攻擊成功。

1.1.3 導(dǎo)入證書不可中間人

繼續(xù)對程序進行修改涧团,將公鑰證書放入應(yīng)用中只磷,并修改connection:didReceiveAuthenticationChallenge:方法在連接過程中獲取證書信息经磅,對server端證書進行強校驗,如圖10钮追。同時预厌,注釋掉connection:willSendRequestForAuthenticationChallenge:方法,因為如圖實現(xiàn)了這個方法元媚,方法connection:didReceiveAuthenticationChallenge:將不會被調(diào)用轧叽。

圖 10 連接校驗方法

其他設(shè)置不變,手機中依然安裝有burp suite證書刊棕,打開應(yīng)用炭晒,點擊“Fetch Secret”,應(yīng)用無法正常獲取數(shù)據(jù)甥角,如圖11网严,burp suite也不能截獲數(shù)據(jù),中間人攻擊失敗嗤无。


圖 11 證書錯誤1
圖 12 證書錯誤2

1.1.4 一些建議

一般來說震束,建議應(yīng)用信任手機中的所有證書即可,在應(yīng)用中置入公鑰證書對連接進行強校驗確實最為安全当犯,但會引發(fā)諸多問題垢村,如證書更新、證書過期灶壶、證書作廢等肝断。

如果需要更新客戶端證書,都必須升級客戶端版本驰凛,而升級客戶端是一個較為漫長的過程胸懈。 例如證書被黑客竊取,需要緊急作廢證書恰响,而許多用戶卻有沒有及時升級客戶端的習(xí)慣趣钱,這將可能導(dǎo)致大面積用戶使用出現(xiàn)網(wǎng)絡(luò)異常的情況。就目前來看胚宦,也確實很少看到有應(yīng)用將安全級別做到level3首有。

0x02可信證書管理

上一章節(jié)中談到向手機中導(dǎo)入可信證書的問題,小生在編寫一個iOS工具的時候無意發(fā)現(xiàn)iOS證書管理的一個有趣的地方枢劝。通過“Settings”->“General”->“Profiles”可以查看當前設(shè)備信任的證書列表井联,但這個列表就真的是設(shè)備信任的證書列表嗎?

2.1奇葩的中間人攻擊情形

按照上一章節(jié)建議您旁,將應(yīng)用防中間人級別設(shè)置為level2烙常,即應(yīng)用信任當前設(shè)備上的所有證書,如果要使用burp suite對該應(yīng)用進行中間人攻擊鹤盒,需要向設(shè)備中安**urp的證書蚕脏,而目前設(shè)備上的信任證書如圖13所示侦副,設(shè)備上只有一個用于連接公司內(nèi)網(wǎng)的員工證書。

圖 13 證書列表

在這樣的情況下驼鞭,burp suite應(yīng)該不能獲取到應(yīng)用的通信內(nèi)容餐曹,而結(jié)果如何了蜀备。為了排除結(jié)果受到iOS系統(tǒng)在https通信時的10分鐘緩存機制,先對設(shè)備進行重啟或靜置10分鐘;啟動應(yīng)用進行通信讲婚,發(fā)現(xiàn)應(yīng)用正常獲取到了與圖2所示相同的數(shù)據(jù)忍些,而burp suite也成功截獲了與圖6所示相同的通信內(nèi)容撬统。這是什么鬼……

2.2 TrustStore.sqlite3

iOS系統(tǒng)下有一個有一個sqlite3文件缝呕,其絕對路徑為:

“/private/var/Keychains/TrustStore.sqlite3”

該文件中存儲的才是當前設(shè)備真正信任的證書列表,而通過“Settings”->“General”->“Profiles”查看到的證書列表與該文件中存儲的證書列表可以不同步皂甘,如果我們手動對該sqlite3文件進行更改玻驻,就能讓手機實際的可信證書列表與在“Profiles”中看到的完全不一樣。小生寫了一個工具偿枕,對該sqlite3文件進行管理璧瞬,查看該文件中的存儲,如圖14渐夸。

圖 14 證書列表

其中嗤锉,ID為0的證書是圖12中看到的用于連接公司內(nèi)網(wǎng)的員工證書;ID為1的證書為burp suite證書墓塌,而這張證書沒有在“Profiles”中顯示瘟忱。這就是導(dǎo)致能中間人的原因。

我們刪除掉該sqlite3文件中的ID為1的證書苫幢,如圖15访诱,并對設(shè)備進行重啟或靜置10分鐘,再進行2.1章節(jié)中的實驗韩肝。

圖 15 刪除burp證書

打開應(yīng)用触菜,點擊“Fetch Secret”,應(yīng)用報錯哀峻,如圖16涡相。

圖 16 證書錯誤

如果重新將burp suite證書手動插入TrustStore.sqlite3文件中,如圖16剩蟀,并對設(shè)備進行重啟或靜置10分鐘催蝗,再進行2.1章節(jié)中的實驗,發(fā)現(xiàn)中間人攻擊成功育特。而本文中對TrustStore.sqlite3文件的所有手動操作生逸,都不會影響到“Profiles”中的任何顯示,“Profiles”始終只顯示一張員工證書。

圖 17 插入證書

2.3不顯示證書的中間人攻擊(越獄后環(huán)境)

根據(jù)2.1和2.2小節(jié)的描述槽袄,如果攻擊者通過越獄插件、甚至是通過某些猥瑣手段逃過App Store檢查的惡意應(yīng)用锋谐,對已越獄的iphone手機上的文件“/private/var/Keychains/TrustStore.sqlite3”進行修改遍尺,向其中插入了一張攻擊者證書,例如burp suite證書涮拗,攻擊者就可以在受害者的網(wǎng)關(guān)上神不知鬼不覺的進行中間人攻擊(當然level3安全級別下的應(yīng)用是沒門的)乾戏,受害者完全不知情,因為受害者通過“Settings”->“General”->“Profiles”查看可信證書的時候三热,不會發(fā)現(xiàn)任何異常鼓择,即可以在不顯示證書的情況下竊取受害者數(shù)據(jù)、進行篡改等就漾。

所以呐能,對于已越獄的手機,不要以為“Settings”->“General”->“Profiles”下沒有安裝一些奇奇怪怪的證書就高枕無憂了抑堡。

0x03小節(jié)

iOS系統(tǒng)的中間人攻擊方法與防范措施摆出,總結(jié)在在0x01章節(jié)中,小生認為普通應(yīng)用只需要信任當前設(shè)備上的所有可信證書即可首妖。關(guān)于iOS系統(tǒng)的可信證書列表偎漫,越獄過的朋友還是去檢查下“/private/var/Keychains/TrustStore.sqlite3”文件中是否有“Profiles”中未顯示或顯示不對等的情況。

圖18 噢噢
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末有缆,一起剝皮案震驚了整個濱河市象踊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌棚壁,老刑警劉巖杯矩,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異灌曙,居然都是意外死亡菊碟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門在刺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逆害,“玉大人,你說我怎么就攤上這事蚣驼∑悄唬” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵颖杏,是天一觀的道長纯陨。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么翼抠? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任咙轩,我火速辦了婚禮,結(jié)果婚禮上阴颖,老公的妹妹穿的比我還像新娘活喊。我一直安慰自己,他們只是感情好量愧,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布钾菊。 她就那樣靜靜地躺著,像睡著了一般偎肃。 火紅的嫁衣襯著肌膚如雪煞烫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天累颂,我揣著相機與錄音滞详,去河邊找鬼。 笑死喘落,一個胖子當著我的面吹牛茵宪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瘦棋,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼稀火,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了赌朋?” 一聲冷哼從身側(cè)響起凰狞,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沛慢,沒想到半個月后赡若,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡团甲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年逾冬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躺苦。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡身腻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出匹厘,到底是詐尸還是另有隱情嘀趟,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布愈诚,位于F島的核電站她按,受9級特大地震影響牛隅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜酌泰,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一媒佣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宫莱,春花似錦丈攒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽际插。三九已至碘耳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間框弛,已是汗流浹背辛辨。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瑟枫,地道東北人斗搞。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像慷妙,于是被迫代替她去往敵國和親僻焚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

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