利用global API hooks在Win7系統下隱藏進程
0x00 前言
在之前的文章《Powershell tricks::Hide Process by kd.exe》介紹過通過kd.exe隱藏進程的技巧,最大的缺點是需要開啟Local kernel debugging模式,等待重啟才能生效
這次介紹另外一個隱藏進程的方法——利用global API hooks
優點是即時生效,不需要等待系統重啟
0x01 簡介
本文將要參照Sergey Podobry的文章,對該方法進行介紹,分析實際測試中需要注意的細節,並補全在64位下具體的參數設置
參考鏈接:
https://www.codeproject.com/articles/49319/easy-way-to-set-up-global-api-hooks?display=print
https://github.com/subTee/AppInitGlobalHooks-Mimikatz
0x02 原理
在用戶層,通過global API hooks將測試dll注入到系統的所有進程,實現對指定進程的隱藏
hook方式
修改註冊表鍵值AppInit_DLLs
位置:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWindows
參數說明:
LoadAppInit_DLLs:(REG_DWORD) Value that globally enables or disables AppInit_DLLs. ·0x0 – AppInit_DLLs are disabled. ·0x1 – AppInit_DLLs are enabled.AppInit_DLLs:(REG_SZ) Space - or comma -separated list of DLLs to load. The complete path to the DLL should be specified using short file names. C:PROGRA~1TestTest.dllRequireSignedAppInit_DLLs:(REG_DWORD) Require code-signed DLLs. ·0x0 – Load any DLLs. ·0x1 – Load only code-signed DLLs.
代碼實現
通過Mhook library實現API hooking
優點:
開源
支持x86和x64
使用簡便
參考地址:
http://codefromthe70s.org/mhook22.aspx
0x03 實際測試
測試環境:Win7x86
1.設置註冊表鍵值AppInit_DLLs
參照代碼:
https://github.com/subTee/AppInitGlobalHooks-Mimikatz/blob/master/AppInit.reg
.reg文件如下:
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWindows]"AppInit_DLLs"="C:ToolsAppInitHookx64.dll,C:ToolsAppInitHook.dll""LoadAppInit_DLLs"=dword:00000001"RequireSignedAppInit_DLLs"=dword:00000000
表示
AppInit_DLLs are enabledLoad any DLLs,do not need code-signed DLLsDLL path:C:ToolsAppInitHookx64.dll,C:ToolsAppInitHook.dll
註:
設置的路徑不能存在空格,否則失效
2.編譯生成AppInitHook.dll並放在C:Tools下
參照工程:
https://github.com/subTee/AppInitGlobalHooks-Mimikatz
3.運行mimikatz.exe
任務管理器進程列表不存在mimikatz.exe
Process Explorer不存在mimikatz.exe
Tasklist.exe不存在mimikatz.exe
註:
此處沒有完全隱藏進程,是將進程名設置為conhost.exe,這是因為mimikatz是控制台應用程序
如果換成putty.exe或calc.exe這種Win32項目,則不存在這個問題,能夠完全隱藏進程
使用Process Explorer查看新建的進程,均載入了AppInitHook.dll,如圖
註:
管理員許可權運行Process Explorer,可查看高許可權進程載入的dll
4.Win7x64測試
64位系統同32位系統的區別在註冊表也有所體現
註:
詳情可參考之前的文章《關於32位程序在64位系統下運行中需要注意的重定向問題》
64位程序對應註冊表位置:
HKEY_LOCAL_MACHINESOFTWAREMicrosoft
32位程序對應註冊表位置:
HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft
所以,如果要hook 64位系統下的所有進程(32位和64位),需要修改兩處註冊表鍵值
64位的註冊表鍵值位置:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWindows]
32位的註冊表鍵值位置:
[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindows NTCurrentVersionWindows]
具體修改代碼已上傳至github,地址如下:
https://github.com/3gstudent/AppInitGlobalHooks-Mimikatz/blob/master/AppInit64.reg
修改後使用Process Explorer查看如圖
成功注入32位和64位進程
0x04 補充
該方法只支持Win7 和 Windows Server 2008 R2,不支持更高版本如Win8、Server2012
如上圖,在Win8系統,雖然成功載入AppInitHook.dll,但是無法隱藏進程
原因如下:
從Win8系統開始,微軟對AppInit_DLLs做了限制:bios中默認開啟的secure boot將會禁用AppInit_DLLs,使其失效
詳情可參照:
https://msdn.microsoft.com/en-us/library/windows/desktop/dn280412(v=vs.85).aspx
0x05 防禦
只針對Win7 和 Windows Server 2008 R2及以下系統
1.查看註冊表鍵值
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWindows][HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftWindows NTCurrentVersionWindows]
AppInit_DLLs項有無可疑dll路徑
2.通過Process Explorer查看進程有無載入可疑的dll
0x06 小結
本文對利用global API hooks在Win7系統下隱藏進程的方法做了介紹,結合利用思路,幫助大家對這種利用方式進行更好的防禦。當然,利用global API hooks能做的還有更多


TAG:嘶吼RoarTalk |
※隱藏於陰影之下 Nike Air Force 1 High 「Dark Stucco」
※使用BurpSuite的Collaborator查找.Onion隱藏服務的真實IP地址
※Sean Wotherspoon 上腳 OFF-WHITE x Nike 隱藏鞋款!
※Giannis Antetokounmpo 曝光 UNDEFEATED x Nike Kobe 1 Protro 隱藏版配色
※非常實用的Android 9 Pie隱藏功能:Lockdown
※非常實用Android 9 Pie隱藏功能:Lockdown!
※Nike Zoom Streak Spectrum Plus還有隱藏配色?你希望出現在Supreme下周發售里嗎?
※在GoogleUserContent上的圖片中隱藏惡意軟體
※Supreme隱藏款T-Shirt曝光!GZA經典專輯《Liquid Swords》封面印花設計來襲!
※iOS 12「隱藏功能」,AirPods 支持 Live Listen 變身助聽器
※ACRONYM? x Nike Air VaporMax Moc 2「隱藏版」配色諜照曝光 | HB Daily
※Supreme Week 2 隱藏聯名鞋款竟是與 Vans
※angularjs 點擊div外面,隱藏該div
※Supreme隱藏合作款將發售,M+RC NOIR 將在北京開設 Pop-up Store
※pyt:檢測 Python Web 應用安全漏洞的靜態掃描工具;DoxyCannon:ip隱藏
※為防手機信息泄露,Android 9.0新加「Lockdown」隱藏功能
※如何在 Linux/Unix/Windows 中發現隱藏的進程和埠
※Supreme隱藏合作款即將發售,M+RC NOIR 將在北京開設 Pop-up Store|潮聞快食
※ACRONYM? x Nike Air VaporMax Moc 2「隱藏版」配色最新諜照曝光
※Google Chrome 69隱藏域名中的www遭批