如何使用Backstab終止受保護的進程
關于Backstab
Backstab是一款功能強大的安全研究工具,在該工具的幫助下,廣大研究人員可以輕松終止那些受反惡意軟件產品保護的進程。
當你拿到了目標設備的本地管理員憑證之后,你發現EDR仍然“在線”,該怎么辦呢?卸載鉤子或者直接系統調用針對EDR也無法起作用,又該怎么辦呢?沒錯,我們為何不直接終止相關進程呢?
Backstab這款工具能夠通過利用sysinternals的進程管理驅動器(ProcExp)終止受反惡意軟件產品保護的進程,而這個驅動器是由微軟簽名的。
工具運行機制
ProcExp有一個在啟動時加載的帶簽名的內核驅動器,而這個驅動器將允許ProcExp終止那些即使作為管理員也無法終止的句柄。當我們查看到UI時,你可能無法終止受保護的進程,但可以終止它的句柄,因為ProcExp UI會指示內核驅動程序終止這些句柄。而Backstab能做到同樣的事情,只不過沒有提供UI。
Backstab會做哪些事情?
- 將嵌入式驅動器存儲至磁盤上;
- 創建HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services;
- 由于需要加載驅動器,因此獲取SE_PRIVILEGE_ENABLED權限;
- 使用NtLoadDriver加載驅動器以避免創建服務;
- 創建的注冊表項被刪除(執行期間服務不可見);
- 通過DeviceIoControl與驅動器通信;
- 調用NtQuerySystemInformation實現進程句柄枚舉;
工具下載
廣大研究人員可以使用下列命令將該項目源碼克隆至本地:
- git clone https://github.com/Yaxser/Backstab
工具使用幫助
- Usage: backstab.exe <-n name || -p PID> [options]
- -n, 通過名稱選擇進程,需包含.exe后綴
- -p, 通過PID選擇進程
- -l, 列舉所有受保護進程的句柄
- -k, 選擇要終止的受保護進程的句柄
- -x, 選擇一個指定的句柄
- -d, 指定ProcExp提取路徑
- -s, 指定服務名稱注冊表鍵
- -u, 卸載ProcExp驅動器
- -a, 添加SeDebugPrivilege
- -h, 顯示該幫助菜單
- Examples:
- backstab.exe -n cyserver.exe -k [kill cyserver]
- backstab.exe -n cyserver.exe -x E4C [Close handle E4C of cyserver]
- backstab.exe -n cyserver.exe -l [list all handles of cyserver]
- backstab.exe -p 4326 -k -d c:\\driver.sys [kill protected process with PID 4326, extract ProcExp driver to C:\ drive]
項目地址
Backstab:【GitHub傳送門】