網上有很多關於Windows和Linux滲透測試應用程序的指南和信息。不幸的是,在macOS中沒有一個幫助我們完成滲透測試的指南。這意味著我們必須花費更多的時間在網絡上搜索,並嘗試不同的工具和技術,來找到最有效的測試方法。隨著macOS及其應用程序的普及,針對它們的攻擊越來越多。為了確保這些應用程序的安全性,需要進行滲透測試。
首先,我們將定義什麼是macOS應用程序。此外,我們將用Swift編程語言創建一個簡單的應用程序,並配置應用程序沙盒功能。它還涵蓋了基本的GUI和網絡測試,包括Burp Suite的配置以及SIP與此的關係。
應用程序結構讓我們從定義什麼是macOS應用程序開始,macOS應用程序是為在蘋果的macOS操作系統(以前的OS X)上運行而設計的軟件,它由一組文件和資源以特定格式捆綁在一起,通常有一個用戶界面。一些流行的macOS應用程序包括Safari、Chrome和Word。 Swift和Objective-C是創建macOS應用程序最常用的編程語言,但macOS也支持其他語言,如C和c++。
許多應用程序都是從App Store獲得的,但用戶也可以選擇從第三方資源下載和安裝應用程序。安裝後,應用程序通常位於/Applications或~/Applications路徑,但也可以存儲在其他位置。例如,系統應用程序是通過/system/applications路徑訪問的。需要注意的是,macOS應用程序可以通過查找“.app”擴展來區分,並存儲為包,也稱為應用程序包(Application Bundle):包(bundle)是一個具有標準化層次結構的目錄,通常包含可執行代碼和該代碼使用的資源。包扮演著許多不同的角色:應用、應用擴展、框架和插件都是包。包也可以包含其他包。
雖然包在Finder中顯示為單個文件,但它實際上是一個目錄。要查看應用程序的內容,右鍵單擊文件名並選擇“顯示包內容”。在Content目錄中,你可以找到如下所示的幾個子目錄:
應用程序內容
macOS應用程序包的基本結構包括以下內容:
Info.plist:這個文件包含應用程序的配置信息,例如包標識符和包版本;
MacOS:這個目錄包含主要的可執行文件;
Resources:該目錄包含應用程序的資源,如圖像、本地化和接口文件;
你可以在應用程序包中找到的其他目錄:
Frameworks:此目錄包含由主可執行文件加載的框架和動態庫;
Plugins:這個目錄包含應用程序擴展和插件,它們是擴展應用程序功能的軟件組件。插件通常作為共享庫開發,提供特定應用程序定義的API和接口。他們可以為特定的應用程序添加新功能,例如提高殘疾人可用性的無障礙插件。另一方面,擴展是一種修改操作系統行為的插件,例如向Spotlight搜索功能添加新功能;
Library:此目錄可能包含各種子目錄,包括:
LaunchServices:該目錄包含由服務管理框架安裝的特權助手工具,這些工具允許應用程序和進程執行需要管理權限的系統級任務。它們在後台運行,使用進程間通信(IPC)機制(如Mach消息或XPC)與主應用程序通信。這些工具通常作為啟動守護進程或啟動代理實現,負責管理後台進程。應用程序代理在用戶登錄時啟動並繼續在後台運行,而應用程序守護進程則從系統啟動開始在後台持續運行,它們分別在/Library/LaunchAgents和/Librare/LaunchDaemons中的plist文件中定義。
SystemExtensions:該目錄包括系統擴展,允許網絡擴展和端點安全解決方案等軟件在不需要內核級訪問的情況下擴展macOS的功能。如今,這些擴展被用作內核擴展(kext)的替代方案。
XPCServices:該目錄包括macOS應用程序中用於實現進程之間通信的XPC服務。 XPC服務被實現為一個單獨的二進制可執行文件,它在後台運行,可以由多個進程使用。
完整的列表可以在蘋果的文檔中找到。
虛假應用程序我們搜索了一個包含一些錯誤配置的虛假應用程序,例如:
網絡上未加密的數據;
各種應享權利;
無效的代碼簽名;
加載可被劫持的dylib;
但是我們找不到一個適合我們需要的,因此,我們決定創建自己的應用程序。
虛假應用程序
幸運的是,我們發現了一個有趣的博客,在整個Swift語言應用程序開發過程中為我們提供了有用的指導。
在構建我們的應用程序時,除了一個基本的應用程序外,我們還添加了一些代碼,其中包括向服務器發送HTTP請求的功能。
你可以在下面找到“複雜”應用程序的代碼(代碼片段1):
代碼片段1:虛假應用程序代碼
通過在Xcode中創建一個新的macOS應用程序,它將獲得應用程序沙盒權限和默認功能集。
為了允許我們的應用程序創建網絡請求,我們添加了一個用於輸出連接的功能,該功能將com.apple.security.network.client授權添加到我們的應用程序中。
Xcode中的應用沙盒功能
應用程序沙盒限制訪問系統資源和macOS應用程序中的用戶數據,可以通過授權進行訪問。
功能和授權是決定應用程序權限和訪問級別的兩種機制。功能定義了應用程序需要使用的功能,比如攝像頭或互聯網。同時,授權授予應用程序與操作系統和其他應用程序交互的訪問權限。
對於某些操作,我們需要添加特定的功能,例如:
為了訪問互聯網,我們添加了傳入/傳出連接的功能,這將自動為應用程序提供com.apple.security.network.*權限。
為了訪問硬件,例如內置攝像頭,我們添加了特定硬件的功能,該功能為應用程序提供了com.apple.security.device.*權限。
為了訪問文件,我們添加了特定文件和權限的功能,為應用程序提供了com.apple.security.files.*權限。
默認情況下,在macOS 10.15或更高版本中,所有Mac應用程序必須經過蘋果的“公證”才能啟動。請參閱蘋果文檔公證macOS軟件之前發布的更多細節。如果我們必須通過App Store傳播應用程序,則需要通過額外的安全檢查進行公證。
我們可以通過以下步驟查看虛假應用的應用包:
點擊Xcode菜單中的“Product”;
選擇“Archive.”;
右鍵單擊並從上下文菜單中選擇“在Finder中顯示”;
GUI測試與Windows和Linux客戶端一樣,第一步將是識別常見的用戶輸入界面,並測試它們的安全漏洞,例如SQL注入或跨站點腳本。
此外,了解應用程序的行為和功能也是必不可少的。這包括了解應用程序如何處理用戶輸入,它存儲和收集什麼數據,以及它如何與外部系統交互。
網絡測試分析應用程序和服務器之間的網絡通信對於滲透測試至關重要。我們可以通過檢查網絡流量來檢測未經加密或通過不安全通道傳輸的敏感信息。
然而,在macOS中,我們默認啟用SIP。首先,讓我們了解SIP是什麼。
系統完整性保護SIP(系統完整性保護)是一種安全功能,可防止惡意軟件修改Mac系統上受保護的文件和文件夾。它限制了root用戶帳戶,並限制了root用戶可以在操作系統的受保護部分執行的操作。
系統完整性保護包括幾種機制,包括:
文件系統保護:防止對/System、/sbin、/bin和/usr目錄以及某些系統文件和文件夾進行任何修改。
運行時保護:SIP限制了附加調試器和防止代碼注入的能力。
內核擴展保護:將內核擴展(kext)的安裝限制為僅限蘋果批准和簽署的內核擴展。
macOS中的SIP機制阻止我們監控網絡活動,因此禁用SIP對於我們的需求是必要的。我們不建議禁用SIP,但我們將禁用它進行測試。
要禁用SIP,請遵循以下步驟,在恢復模式下從實用程序菜單中啟動終端,運行命令csrutil disable並重新啟動macOS。使用用戶身份登錄後,打開終端並執行命令csrutil status,查看SIP是否成功關閉。
重要的是要記住,禁用SIP可能會使你的系統容易受到惡意攻擊,因此請確保在完成研究後重新啟用它。你可以按照上面提到的相同步驟啟用SIP,但不是運行csrutil disable,而是運行csrutil enable。
既然SIP已被禁用,我們就可以繼續配置代理來攔截和分析虛假應用程序的網絡活動。
為此,我們將使用BurpSuite工具,它將允許我們攔截、操縱和分析web應用程序與其服務器之間的HTTP和HTTPS流量。
下面是在macOS系統上配置代理的步驟:
1.下載並安裝BurpSuite:你可以從PortSwigger網站下載該工具,安裝很簡單;
2.配置BurpSuite代理:為此,我們將導航到“Proxy”選項卡並選擇“Options”選項卡。在這裡我們將設置一些選項,例如代理偵聽器和端口。在下一步中,我們應該以.der格式導出Burp證書,並將其保存在某個本地文件夾中。
導出Burp證書
3.安裝導出的證書並允許系統使用它:
將證書安裝到系統
4. 配置macOS網絡設置:
要執行此操作,請導航到“系統首選項”菜單並選擇“網絡”。此時,我們將選擇網絡適配器並單擊“高級”按鈕。在“高級”菜單中,我們將選擇“代理”選項卡並配置代理設置。我們將代理類型設置為“HTTP”,代理服務器設置為“127.0.0.1”,我們還將端口設置為“8080”。
代理配置
5. 驗證代理配置:我們可以啟動一個網絡瀏覽器並導航到一個隨機的網站來驗證一切是否正常。然後,我們將返回到BurpSuite工具,並驗證網絡活動是否已被捕獲。
Wireshark此外,還可以使用Wireshark進行網絡流量分析。
Wireshark是一種網絡協議分析器,可以捕獲和分析網絡流量。我們可以使用它來檢測網絡通信中的安全弱點,例如明文密碼、不安全的協議和敏感信息。
Wireshark未加密的流量
總結我們了解了macOS應用程序及其結構,並演示瞭如何構建虛假應用程序。我們還討論了SIP以及如何配置常用的網絡攔截工具。
在下一部分,我們將深入研究文件和二進制分析,包括代碼簽名機制、強化的運行時異常和授權。此外,我們還將介紹一些用於這些目的的幾種工具和技術。
Recommended Comments