| ID | Name |
|---|---|
| T1007.001 | 合法管理工具隐蔽调用 |
| T1007.002 | 服务元数据碎片化采集 |
系统服务发现是攻击者通过查询操作系统服务配置信息来识别潜在攻击面的关键侦察技术,通常使用系统内置工具(如sc、net)或API接口获取服务状态、依赖关系和权限配置。传统检测手段主要监控异常进程创建(如未知可执行文件调用服务管理API)、可疑命令行参数(如批量服务枚举操作)以及非常规WMI查询事件。防御建议包括启用详细进程审计、限制低权限用户的服务查询操作,以及部署用户行为分析(UEBA)系统识别异常服务访问模式。
面对日益完善的安全监测体系,攻击者发展出深度隐藏的服务发现技术,通过寄生合法进程、分散元数据采集、污染审计日志等手法,将服务枚举行为融入系统正常运维活动中,显著降低了传统基于规则匹配和行为阈值的检测机制有效性。
当前系统服务发现匿迹技术的演进呈现共性特征:首先,攻击过程与系统合法组件的深度融合,通过API调用劫持、内存驻留执行等技术实现"无实体化"攻击;其次,时空维度上的行为特征稀释,采用低频次、碎片化的元数据采集策略突破连续行为分析模型的检测边界。具体而言,合法工具隐蔽调用技术利用系统白名单机制实现攻击行为的表面合法化;碎片化采集策略突破基于完整服务清单比对的检测模型,使得服务发现行为在进程层、行为层和审计层均实现深度隐匿。
匿迹技术的发展迫使防御体系向纵深防御方向演进,需构建内存行为监控、跨周期行为关联分析、日志完整性保护等新型防御能力,同时结合服务访问最小特权原则和拟态化服务控制接口,实现对隐蔽服务发现行为的立体化防护。
| 效应类型 | 是否存在 |
|---|---|
| 特征伪装 | ❌ |
| 行为透明 | ✅ |
| 数据遮蔽 | ❌ |
| 时空释痕 | ✅ |
攻击者通过使用常见的命令查询系统服务信息,这些命令通常用于系统管理员日常的维护工作,系统中的合法命令本身难以与恶意行为区分开来,使得攻击者能够悄无声息地进行信息收集。服务查询命令的参数组合、执行时序均与合法运维行为相似,使得传统基于进程行为监控的检测机制无法感知攻击行为,实现服务发现操作的“执行过程透明化”。
服务元数据碎片化采集技术将完整的服务发现任务分解为数百个离散的元数据查询操作,单个操作间隔数小时且仅获取有限服务属性。这种低频长周期的攻击节奏使得服务发现特征被稀释在数周甚至数月的系统活动周期中,传统基于短时间窗口的行为分析模型难以有效检测。
| ID | Name | Description |
|---|---|---|
| G0018 | admin@338 |
admin@338 actors used the following command following exploitation of a machine with LOWBALL malware to obtain information about services: |
| G0006 | APT1 |
APT1 used the commands |
| G0143 | Aquatic Panda |
Aquatic Panda has attempted to discover services for third party EDR products.[3] |
| S0638 | Babuk |
Babuk can enumerate all services running on a compromised host.[4] |
| S0127 | BBSRAT | |
| S0570 | BitPaymer |
BitPaymer can enumerate existing Windows services on the host that are configured to run as LocalSystem.[6] |
| S1070 | Black Basta |
Black Basta can check whether the service name FAX is present.[7] |
| G0060 | BRONZE BUTLER |
BRONZE BUTLER has used TROJ_GETVERSION to discover system services.[8] |
| S0572 | Caterpillar WebShell |
Caterpillar WebShell can obtain a list of the services from a system.[9] |
| G0114 | Chimera |
Chimera has used |
| S0154 | Cobalt Strike |
Cobalt Strike can enumerate services on compromised hosts.[11] |
| S0244 | Comnie |
Comnie runs the command: |
| S0625 | Cuba |
Cuba can query service status using |
| S1066 | DarkTortilla |
DarkTortilla can retrieve information about a compromised system's running services.[14] |
| S0024 | Dyre |
Dyre has the ability to identify running services on a compromised host.[15] |
| G1006 | Earth Lusca |
Earth Lusca has used Tasklist to obtain information from a compromised host.[16] |
| S0081 | Elise |
Elise executes |
| S0082 | Emissary |
Emissary has the capability to execute the command |
| S0091 | Epic |
Epic uses the |
| S0049 | GeminiDuke |
GeminiDuke collects information on programs and services on the victim that are configured to automatically run at startup.[20] |
| S0237 | GravityRAT |
GravityRAT has a feature to list the available services on the system.[21] |
| S0342 | GreyEnergy |
GreyEnergy enumerates all Windows services.[22] |
| S1027 | Heyoka Backdoor |
Heyoka Backdoor can check if it is running as a service on a compromised host.[23] |
| S0431 | HotCroissant |
HotCroissant has the ability to retrieve a list of services on the infected host.[24] |
| S0203 | Hydraq |
Hydraq creates a backdoor through which remote attackers can monitor services.[25][26] |
| S0398 | HyperBro |
HyperBro can list all services and their configurations.[27] |
| G0119 | Indrik Spider |
Indrik Spider has used the win32_service WMI class to retrieve a list of services from the system.[28] |
| S0260 | InvisiMole |
InvisiMole can obtain running services on the victim.[29] |
| S0015 | Ixeshe | |
| S0201 | JPIN | |
| S0283 | jRAT | |
| G0004 | Ke3chang |
Ke3chang performs service discovery using |
| G0094 | Kimsuky |
Kimsuky has used an instrumentor script to gather the names of all services running on a victim's system.[34] |
| S0236 | Kwampirs |
Kwampirs collects a list of running services with the command |
| S0582 | LookBack | |
| S0039 | Net |
The |
| G0049 | OilRig |
OilRig has used |
| C0012 | Operation CuckooBees |
During Operation CuckooBees, the threat actors used the |
| C0014 | Operation Wocao |
During Operation Wocao, threat actors used the |
| G0033 | Poseidon Group |
After compromising a victim, Poseidon Group discovers all running services.[41] |
| S0378 | PoshC2 |
PoshC2 can enumerate service and service permission information.[42] |
| S0629 | RainyDay |
RainyDay can create and register a service for execution.[43] |
| S0241 | RATANKBA | |
| S0496 | REvil | |
| S0085 | S-Type | |
| S1085 | Sardonic |
Sardonic has the ability to execute the |
| S0692 | SILENTTRINITY |
SILENTTRINITY can search for modifiable services that could be used for privilege escalation.[48] |
| S0533 | SLOTHFULMEDIA |
SLOTHFULMEDIA has the capability to enumerate services.[49] |
| S0615 | SombRAT | |
| S0559 | SUNBURST |
SUNBURST collected a list of service names that were hashed using a FNV-1a + XOR algorithm to check against similarly-hashed hardcoded blocklists.[51] |
| S0018 | Sykipot | |
| S0242 | SynAck | |
| S0663 | SysUpdate |
SysUpdate can collect a list of services on a victim machine.[55] |
| S0057 | Tasklist |
Tasklist can be used to discover services running on a system.[56] |
| G0139 | TeamTNT |
TeamTNT has searched for services such as Alibaba Cloud Security's aliyun service and BMC Helix Cloud Security's bmc-agent service in order to disable them.[57] |
| S0266 | TrickBot |
TrickBot collects a list of install programs and services on the system’s machine.[58] |
| G0010 | Turla |
Turla surveys a system upon check-in to discover running services and associated processes using the |
| S0386 | Ursnif | |
| S0180 | Volgmer |
Volgmer queries the system to identify existing services.[60] |
| G1017 | Volt Typhoon |
Volt Typhoon has used |
| S0219 | WINERACK | |
| S0086 | ZLib |
ZLib has the ability to discover and manipulate Windows services.[46] |
| S0412 | ZxShell |
This type of attack technique cannot be easily mitigated with preventive controls since it is based on the abuse of system features.
| ID | Data Source | Data Component | Detects |
|---|---|---|---|
| DS0017 | Command | Command Execution |
Monitor executed commands and arguments that could be taken to gather system information related to services. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell. |
| DS0009 | Process | OS API Execution |
Monitor for API calls associated with gathering information about registered local system services, such as QueryServiceStatusEx. Other Windows API calls worth monitoring include EnumServicesStatusExA, which can be used to enumerate services in the service control manager database. Note: Most EDR tools do not support direct monitoring of API calls due to the sheer volume of calls produced by an endpoint but may have alerts or events that are based on abstractions of OS API calls. Dynamic malware analysis tools (i.e., sandboxes) can be used to trace the execution, including OS API calls, for a single PE binary. |
| Process Creation |
Monitor for newly executed processes with arguments that may try to get information about registered services. System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Lateral Movement, based on the information obtained. Note: Event IDs are for Sysmon (Event ID 1 - process create) and Windows Security Log (Event ID 4688 - a new process has been created). For event id 4688, depending on Windows version, you might need to enable Analytic 1 - Suspicious Processes
|