Detect Time Providers in Microsoft Sentinel
Adversaries may abuse time providers to execute DLLs when the system boots. The Windows Time service (W32Time) enables time synchronization across and within domains. W32Time time providers are implemented as DLLs registered in the subkeys of HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W32Time\TimeProviders\. The time provider manager loads and starts time providers listed under this key at system startup. Adversaries may create a new subkey pointing to a malicious DLL in the DllName value. Administrator privileges are required for time provider registration, though execution runs in context of the Local Service account.
MITRE ATT&CK
- Tactic
- Persistence Privilege Escalation
- Technique
- T1547 Boot or Logon Autostart Execution
- Sub-technique
- T1547.003 Time Providers
- Canonical reference
- https://attack.mitre.org/techniques/T1547/003/
KQL Detection Query
DeviceRegistryEvents
| where Timestamp > ago(24h)
| where ActionType in ("RegistryValueSet", "RegistryKeyCreated")
| where RegistryKey has "\\Services\\W32Time\\TimeProviders"
| where not(RegistryValueData has_any ("w32time.dll", "vmictimeprovider.dll"))
| project Timestamp, DeviceName, ActionType, RegistryKey, RegistryValueName, RegistryValueData, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountName
| sort by Timestamp desc Detects creation or modification of W32Time TimeProviders registry subkeys that reference non-standard DLLs. Legitimate time providers are w32time.dll (NtpClient/NtpServer) and vmictimeprovider.dll (VMICTimeProvider on Hyper-V guests). Any other DLL registered as a time provider is suspicious and may indicate persistence via the W32Time service.
Data Sources
Required Tables
False Positives & Tuning
- Installation of Hyper-V Integration Services that registers VMICTimeProvider
- Third-party time synchronization software (Meinberg, Galleon, Domain Time II) registering custom time providers
- Windows feature upgrades that reconfigure the W32Time service
Other platforms for T1547.003
Testing Methodology
Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Register Malicious Time Provider via Registry
Expected signal: Sysmon Event ID 12: Key created for df00techTestProvider. Sysmon Event ID 13: Value set for DllName, Enabled, and InputProvider. MDE DeviceRegistryEvents for all three operations.
- Test 2Enumerate Existing Time Providers
Expected signal: Sysmon Event ID 1: Process creation for reg.exe. No registry modification events.
- Test 3Register Time Provider and Restart W32Time
Expected signal: Sysmon Event ID 12/13 for registry operations. System Event ID 7036 for W32Time service state changes. If the DLL existed, Sysmon Event ID 7 would show it being loaded by svchost.exe hosting W32Time.
References (5)
- https://attack.mitre.org/techniques/T1547/003/
- https://msdn.microsoft.com/library/windows/desktop/ms725475.aspx
- https://docs.microsoft.com/windows-server/networking/windows-time-service/windows-time-service-top
- https://github.com/scottlundgren/w32time
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1547.003/T1547.003.md
Unlock Pro Content
Get the full detection package for T1547.003 including response playbook, investigation guide, and atomic red team tests.