Sysmon v2.0 – new version of a small but great tool

Yesterday Microsoft released Sysmon v2.0 which was again put together by Mark Russinovich (@ and Thomas Garnier under the famous label of Sysinternals.

Here is a blogpost about the first release of Sysmon from my blog.

New in version two are:

  • Include a session GUID in each events to allow correlation of events on same logon session.
  • Logs loading of drivers or DLLs with their signatures and hashes.
  • Automatically reload configuration if changed in the registry.
  • Rule filtering to include or exclude certain events dynamically.
  • The ability to create configuration files for sysmon
  • new Eventlog entries

The Sysmon v2.0 page describes the logged events:


On Vista and higher, events are stored in "Applications and Services Logs/Microsoft/Windows/Sysmon/Operational", and on older systems events are written to the System event log. Event timestamps are in UTC standard time.

The following are examples of each event type that Sysmon generates.

Event ID 1: Process creation

The process creation event provides extended information about a newly created process. The full command line provides context on the process execution. The ProcessGUID field is a unique value for this process across a domain to make event correlation easier. The hash is a full hash of the file with the algorithms in the HashType field.

Event ID 2: A process changed a file creation time

The change file creation time event is registered when a file creation time is explicitly modified by a process. This event helps tracking the real creation time of a file. Attackers may change the file creation time of a backdoor to make it look like it was installed with the operating system. Note that many processes legitimately change the creation time of a file; it does not necessarily indicate malicious activity.

Event ID 3: Network connection

The network connection event logs TCP/UDP connections on the machine. It is disabled by default. Each connection is linked to a process through the ProcessId and ProcessGUID fields. The event also contains the source and destination host names IP addresses, port numbers and IPv6 status.

Event ID 4: Sysmon service state changed

The service state change event reports the state of the Sysmon service (started or stopped).

Event ID 5: Process terminated

The process terminate event reports when a process terminates. It provides the UtcTime, ProcessGuid and ProcessId of the process.

Event ID 6: Driver loaded

The driver loaded events provides information about a driver being loaded on the system. The configured hashes are provided as well as signature information. The signature is done asynchronously for performance reasons and indicates if the file was removed after loading.

Event ID 7: Image loaded

The image loaded event logs when a module is loaded in a specific process. This event is disabled by default and needs to be configured with the –l option. It indicates the process in which the module is loaded, hashes and signature information.  The signature is done asynchronously for performance reasons and indicates if the file was removed after loading. This event should be configured carefully, as monitoring all image load events will generate a large number of events.

Event ID 255: Error

This event is generated when an error occurred within Sysmon. They can happen if the system is under heavy load and certain tasked could not be performed or a bug exists in the Sysmon service. You can report any bugs on the Sysinternals forum or over twitter ( @markrussinovich or @mxatone).


Before you can install the new version, you have to uninstall version one which is very simple:

just run “sysmon.exe –u”

After that you can install Sysmon v2.0 with any of the following parameters:

Update configuration of an installed Sysmon driver or dump the current configuration if no other argument is provided. Optionally take a configuration file.

Specify the hash algorithms used for image identification (default is SHA1). It supports multiple algorithms at the same time. Configuration entry: Hashing.

Install service and driver. Optionally take a configuration file.

Log loading of modules. Optionally take a list of processes to track. Configuration entry: ImageLoading.

Install the event manifest (done on service install as well).

Log network connections. Optionally take a list of processes to track. Configuration entry: Network.

Uninstall service and driver.


To get more insight and see some examples just head over to the official page


BTW: Don´t forget to follow Mark (@markrussinovich) and Thomas (@mxatone) on Twitter to get the latest news about sysinternals

Sysinternals Sysmon – a great way to see what´s happening on your system


Two days ago Mark Russinovic released a new tool call sysmon in his Sysinternals Suite (which is owned by Microsoft now).

This tool can help you getting an overview about things that often happen on your system while it is or is getting compromised by creating events for specific things like the change a precess creation time, creation of new processes and optionally new network connections into the eventlog.

Here´s an extract of the features from the official website:

Overview of Sysmon Capabilities

Sysmon includes the following capabilities:

  • Logs process creation with full command line for both current and parent processes.
  • Records the hash of process image files using SHA1 (the default), MD5 or SHA256.
  • Includes a process GUID in process create events to allow for correlation of events even when Windows reuses process IDs.
  • Optionally logs network connections, including each connection’s source process, IP addresses, port numbers, hostnames and port names.
  • Detects changes in file creation time to understand when a file was really created. Modification of file create timestamps is a technique commonly used by malware to cover its tracks.
  • Generates events from early in the boot process to capture activity made by even sophisticated kernel-mode malware.

After you downloaded it, extract it and just run sysmon.exe to see the parameters it offers:



To install sysmon as a service and with network connection monitoring enabled, run

sysmon –i –n            

After accepting the EULA it will install and show you the result:



No reboot is needed, the service starts working immediately.

You can now open your Eventviewer and navigate to Applications and Services\Microsoft\Windows\Sysmon\Operational (for Windows 8.1) to see the entries:

EventID 1 is for a new created process. This is the Details-tab of EventID 1:



EventID 2 is for changes of a file creaton time:


Like Larry Stelzer in his post about sysmon, I see many entries related to chrome with this EventID.


EventID 3 stands for a new network connection:



An important note on the official site states:


Note that Sysmon does not provide analysis of the events it generates, nor does it attempt to protect or hide itself from attackers.

So while this tool can help you analyze what was/is going on, it can happen that the log also gets compromised.

But: if your SIEM or Log-server tool of choice gets involved, this new tool can help catching the bad guys earlier.