系统时间发现是攻击者通过本地或远程方式获取目标系统时间、时区或运行时间的侦察技术,通常用于构建攻击时间线、触发定时任务或辅助地理定位。攻击者可能使用net time、w32tm等命令行工具或系统API(如GetTickCount)实施探测,防御方可通过对异常命令行操作监控、网络设备AAA日志审计等方式进行检测,但由于合法进程频繁调用时间接口,传统检测方法存在高误报率缺陷。
为规避传统检测机制,攻击者发展出多维度匿迹技术,将显式时间查询转化为隐式信息收集。通过劫持合法进程、分布式节点协同等手法,将时间发现行为深度嵌入系统正常活动中,形成"无特征、低信噪比"的新型时间侦察模式。
现有匿迹技术的共性在于突破传统时间查询的显式特征约束,构建多层隐匿体系:在行为层,通过进程注入或API劫持将恶意操作融入可信进程上下文,消除独立攻击痕迹;在数据层,采用分片编码与协议寄生策略,使时间数据传输符合正常业务流量特征,形成覆盖攻击链全环节的匿迹能力。
匿迹技术的演进迫使防御体系从单一事件检测转向多维度行为分析,需构建进程行为基线模型、网络流量语义解析及分布式日志关联能力,结合可信执行环境(TEE)技术监控敏感API调用链,并通过威胁情报共享机制识别隐蔽信道特征,提升对新型时间发现攻击的感知精度。
| 效应类型 | 是否存在 |
|---|---|
| 特征伪装 | ❌ |
| 行为透明 | ✅ |
| 数据遮蔽 | ❌ |
| 时空释痕 | ✅ |
攻击者通过劫持合法进程的时间接口,使时间查询行为具有与正常系统操作相同的进程特征、API调用链及数据访问模式。例如将GetSystemTime调用嵌入杀毒软件更新进程中,或通过文件元数据分析替代直接时间查询,实现恶意行为与合法操作的深度混淆,系统时间发现技术本身具有一定的行为透明匿迹效应。
分布式时间戳采集技术将高频次时间查询任务分解为跨地域、长周期的低频操作。每个代理节点按预设时间窗口(如每6小时)执行单次查询,利用全球节点的时间差自动拼合完整时间轴,使得单节点行为特征低于检测阈值,整体攻击特征稀释在跨国网络流量中。
| ID | Name | Description |
|---|---|---|
| S0331 | Agent Tesla |
Agent Tesla can collect the timestamp from the victim’s machine.[1] |
| S0622 | AppleSeed |
AppleSeed can pull a timestamp from the victim's machine.[2] |
| S0373 | Astaroth |
Astaroth collects the timestamp from the infected machine. [3] |
| S1053 | AvosLocker |
AvosLocker has checked the system time before and after encryption.[4] |
| S0344 | Azorult |
Azorult can collect the time zone information from the system.[5][6] |
| S1081 | BADHATCH |
BADHATCH can obtain the |
| S0534 | Bazar | |
| S0574 | BendyBear |
BendyBear has the ability to determine local time on a compromised host.[10] |
| S0017 | BISCUIT | |
| S0268 | Bisonal |
Bisonal can check the system time set on the infected host.[12] |
| S0657 | BLUELIGHT |
BLUELIGHT can collect the local time on a compromised host.[13] |
| G0060 | BRONZE BUTLER |
BRONZE BUTLER has used |
| S0471 | build_downer |
build_downer has the ability to determine the local time to ensure malware installation only happens during the hours that the infected system is active.[15] |
| C0015 | C0015 |
During C0015, the threat actors used the command |
| S0351 | Cannon |
Cannon can collect the current time zone information from the victim’s machine.[17] |
| S0335 | Carbon |
Carbon uses the command |
| S1043 | ccf32 |
ccf32 can determine the local time on targeted machines.[19] |
| G0114 | Chimera |
Chimera has used |
| S0660 | Clambling | |
| S0126 | ComRAT |
ComRAT has checked the victim system's date and time to perform tasks during business hours (9 to 5, Monday to Friday).[22] |
| S0608 | Conficker |
Conficker uses the current UTC victim system date for domain generation and connects to time servers to determine the current date.[23][24] |
| S0115 | Crimson |
Crimson has the ability to determine the date and time on a compromised host.[25] |
| G1012 | CURIUM |
CURIUM deployed mechanisms to check system time information following strategic website compromise attacks.[26] |
| S1111 | DarkGate |
DarkGate creates a log file for capturing keylogging, clipboard, and related data using the victim host's current date for the filename.[27] DarkGate queries victim system epoch time during execution.[27] DarkGate captures system time information as part of automated profiling on initial installation.[28] |
| G0012 | Darkhotel |
Darkhotel malware can obtain system time from a compromised host.[29] |
| S0673 | DarkWatchman |
DarkWatchman can collect time zone information and system |
| S1033 | DCSrv |
DCSrv can compare the current time on an infected host with a configuration value to determine when to start the encryption process.[31] |
| S1134 | DEADWOOD |
DEADWOOD will set a timestamp value to determine when wiping functionality starts. When the timestamp is met on the system, a trigger file is created on the operating system allowing for execution to proceed. If the timestamp is in the past, the wiper will execute immediately.[32] |
| S0694 | DRATzarus |
DRATzarus can use the |
| S1159 | DUSTTRAP |
DUSTTRAP reads the infected system's current time and writes it to a log file during execution.[34] |
| S0554 | Egregor |
Egregor contains functionality to query the local/system time.[35] |
| S0091 | Epic |
Epic uses the |
| S0396 | EvilBunny |
EvilBunny has used the API calls NtQuerySystemTime, GetSystemTimeAsFileTime, and GetTickCount to gather time metrics as part of its checks to see if the malware is running in a sandbox.[37] |
| S0267 | FELIXROOT |
FELIXROOT gathers the time zone information from the victim’s machine.[38] |
| S1044 | FunnyDream |
FunnyDream can check system time to help determine when changes were made to specified files.[19] |
| S0588 | GoldMax |
GoldMax can check the current date-time value of the compromised system, comparing it to the hardcoded execution trigger and can send the current timestamp to the C2 server.[39][40] |
| S0531 | Grandoreiro |
Grandoreiro can determine the time on the victim machine via IPinfo.[41] |
| S0237 | GravityRAT |
GravityRAT can obtain the date and time of a system.[42] |
| S0690 | Green Lambert |
Green Lambert can collect the date and time from a compromised host.[43][44] |
| S0417 | GRIFFON |
GRIFFON has used a reconnaissance module that can be used to retrieve the date and time of the system.[45] |
| G0126 | Higaisa | |
| S0376 | HOPLIGHT |
HOPLIGHT has been observed collecting system time from victim machines.[47] |
| S0260 | InvisiMole |
InvisiMole gathers the local system time from the victim’s machine.[48][49] |
| S1051 | KEYPLUG |
KEYPLUG can obtain the current tick count of an infected computer.[50] |
| G0032 | Lazarus Group |
A Destover-like implant used by Lazarus Group can obtain the current system time and send it to the C2 server.[51] |
| S0455 | Metamorfo | |
| S0149 | MoonWind | |
| S0039 | Net |
The |
| S1147 | Nightdoor |
Nightdoor can identify the system local time information.[55] |
| S0353 | NOKKI |
NOKKI can collect the current timestamp of the victim's machine.[56] |
| S0439 | Okrum |
Okrum can obtain the date and time of the compromised system.[57] |
| S0264 | OopsIE |
OopsIE checks to see if the system is configured with "Daylight" time and checks for a specific region to be set for the timezone.[58] |
| C0012 | Operation CuckooBees |
During Operation CuckooBees, the threat actors used the |
| C0014 | Operation Wocao |
During Operation Wocao, threat actors used the |
| S0501 | PipeMon |
PipeMon can send time zone information from a compromised host to C2.[61] |
| S0139 | PowerDuke |
PowerDuke has commands to get the time the machine was built, the time, and the time zone.[62] |
| S0238 | Proxysvc |
As part of the data reconnaissance phase, Proxysvc grabs the system time to send back to the control server.[51] |
| S0650 | QakBot | |
| S1148 | Raccoon Stealer |
Raccoon Stealer gathers victim machine timezone information.[64][65] |
| S0148 | RTM | |
| S0596 | ShadowPad |
ShadowPad has collected the current date and time of the victim system.[67] |
| S0140 | Shamoon |
Shamoon obtains the system time and will only activate if it is greater than a preset date.[68][69] |
| S0450 | SHARPSTATS |
SHARPSTATS has the ability to identify the current date and time on the compromised host.[70] |
| G0121 | Sidewinder |
Sidewinder has used tools to obtain the current system time.[71] |
| S0692 | SILENTTRINITY |
SILENTTRINITY can collect start time information from a compromised host.[72] |
| S0615 | SombRAT |
SombRAT can execute |
| S0380 | StoneDrill |
StoneDrill can obtain the current date and time of the victim machine.[75] |
| S1034 | StrifeWater |
StrifeWater can collect the time zone from the victim's machine.[76] |
| S0603 | Stuxnet |
Stuxnet collects the time and date of a system when it is infected.[77] |
| S0559 | SUNBURST | |
| S1064 | SVCReady | |
| S0098 | T9000 |
T9000 gathers and beacons the system time during installation.[81] |
| S0011 | Taidoor |
Taidoor can use |
| S0586 | TAINTEDSCRIBE |
TAINTEDSCRIBE can execute |
| S0467 | TajMahal |
TajMahal has the ability to determine local time on a compromised host.[84] |
| G0089 | The White Company |
The White Company has checked the current date on the victim system.[85] |
| S0678 | Torisma |
Torisma can collect the current time on a victim machine.[86] |
| G0010 | Turla |
Turla surveys a system upon check-in to discover the system time by using the |
| S0275 | UPPERCUT |
UPPERCUT has the capability to obtain the time zone information and current timestamp of the victim’s machine.[87] |
| G1017 | Volt Typhoon |
Volt Typhoon has obtained the victim's system timezone.[88] |
| S0466 | WindTail |
WindTail has the ability to generate the current date and time.[89] |
| S0251 | Zebrocy |
Zebrocy gathers the current time zone and date information from the system.[90][91] |
| S0330 | Zeus Panda |
Zeus Panda collects the current system time (UTC) and sends it back to the C2 server.[92] |
| G0128 | ZIRCONIUM |
ZIRCONIUM has used a tool to capture the time on a compromised host in order to register it with C2.[93] |
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 for actions that may gather the system time and/or time zone from a local or remote system. |
| DS0009 | Process | OS API Execution |
Monitor for API calls that may gather the system time and/or time zone from a local or remote system. Remote access tools with built-in features may interact directly with the Windows API to gather information. |
| Process Creation |
Monitor for newly executed processes that may gather the system time and/or time zone from a local or remote system. |