天天看點

利用global API hooks在Win7系統下隐藏程序

本文講的是<b>利用global API hooks在Win7系統下隐藏程序</b>,

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

位置:

參數說明:

代碼實作

通過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檔案如下:

表示

注:

設定的路徑不能存在空格,否則失效

2.編譯生成AppInitHook.dll并放在C:Tools下

參照工程:

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,如圖

利用global API hooks在Win7系統下隐藏程式

管理者權限運作Process Explorer,可檢視高權限程序加載的dll

4.Win7x64測試

64位系統同32位系統的差別在系統資料庫也有所展現

詳情可參考之前的文章《關于32位程式在64位系統下運作中需要注意的重定向問題》

64位程式對應系統資料庫位置:

32位程式對應系統資料庫位置:

是以,如果要hook 64位系統下的所有程序(32位和64位),需要修改兩處系統資料庫鍵值

64位的系統資料庫鍵值位置:

32位的系統資料庫鍵值位置:

具體修改代碼已上傳至github,位址如下:

https://github.com/3gstudent/AppInitGlobalHooks-Mimikatz/blob/master/AppInit64.reg

修改後使用Process Explorer檢視如圖

利用global API hooks在Win7系統下隐藏程式
利用global API hooks在Win7系統下隐藏程式

成功注入32位和64位程序

0x04 補充

該方法隻支援Win7 和 Windows Server 2008 R2,不支援更高版本如Win8、Server2012

利用global API hooks在Win7系統下隐藏程式

如上圖,在Win8系統,雖然成功加載AppInitHook.dll,但是無法隐藏程序

原因如下:

從Win8系統開始,微軟對AppInit_DLLs做了限制:bios中預設開啟的secure boot将會禁用AppInit_DLLs,使其失效

0x05 防禦

隻針對Win7 和 Windows Server 2008 R2及以下系統

1.檢視系統資料庫鍵值

AppInit_DLLs項有無可疑dll路徑

2.通過Process Explorer檢視程序有無加載可疑的dll

0x06 小結

本文對利用global API hooks在Win7系統下隐藏程序的方法做了介紹,結合利用思路,幫助大家對這種利用方式進行更好的防禦。當然,利用global API hooks能做的還有更多

原文釋出時間為:2017年5月7日

本文作者:3gstudent

本文來自雲栖社群合作夥伴嘶吼,了解相關資訊可以關注嘶吼網站。

<a href="http://www.4hou.com/technology/4395.html" target="_blank">原文連結</a>

繼續閱讀