ATT&CK-CN V1.01 Last Update: 2019-11 [返回索引页]

译者: 林妙倩(清华大学网络研究院网络空间安全实习生)、戴亦仑(赛宁网安) 原创翻译作品,如果需要转载请取得翻译作者同意。

数据来源:ATT&CK Matrices

原文: https://attack.mitre.org/techniques/T1058

术语表: /attack/glossary

服务注册表权限缺陷

Windows 将本地服务配置信息存储在 HKLM 下的注册表中。可以通过诸如服务控制器、sc.exe、PowerShell 或 Reg 等工具操作存储在服务注册表项下的信息来修改服务的执行参数。对注册表项的访问由访问控制列表和权限控制。

如果没有正确设置用户和组的权限,并且不限制对服务的注册表项访问,则攻击者可以更改服务 binPath/ImagePath 以指向受其控制的另一个可执行文件。当服务启动或重启时会执行由攻击者控制的程序,使得攻击者获得持久性和/或提权到服务运行所需的帐户上下文。(本地/域帐户,SYSTEM,LocalService 或 NetworkService)

攻击者还可以更改与服务失败参数(例如 FailureCommand) 关联的注册表键,参数内容可能在服务失败或有意崩溃时在提升的上下文中执行。

缓解

确保为注册表 hive 设置了适当的权限,以防止用户修改可能导致权限提升的系统组件的键值。

使用能够审核和/或拦截未知程序的白名单工具,如 AppLocker,识别并拦截可能通过滥用文件,目录和服务权限执行的潜在恶意软件。

检测

服务更改会反映在注册表中。对现有服务的修改不应频繁发生。如果服务的二进制路径或故障参数被更改为该服务不常见且与软件更新无关的值,则可能是由于恶意活动。不应孤立地看待数据和事件,而应将其视为可能导致其他活动的行为链的一部分,例如用于命令与控制的网络连接、通过披露了解环境细节以及横向移动。

诸如 Sysinternals Autoruns 之类的工具也可以用于检测尝试建立持久性导致的系统更改,包括列出当前服务信息。 查找与已知软件、补丁周期等无关的服务更改。当以前与历史数据进行比较时,通过服务执行的可疑程序可能会显示为未见过的异常进程。

监视可以修改服务的进程和命令行参数的操作。具有内置功能的远程访问工具可以直接与 Windows API 交互,以在典型的系统实用程序外执行这些功能。还可以通过 Windows 系统管理工具(如 Windows 管理规范和 PowerShell) 修改服务,因此可能需要配置额外的日志以收集适当的数据。