diff --git a/rules/windows/powershell/powershell_script/posh_ps_susp_clear_eventlog.yml b/rules/windows/powershell/powershell_script/posh_ps_susp_clear_eventlog.yml index dc82ea86f..81aeead07 100644 --- a/rules/windows/powershell/powershell_script/posh_ps_susp_clear_eventlog.yml +++ b/rules/windows/powershell/powershell_script/posh_ps_susp_clear_eventlog.yml @@ -9,8 +9,12 @@ references: - https://twitter.com/oroneequalsone/status/1568432028361830402 - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1070.001/T1070.001.md - https://eqllib.readthedocs.io/en/latest/analytics/5b223758-07d6-4100-9e11-238cfdd0fe97.html -author: Nasreddine Bencherchali (Nextron Systems) + - https://stackoverflow.com/questions/66011412/how-to-clear-a-event-log-in-powershell-7 + - https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.eventing.reader.eventlogsession.clearlog?view=windowsdesktop-9.0&viewFallbackFrom=dotnet-plat-ext-5.0#System_Diagnostics_Eventing_Reader_EventLogSession_ClearLog_System_String_ + - https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.eventlog.clear +author: Nasreddine Bencherchali (Nextron Systems), Swachchhanda Shrawan Poudel (Nextron Systems) date: 2022-09-12 +modified: 2025-03-12 tags: - attack.defense-evasion - attack.t1070.001 @@ -20,11 +24,17 @@ logsource: definition: 'Requirements: Script Block Logging must be enabled' detection: selection: - ScriptBlockText|contains: - - 'Clear-EventLog ' - - 'Remove-EventLog ' - - 'Limit-EventLog ' - - 'Clear-WinEvent ' + - ScriptBlockText|contains: + - 'Clear-EventLog ' + - 'Remove-EventLog ' + - 'Limit-EventLog ' + - 'Clear-WinEvent ' + - ScriptBlockText|contains|all: + - 'Eventing.Reader.EventLogSession' # [System.Diagnostics.Eventing.Reader.EventLogSession]::GlobalSession.ClearLog($_.LogName) + - 'ClearLog' + - ScriptBlockText|contains: + - 'Diagnostics.EventLog' + - 'Clear' condition: selection falsepositives: - Rare need to clear logs before doing something. Sometimes used by installers or cleaner scripts. The script should be investigated to determine if it's legitimate diff --git a/rules/windows/process_creation/proc_creation_win_susp_eventlog_clear.yml b/rules/windows/process_creation/proc_creation_win_susp_eventlog_clear.yml index 21e5ba0bc..30e1dd7b4 100644 --- a/rules/windows/process_creation/proc_creation_win_susp_eventlog_clear.yml +++ b/rules/windows/process_creation/proc_creation_win_susp_eventlog_clear.yml @@ -10,9 +10,13 @@ references: - https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/wevtutil - https://gist.github.com/fovtran/ac0624983c7722e80a8f5a4babb170ee - https://jdhnet.wordpress.com/2017/12/19/changing-the-location-of-the-windows-event-logs/ -author: Ecco, Daniil Yugoslavskiy, oscd.community, D3F7A5105 + - https://www.linkedin.com/posts/huntress-labs_when-a-sketchy-incident-hits-your-network-activity-7304940371078238208-Th_l/?utm_source=share&utm_medium=member_desktop&rcm=ACoAAAJTlRcB28IaUtg03HUU-IdliwzoAL1flGc + - https://stackoverflow.com/questions/66011412/how-to-clear-a-event-log-in-powershell-7 + - https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.eventing.reader.eventlogsession.clearlog?view=windowsdesktop-9.0&viewFallbackFrom=dotnet-plat-ext-5.0#System_Diagnostics_Eventing_Reader_EventLogSession_ClearLog_System_String_ + - https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.eventlog.clear +author: Ecco, Daniil Yugoslavskiy, oscd.community, D3F7A5105, Swachchhanda Shrawan Poudel (Nextron Systems) date: 2019-09-26 -modified: 2023-07-13 +modified: 2025-03-12 tags: - attack.defense-evasion - attack.t1070.001 @@ -22,30 +26,41 @@ logsource: category: process_creation product: windows detection: - selection_wevtutil: - Image|endswith: '\wevtutil.exe' + selection_wevtutil_img: + - Image|endswith: '\wevtutil.exe' + - OriginalFileName: 'wevtutil.exe' + selection_wevtutil_cmd: CommandLine|contains: - 'clear-log ' # clears specified log - ' cl ' # short version of 'clear-log' - 'set-log ' # modifies config of specified log. could be uset to set it to a tiny size - ' sl ' # short version of 'set-log' - 'lfn:' # change log file location and name - selection_other_ps: + selection_other_ps_img: Image|endswith: - '\powershell.exe' + - '\powershell_ise.exe' - '\pwsh.exe' - CommandLine|contains: - - 'Clear-EventLog ' - - 'Remove-EventLog ' - - 'Limit-EventLog ' - - 'Clear-WinEvent ' + selection_other_ps_cmd: + - CommandLine|contains: + - 'Clear-EventLog ' + - 'Remove-EventLog ' + - 'Limit-EventLog ' + - 'Clear-WinEvent ' + - CommandLine|contains|all: + - 'Eventing.Reader.EventLogSession' # [System.Diagnostics.Eventing.Reader.EventLogSession]::GlobalSession.ClearLog($_.LogName) + - 'ClearLog' + - CommandLine|contains|all: + - 'Diagnostics.EventLog' + - 'Clear' selection_other_wmi: Image|endswith: - '\powershell.exe' + - '\powershell_ise.exe' - '\pwsh.exe' - '\wmic.exe' CommandLine|contains: 'ClearEventLog' - filter_msiexec: + filter_main_msiexec: # Example seen during office update/installation: # ParentImage: C:\Windows\SysWOW64\msiexec.exe # CommandLine: "C:\WINDOWS\system32\wevtutil.exe" sl Microsoft-RMS-MSIPC/Debug /q:true /e:true /l:4 /rt:false @@ -53,7 +68,7 @@ detection: - 'C:\Windows\SysWOW64\msiexec.exe' - 'C:\Windows\System32\msiexec.exe' CommandLine|contains: ' sl ' - condition: 1 of selection_* and not 1 of filter_* + condition: (all of selection_wevtutil_*) or (all of selection_other_ps_*) or (selection_other_wmi) and not 1 of filter_main_* falsepositives: - Admin activity - Scripts and administrative tools used in the monitored environment