Skip to content

Siemphony is in beta and still being built. What ships today, and what does not.

Siemphony’s repertoire

Windows event log cleared via wevtutil or a PowerShell log cmdlet

Siemphony@siemphonymediumT1685.005unverified
AN1472 names three mechanisms — wevtutil, PowerShell, and direct deletion of .evtx files — and this rule covers the first two on the Sysmon process- creation leg, since both are new-process events that put the verb on `CommandLine`. The wevtutil arm requires the binary itself (`Image` ending `\wevtutil.exe`) together with its clear-log verb (`cl` or `clear-log`) on the command line, so a `wevtutil` invocation for any other subcommand — `qe`, `epl`, `gli` — does not match. The PowerShell arm matches `Remove-EventLog`/`Clear-EventLog` by name on `CommandLine` regardless of binary, since both are cmdlets rather than external tools. The brief's Security 1102 leg ("The audit log was cleared") is not used here even though it is the more reliable of the three: 1102 fires only when the Security channel specifically is cleared, so it is silent for `wevtutil cl system` or `wevtutil cl application`, and MITRE's own technique description and `TargetLogName` knob are explicit that all three logs are in scope — a Security-only signal would silently miss two thirds of the technique's stated behaviour. Sysmon EventID 23 (file deletion of the raw .evtx files under `winevt\Logs`) is likewise not used: it is a separate logsource from process creation and a Sigma rule carries one, so the direct-deletion mechanism AN1472 names is out of scope for this rule and would need its own. This rule needs Sysmon installed and EventID 1 enabled; it needs no Windows audit policy change, unlike the Security 4688 alternative this brief does not offer. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0532, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full description

The detection

The 4 SIEM queries below are previews produced by Siemphony’s own translator, not pySigma, and none has been executed against a real backend — review before you deploy.

detection.yml

Sentinel · KQL

Run this as a search.

DeviceProcessEvents| where ((FolderPath endswith "\\wevtutil.exe" and (ProcessCommandLine contains " cl " or ProcessCommandLine contains " clear-log ")) or (ProcessCommandLine contains "Remove-EventLog" or ProcessCommandLine contains "Clear-EventLog"))

Splunk · SPL

Run this as a search.

index=* ((Image="*\\wevtutil.exe" AND (CommandLine="* cl *" OR CommandLine="* clear-log *")) OR (CommandLine="*Remove-EventLog*" OR CommandLine="*Clear-EventLog*"))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE ((TO_LOWER(process.executable) LIKE "*\\\\wevtutil.exe" AND (TO_LOWER(process.command_line) LIKE "* cl *" OR TO_LOWER(process.command_line) LIKE "* clear-log *")) OR (TO_LOWER(process.command_line) LIKE "*remove-eventlog*" OR TO_LOWER(process.command_line) LIKE "*clear-eventlog*"))

Wazuh · XML rule

Deploy to your manager — this is a rule, not a search.

<group name="sigma,windows,process_creation,">  <!-- Rule ids must be unique on your manager; 100000+ is the user range. -->  <!-- 2 rules: the Sigma condition ORs across different fields,       which one rule cannot express. Any one matching is a hit. -->  <rule id="100000" level="7">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="Image" type="pcre2">(?i)\\wevtutil\.exe$</field>    <field name="CommandLine" type="pcre2">(?i)( cl | clear-log )</field>    <description>Windows event log cleared via wevtutil or a PowerShell log cmdlet (1/2)</description>    <mitre>      <id>T1685.005</id>    </mitre>  </rule>   <rule id="100001" level="7">    <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. -->    <field name="CommandLine" type="pcre2">(?i)(Remove-EventLog|Clear-EventLog)</field>    <description>Windows event log cleared via wevtutil or a PowerShell log cmdlet (2/2)</description>    <mitre>      <id>T1685.005</id>    </mitre>  </rule></group>

Verdicts · reactions · comments

Community

Verdicts from engineers who actually deployed it, and the conversation around it.

Log in to react
Not yet reported on

Nobody has run this in a real environment and said what happened.

Verdicts from engineers who deployed it

0 cast

No verdicts reported yet. The first one is worth more than the tenth — say what you ran it against.

Log in to report a verdict.

Log in to join the discussion.

2 threads

  • @nadia-brandt

    Small note on the PowerShell arm: Clear-EventLog and Remove-EventLog are Windows PowerShell 5.1 cmdlets and were dropped in PowerShell Core. On a pwsh-only host that arm can only fire on someone typing a cmdlet that does not exist there. Not an argument for removing it — 5.1 is on every Windows box and is where the technique actually lands — just do not read its silence on your pwsh fleet as coverage.

  • @owen-mackay

    The reasoning for skipping Security 1102 is sound and I agree with it as a scoping decision, but in practice we run both and they are not redundant. This rule sees intent — someone invoked the verb. 1102 is written by the Event Log service itself, so it survives an attacker who has already killed Sysmon, and it is frequently the only thing left. Intent and effect, and on a bad day you only get one of them.