在本文中,我將介紹如何開始使用易受攻擊的iOS應用程序。該死的易受攻擊的iOS應用程序(DVIA)是我編寫的一個iOS應用程序,它為移動安全愛好者/專業人士或學生提供了一個平臺,在法律環境中測試他們的iOS滲透測試技能。此應用程序涵蓋了在iOS應用程序中發現的所有常見漏洞(遵循OWASP十大移動風險),並包含用戶可以嘗試的幾個挑戰。每一個挑戰都伴隨著一篇文章,用戶可以通過閱讀來瞭解更多關於該主題的資訊。這個應用程序也可以被iOS應用程序安全的絕對初學者使用,因為DVIA附帶的教程是為初學者編寫的。用戶也可以購買一個全面的解決方案指南,為DVIA如果他們想。DVIA也是開源的,它的Github頁面可以在這裡找到。
安裝DVIA
注意:DVIA僅支持IOS 7設備,不支持舊版本的IOS。DVIA還支持64比特設備。請確保下載最新版本的DVIA。
首先要做的是在iOS設備上設定iOS筆測試環境。你也可以使用模擬器稽核DVIA,但我建議你在設備上試用。您可以閱讀有關為iOS7設定筆測試環境的文章。一旦你建立了環境,有一個非常好的視頻創建凱爾萊文,他談到了在你的設備上安裝DVIA的多種方法。
[youtube id=“PwES8Sk00wk”width=“600”height=“350”]
無論如何,以下是在您的設備上安裝DVIA的文字說明。如果你已經在你的設備上安裝了DVIA,你可以跳到下一個關於探索DVIA的部分。
在使用Xcode的系統或設備上運行
從這裡下載最新的易受攻擊的iOS應用程序原始程式碼。
請注意,您需要在電腦上安裝Xcode才能生成此應用程序。一旦安裝了最新版本的Xcode,您就可以使用Xcode在您的電腦上運行應用程序,並根據需要在模擬器上執行所有分析。
請打開DamnVulnerableIOSApp.xcworkspace以運行項目。不要使用DamnVulnerableIOSApp.xcodeproj檔案,因為生成將失敗。這是因為DVIA使用椰子莢。
要使用iOS模擬器在系統上運行應用程序,只需在選擇目標後運行應用程序(Cmd+R),應用程序將安裝在模擬器上。
要使用原始程式碼在設備上安裝和運行應用程序,您需要具有有效的設定設定檔。這就需要購買iOS開發者程式,每年花費99美元。轉到DVIA項目,選擇目標->設定->程式碼簽名,並確保選擇了正確的程式碼簽名標識和設定設定檔。
在設備上複製.app檔案並使用uicache
從下載頁面下載.ipa檔案,將其名稱從DamnVulnerableIOSApp.ipa更改為DamnVulnerableIOSApp.zip並解壓縮此檔案。這將解壓縮到名為Payload的資料夾。在其中,將有一個名為DamnVulnerableIOSApp.app的檔案。然後使用Scp將.app檔案複製到設備上的/Applications目錄。也可以使用sftp或實用工具iExplorer上載此應用程序。
現在以移動用戶身份登入,使用su命令獲取根許可權並授予DVIA二進位可執行許可權。然後使用exit命令作為移動用戶返回,並使用uicache命令安裝應用程序。如果這不起作用,您可以重新啟動設備或重試此方法。
使用IPA安裝程式
需要安裝運行IOS 7和Appsync的設備。請注意,我們不提倡使用Appsync,囙此只能將此方法用作最後一個替代方法。
在這裡下載最新的IPA該死的易受攻擊的IOS應用程序。
安裝應用程序的方法之一是使用終端實用程式IPA安裝程式控制台。請確保將其安裝到設備上。
現在sftp到你的設備上,上傳我們剛剛下載的IPA檔案。
現在使用命令“ipaainstaller DamnVulnerableIOSApp.ipa”或“installipa DamnVulnerableIOSApp.ipa”將應用程序安裝到您的設備上。
使用AppSync
確保設備上已安裝AppSync。要在設備上安裝AppSync,請執行以下步驟。
- 在您的設備上啟動Cydia應用程序
- 選擇管理
- 選擇來源
- 選擇編輯
- 選擇“添加”
- 添加repo.hackyouriphone.org原始程式碼
- 現在蒐索AppSync
- 安裝AppSync for IOS 7+。
現在按兩下您剛剛在電腦上下載的ipa檔案。這將把應用程序添加到iTunes中。現在轉到iTunes,選擇DVIA應用程序上的安裝選項並將其同步到您的設備。這將在您的設備上安裝應用程序。
探索DVIA
DVIA面臨著許多挑戰,包括iOS應用程序中發現的大多數常見漏洞。當前的漏洞和挑戰清單包括:
- 不安全的資料存儲
- 越獄檢測
- 運行時操作
- 傳輸層安全
- 用戶端注入
- 資訊披露
- 破譯的密碼學
- 應用程序修補
- 通過不可信輸入做出安全決策
- 側通道數據洩漏
您只需從應用程序的左側輕掃,就可以看到可以嘗試的漏洞和挑戰的清單。由於幾乎每個漏洞都附帶了相關教程,囙此在嘗試挑戰之前,您可以閱讀該教程以瞭解有關該特定漏洞的更多資訊。
稽核DVIA
好吧,讓我們試著解决一些挑戰。你可以在設備和模擬器上稽核DVIA,但是我建議你在設備上進行所有稽核。讓我們打開用戶端注入部分。
讓我們輸入一個隨機的名字,然後按enter,比如Apple。
第一個挑戰是顯示一個簡單的注射警報。從上圖可以清楚地看到,文字被添加到此UIWebview中。如果這個輸入沒有得到正確的驗證,我們可能可以注入一些將在UIWebview中執行的Javascript。我們輸入以下內容作為輸入。
太棒了,看起來注射成功了。對於其他挑戰,可以使用Javascript調用設備上的本機函數。你怎麼做到的?讓我給你一個提示,看看URL方案和它們的用途。
現在讓我們繼續進行一些其他的挑戰。讓我們看看越獄檢測部分,並嘗試解决第一個挑戰。我們的任務是讓應用程序認為它不是越獄,即使我們是在越獄設備上運行應用程序。
囙此,讓我們通過ssh進入設備並通過導航到應用程序二進位檔案所在的資料夾並使用命令類dump DamnVulnerableIOSApp來轉儲此應用程序的類資訊。
向下滾動一點,我們會看到函數(BOOL)isJailbroken;在返回BOOL值的JailbreakDetectionVC類中。
看起來這個方法是用來檢查設備是否越獄的。如果我們修改這個方法的實現以返回NO,那麼我們的任務就完成了。讓我們使用cytcript覆蓋這個方法的實現。首先,讓我們通過查找應用程序的行程ID並使用命令cytcript-p PID來鉤住應用程序。請確保應用程序在前臺運行,否則我們將無法連接到此應用程序。
現在在cytcript解譯器中使用以下命令修改實現。
JailbreakDetectionVC.messages['isJailbroken']=函數(){return NO};
現在,如果點擊應用程序中的越獄測試1按鈕,您將看到警報顯示裝置未越獄,即使我當前運行應用程序的設備實際上已越獄。
同樣,您也可以在應用程序中嘗試其他挑戰。正如我之前所說的,DVIA是開源的,但是我假設當你稽核應用程序以解决挑戰時,你會做一個黑盒稽核,而不是查看原始程式碼。如果你不能解决一些挑戰,你可以購買解決方案。此次收購的收益支持了DVIA項目,並為我們提供了改進應用程序、新增新挑戰等的專門時間。
歡迎對本申請的任何迴響和意見。我的下一個目標是隨著時間的推移在DVIA中新增更多的挑戰和漏洞。我希望你喜歡使用和學習DVIA,就像我喜歡開發它一樣。