一个干掉杀毒软件保护进程的工具 Backstab
作者:Sec-Labs | 发布时间:
Backstab
杀死EDR的保护进程
有这些本地管理凭证,但EDR却挡住了去路?
解除连接或直接系统调用对EDR不起作用?
那么,为什么不直接干掉它呢?
Backstab是一个工具,能够通过利用sysinternals的Process Explorer(ProcExp)驱动程序来杀死受反恶意软件保护的进程,该驱动程序是由微软签署的。
项目地址
https://github.com/Yaxser/Backstab
它能做什么?
Usage: backstab.exe <-n name || -p PID> [options]
-n, Choose process by name, including the .exe suffix
-p, Choose process by PID
-l, List handles of protected process
-k, Kill the protected process by closing its handles
-x, Close a specific handle
-d, Specify path to where ProcExp will be extracted
-s, Specify service name registry key
-u, Unload ProcExp driver
-a, adds SeDebugPrivilege
-h, Print this menu
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]
这怎么可能呢?
ProcExp有一个签名的内核驱动程序,它在启动时加载,这使得它可以杀死那些即使以管理员身份也不能杀死的句柄。当你使用用户界面时,你不能杀死一个受保护的进程,但你可以杀死它的句柄,因为ProcExp用户界面指示内核驱动程序杀死这些句柄。Backstab做同样的事情,但没有UI元素。
操作安全(OpSec)
以下是对所发生的事情的简要介绍
- 嵌入式驱动程序被丢到磁盘上
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下的注册表键被创建。
- 获得了SE_PRIVILEGE_ENABLED权限,因为它是加载驱动程序所必需的。
- 使用NtLoadDriver加载驱动程序以避免创建服务
- 创建的注册表键被删除(服务在执行期间不可见)。
- 通过使用DeviceIoControl与驱动程序进行通信。
- 对于手柄的枚举,调用NtQuerySystemInformation。
你还应该知道的是
- 该工具的行为模仿了ProcExp的行为。ProcExp把驱动程序放到磁盘上,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下创建注册表键,调用NtLoadDriver,然后删除注册表键。
- 你可以指定驱动被丢弃的位置和服务名称。
- 完成后,应用程序将卸载驱动程序。卸载驱动程序的方法是首先重新创建注册表键,然后调用NtUnloadDriver。
- 加载的驱动程序由MS签名。
- 该进程并不试图直接杀死受保护的进程句柄,它指示ProcExp驱动杀死它们。你不会被指控试图篡改任何进程。
标签:工具分享, 主机安全