Windows 服务
对手可能会创建或修改 Windows 服务,以便在持久性的一部分中重复执行恶意有效负载。当 Windows 启动时,它会启动称为服务的程序或应用程序,这些程序或应用程序执行后台系统功能。(引用: TechNet Services) Windows 服务配置信息,包括服务可执行文件或恢复程序/命令的文件路径,存储在 Windows 注册表中。 对手可能会安装新服务或修改现有服务,以便在启动时执行以在系统上保持持久性。可以使用系统实用程序(如 sc.exe)设置或修改服务配置,通过直接修改注册表,或通过直接与 Windows API 交互。 对手还可能使用服务安装和执行恶意驱动程序。例如,在将驱动程序文件(例如 .sys)放到磁盘后,可以通过本机 API函数(如 CreateServiceW()
)加载和注册有效负载(或通过函数如 ZwLoadDriver()
和 ZwSetValueKey()
手动),通过创建所需的服务注册表值(即修改注册表),或通过使用命令行实用程序如 PnPUtil.exe
。(引用: Symantec W.32 Stuxnet Dossier)(引用: Crowdstrike DriveSlayer February 2022)(引用: Unit42 AcidBox June 2020) 对手可能利用这些驱动程序作为Rootkit来隐藏系统上的恶意活动。对手还可能将签名但易受攻击的驱动程序加载到受感染的机器上(称为“自带易受攻击的驱动程序” (BYOVD)),作为特权提升利用的一部分。(引用: ESET InvisiMole June 2020)(引用: Unit42 AcidBox June 2020) 服务可能以管理员权限创建,但以 SYSTEM 权限执行,因此对手也可能使用服务来提升权限。对手还可能通过服务执行直接启动服务。 为了使检测分析更加困难,恶意服务还可能包含伪装任务或服务(例如,使用与合法操作系统或良性软件组件相关的服务和/或有效负载名称)。对手还可能创建“隐藏”服务(即,隐藏工件),例如通过使用 sc sdset
命令通过服务描述符定义语言 (SDDL) 设置服务权限。这可能会隐藏 Windows 服务,使其无法通过标准服务枚举方法(如 Get-Service
、sc query
和 services.exe
)查看。(引用: SANS 1)(引用: SANS 2)