← All Tools
Sysmon Config Builder
Compose a Sysmon configuration with include/exclude logic, validate the event, field and condition names against the schema, and export valid XML that loads with sysmon -c.
100% client-side. Rules and exported XML never leave your browser.
Validation
Loading…
Live XML
How to use it
- Pick a schema version (it must be ≤ your Sysmon binary's; 4.90 = Sysmon v15+) and the hash algorithms to record.
- Add a rule group per event type, choose
includeorexclude, add field conditions, and watch the XML build live. - Read the Validation panel — red items would make Sysmon reject the config; yellow items are valid but worth a second look.
- Copy or download the XML, then on the host run
sysmon -c sysmon-config.xml(orsysmon -i sysmon-config.xmlfor a fresh install). Test on one machine first.
Include vs exclude (read this before deploying)
- include — Sysmon logs an event only when a rule matches. An include group with no rules logs nothing for that event (a deliberate way to disable an event).
- exclude — Sysmon logs every event except those a rule matches. An exclude group with no rules logs everything of that type. Exclude matches always take precedence over include matches.
- groupRelation —
or(default) logs when any condition matches;andrequires all conditions in the group to match the same event.
Conditions
The condition operators offered are exactly Sysmon's: is, is any, is not, contains, contains any, contains all, excludes, excludes any, excludes all, begin with, end with, not begin with, not end with, less than, more than, image. The … any/… all operators take a ;-delimited list of values. image matches a process image by name or full path (e.g. lsass.exe matches C:\windows\system32\lsass.exe). Values are XML-escaped automatically, so &, <, >, " and ' in a path are safe.
Limitations
- This builds the common
<RuleGroup>→ event → field-condition structure. Nested<Rule>elements (mixing AND/OR inside one event filter) are not yet offered — use group-levelgroupRelationfor AND/OR. - It validates the schema's structure, event names, field names and condition operators, but it cannot know your Sysmon binary version — verify the schema version with
sysmon -? config. - It is a composition aid, not a tuned detection baseline. For production, start from a maintained community config and tune it.
References
- Microsoft Learn — Sysmon (Sysinternals) — event IDs, config entries, conditions, RuleGroup/groupRelation.
- SwiftOnSecurity/sysmon-config and olafhartong/sysmon-modular — maintained community baselines to adapt.