Install Microsoft Sysmon
Some Tenable Identity Exposure’s Indicators of Attack (IoAs) require the Microsoft System Monitor (Sysmon) service to activate.
Sysmon monitors and logs system activity to the Windows event log to provide more security-oriented information in the Event Tracing for Windows (ETW) infrastructure.
Because installing an additional Windows service and driver can affect performances of the domain controllers hosting the Active Directory infrastructure. Tenable does not deploy automatically Microsoft Sysmon. You must install it manually or use a dedicated GPO.
The following IoAs require Microsoft Sysmon.
Name |
Reason |
---|---|
OS Credential Dumping: LSASS Memory |
Detects Process Injection |
-
Download Sysmon from the Microsoft website.
-
In the command-line interface, run the following command to install Microsoft Sysmon on the local machine:
Copy.\Sysmon64.exe -accepteula -i C:\TenableSysmonConfigFile.xml
Note: See the commented Sysmon configuration file for configuration explanations.
-
Run the following command to add a registry key to indicate to WMI filters that Sysmon is installed:
Copyreg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Microsoft-Windows-Sysmon/Operational"
-
Open a PowerShell terminal.
-
Browse to the folder that contains Sysmon64.exe.
-
Type the following command:
CopyPS C:\> .\Sysmon64.exe -u
To delete the registry key:
-
In the command-line interface, type the following command on all machines running Sysmon:
Copyreg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Microsoft-Windows-Sysmon/Operational"
- Copy and save the Sysmon configuration file as an XML file before you use it. In case of error, you can also download the configuration file directly here.
- Unblock the file in the file properties before you run it.
<Sysmon schemaversion="4.40">
<EventFiltering>
<!--SYSMON EVENT ID 1 : PROCESS CREATION [ProcessCreate]-->
<RuleGroup name="" groupRelation="or">
<ProcessCreate onmatch="exclude">
<!--NOTE: Using "exclude" with no rules means everything in this section will be logged-->
</ProcessCreate>
</RuleGroup>
<!--SYSMON EVENT ID 2 : FILE CREATION TIME RETROACTIVELY CHANGED IN THE FILESYSTEM [FileCreateTime]-->
<RuleGroup name="" groupRelation="or">
<FileCreateTime onmatch="include">
<!--NOTE: Using "include" with no rules means nothing in this section will be logged-->
</FileCreateTime>
</RuleGroup>
<!--SYSMON EVENT ID 3 : NETWORK CONNECTION INITIATED [NetworkConnect]-->
<RuleGroup name="" groupRelation="or">
<NetworkConnect onmatch="include">
<!--NOTE: Using "include" with no rules means nothing in this section will be logged-->
</NetworkConnect>
</RuleGroup>
<!--SYSMON EVENT ID 4 : RESERVED FOR SYSMON SERVICE STATUS MESSAGES-->
<!--Cannot be filtered.-->
<!--SYSMON EVENT ID 5 : PROCESS ENDED [ProcessTerminate]-->
<RuleGroup name="" groupRelation="or">
<ProcessTerminate onmatch="exclude">
<!--NOTE: Using "exclude" with no rules means everything in this section will be logged-->
</ProcessTerminate>
</RuleGroup>
<!--SYSMON EVENT ID 6 : DRIVER LOADED INTO KERNEL [DriverLoad]-->
<RuleGroup name="" groupRelation="or">
<DriverLoad onmatch="include">
<!--NOTE: Using "include" with no rules means nothing in this section will be logged-->
</DriverLoad>
</RuleGroup>
<!--SYSMON EVENT ID 7 : DLL (IMAGE) LOADED BY PROCESS [ImageLoad]-->
<RuleGroup name="" groupRelation="or">
<ImageLoad onmatch="include">
<!--NOTE: Using "include" with no rules means nothing in this section will be logged-->
</ImageLoad>
</RuleGroup>
<!--SYSMON EVENT ID 8 : REMOTE THREAD CREATED [CreateRemoteThread]-->
<RuleGroup name="" groupRelation="or">
<CreateRemoteThread onmatch="include">
<TargetImage name="lsass" condition="is">C:\Windows\system32\lsass.exe</TargetImage>
</CreateRemoteThread>
</RuleGroup>
<!--SYSMON EVENT ID 9 : RAW DISK ACCESS [RawAccessRead]-->
<RuleGroup name="" groupRelation="or">
<RawAccessRead onmatch="include">
<!--NOTE: Using "include" with no rules means nothing in this section will be logged-->
</RawAccessRead>
</RuleGroup>
<!--SYSMON EVENT ID 10 : INTER-PROCESS ACCESS [ProcessAccess]-->
<RuleGroup name="" groupRelation="or">
<ProcessAccess onmatch="include">
<!-- Detect Access to LSASS-->
<Rule groupRelation="and">
<TargetImage name="technique_id=T1003,technique_name=Credential Dumping" condition="is">C:\Windows\system32\lsass.exe</TargetImage>
<GrantedAccess>0x1FFFFF</GrantedAccess>
</Rule>
<Rule groupRelation="and">
<TargetImage name="technique_id=T1003,technique_name=Credential Dumping" condition="is">C:\Windows\system32\lsass.exe</TargetImage>
<GrantedAccess>0x1F1FFF</GrantedAccess>
</Rule>
<Rule groupRelation="and">
<TargetImage name="technique_id=T1003,technique_name=Credential Dumping" condition="is">C:\Windows\system32\lsass.exe</TargetImage>
<GrantedAccess>0x1010</GrantedAccess>
</Rule>
<Rule groupRelation="and">
<TargetImage name="technique_id=T1003,technique_name=Credential Dumping" condition="is">C:\Windows\system32\lsass.exe</TargetImage>
<GrantedAccess>0x143A</GrantedAccess>
</Rule>
<!-- Detect process hollowing to LSASS-->
<Rule groupRelation="and">
<TargetImage name="technique_id=T1003,technique_name=Credential Dumping" condition="is">C:\Windows\system32\lsass.exe</TargetImage>
<GrantedAccess>0x0800</GrantedAccess>
</Rule>
<Rule groupRelation="and">
<TargetImage name="technique_id=T1003,technique_name=Credential Dumping" condition="is">C:\Windows\system32\lsass.exe</TargetImage>
<GrantedAccess>0x800</GrantedAccess>
</Rule>
<!-- Detect process process injection to LSASS-->
<Rule groupRelation="and">
<TargetImage name="technique_id=T1055,technique_name=Process Injection" condition="is">C:\Windows\system32\lsass.exe</TargetImage>
<GrantedAccess>0x0820</GrantedAccess>
</Rule>
<Rule groupRelation="and">
<TargetImage name="technique_id=T1055,technique_name=Process Injection" condition="is">C:\Windows\system32\lsass.exe</TargetImage>
<GrantedAccess>0x820</GrantedAccess>
</Rule>
</ProcessAccess>
</RuleGroup>
<!--SYSMON EVENT ID 11 : FILE CREATED [FileCreate]-->
<RuleGroup name="" groupRelation="or">
<FileCreate onmatch="include">
<!--NOTE: Using "include" with no rules means nothing in this section will be logged-->
</FileCreate>
</RuleGroup>
<!--SYSMON EVENT ID 12 & 13 & 14 : REGISTRY MODIFICATION [RegistryEvent]-->
<RuleGroup name="" groupRelation="or">
<RegistryEvent onmatch="include">
<!--NOTE: Using "include" with no rules means nothing in this section will be logged-->
</RegistryEvent>
</RuleGroup>
<!--SYSMON EVENT ID 15 : ALTERNATE DATA STREAM CREATED [FileCreateStreamHash]-->
<RuleGroup name="" groupRelation="or">
<FileCreateStreamHash onmatch="include">
<!--NOTE: Using "include" with no rules means nothing in this section will be logged-->
</FileCreateStreamHash>
</RuleGroup>
<!--SYSMON EVENT ID 16 : SYSMON CONFIGURATION CHANGE-->
<!--Cannot be filtered.-->
<!--SYSMON EVENT ID 17 & 18 : PIPE CREATED / PIPE CONNECTED [PipeEvent]-->
<RuleGroup name="" groupRelation="or">
<PipeEvent onmatch="include">
<!--NOTE: Using "include" with no rules means nothing in this section will be logged-->
</PipeEvent>
</RuleGroup>
<!--SYSMON EVENT ID 19 & 20 & 21 : WMI EVENT MONITORING [WmiEvent]-->
<RuleGroup name="" groupRelation="or">
<WmiEvent onmatch="include">
<!--NOTE: Using "include" with no rules means nothing in this section will be logged-->
</WmiEvent>
</RuleGroup>
<!--SYSMON EVENT ID 22 : DNS QUERY [DnsQuery]-->
<RuleGroup name="" groupRelation="or">
<DnsQuery onmatch="include">
<!--NOTE: Using "include" with no rules means nothing in this section will be logged-->
</DnsQuery>
</RuleGroup>
<!--SYSMON EVENT ID 23 : FILE DELETED [FileDelete]-->
<RuleGroup name="" groupRelation="or">
<FileDelete onmatch="include">
<!--NOTE: Using "include" with no rules means nothing in this section will be logged-->
</FileDelete>
</RuleGroup>
</EventFiltering>
</Sysmon>