macos-process-injection 是做什麼的?
macOS 程序注入腳本。當您需要透過 dylib 劫持、DYLD 環境變數、XPC 利用、Mach 端口操作或 Electron/Chromium 濫用,將程式碼注入正在執行或啟動中的 macOS 程序時使用。
注入方法
1. Dylib 劫持
透過在程序的搜尋路徑中放置惡意的 dylib 來劫持動態庫載入。
# 範例:建立惡意 dylib 並取代原路徑
$ cp malicious.dylib /Applications/TargetApp.app/Contents/Frameworks/TargetLibrary.framework/Versions/A/TargetLibrary
2. DYLD 環境變數
使用 DYLD_INSERT_LIBRARIES 環境變數在程序啟動時注入程式碼。
# 範例:使用 dyld 插入注入
$ DYLD_INSERT_LIBRARIES=inject.dylib /path/to/target
3. XPC 利用
針對 XPC 服務進行漏洞利用,以執行任意程式碼。
- 識別目標 XPC 服務
- 分析其授權與輸入驗證
- 透過惡意客戶端觸發損毀或執行
4. Mach 端口操作
使用 Mach 核心端口(例如 task_for_pid)進行程序間注入。
# 範例:使用 task_for_pid 取得目標任務端口
$ ./mach_inject <target_pid>
5. Electron/Chromium 利用
濫用 Electron 或 Chromium 應用程式的架構弱點來注入 JavaScript 或原生程式碼。
- 修改應用程式的主進程或渲染器進程
- 注入惡意擴充功能或外掛程式
- 利用開發者工具或其他偵錯介面
注意事項
- 在真實系統上操作前,請先在隔離環境中測試。
- 某些方法需要 root 權限或特殊授權。
- macOS 的 System Integrity Protection (SIP) 可能會阻擋某些注入技術。