如何使用FalconEye實時檢測Windows進程注入行為
關(guān)于FalconEye
FalconEye是一款功能強大的Windows終端安全檢測工具,可以幫助廣大研究人員實時檢測Windows進程注入行為。FalconEye也是一個內(nèi)核模式驅(qū)動工具,旨在實現(xiàn)實時的進程注入行為。由于FalconEye需要以內(nèi)核模式運行,它可以提供一個強大可靠的安全防御機制來抵御那些嘗試繞過各種用戶模式鉤子的進程注入技術(shù)。
工具架構(gòu)
- FalconEye驅(qū)動器是一種按需加載的驅(qū)動程序;
- 初始化包括通過libinfinityhook設(shè)置回調(diào)和syscall鉤子;
- 回調(diào)維護從跨流程活動(如OpenProcess)構(gòu)建的Pids的映射,但不限于OpenProcess;
- 隨后的回調(diào)和syscall鉤子使用這個Pid映射來減少處理中的噪聲;
- 作為降噪的一部分,syscall鉤子可以過濾掉相同的進程活動;
- 檢測邏輯分為多種子類,即無狀態(tài)(例如:Atombombing)、有狀態(tài)(Unmap+Overwrite)和浮動代碼(多種技術(shù)實現(xiàn)的Shellcode);
- 針對有狀態(tài)的檢測,syscall鉤子會記錄一個ActionHistory(歷史活動),比如說,它會記錄所有的NtWriteVirtualMemory調(diào)用;
- 檢測邏輯具有常見的異常檢測功能,如浮動代碼檢測和遠程進程中Shellcode觸發(fā)器的檢測?;卣{(diào)和syscall鉤子都會調(diào)用這個公共功能來進行實際檢測;
需要注意的是,我們的重點一直是檢測任務(wù)本身,而不是創(chuàng)建一個高性能的檢測引擎。
項目目錄結(jié)構(gòu)
- .
- ├── src
- │ ├── FalconEye ---------------------------# FalconEye user and kernel space
- │ └── libinfinityhook ---------------------# Kernel hook implementation
- ├── 2021BHASIA_FalconEye.pdf
- └── README.md
工具要求
- Windows 10 Build 1903/1909
- Microsoft Visual Studio 2019
- VmWare、Hyper-V等虛擬化軟件
工具安裝
(1) 項目構(gòu)建
- 使用Microsoft Visual Studio 2019打開解決方案;
- 選擇x64作為構(gòu)建平臺;
- 構(gòu)建解決方案,此時將在“src\kernel\FalconEye\x64\Debug”或“src\kernel\FalconEye\x64\Release”路徑下生成sys源碼;
(2) 測試設(shè)備部署
在虛擬機中安裝好Windows 10 Build 1903/1909;
配置虛擬機以測試未簽名的驅(qū)動程序,使用bcdedit,禁用完整性檢測:
- BCDEDIT /set nointegritychecks ON
在虛擬機中運行DbgView,或使用WinDbg開啟一個調(diào)試連接;
工具使用
- 我們需要將sys文件拷貝到測試設(shè)備(Windows 10虛擬機)中;
- 使用OSR加載器或類似的工具,以“按需”加載驅(qū)動器的形式加載sys;
- 運行類似pinjectra或minjector之類的注入測試工具;
- 通過WinDbg或DbgView監(jiān)控調(diào)試日志;
項目地址
FalconEye:【GitHub傳送門】