Archiving utility writing an archive into a local staging directory
Matches an archive file created by a command-line archiving binary underneath a local directory that is world-writable or routinely used as scratch space, which is the write half of MITRE's AN0724. The analytic describes reads across many locations followed by a compressed write into a staging directory; the read side and the time correlation are a multi-event problem Sigma cannot express, so this rule keeps what survives in a single Sysmon EventID 11 record — who wrote, what was written, and where. All three gates are required together on purpose: without the extension gate the same archivers match every file they unpack, and unpacking a download or an installer payload is far more common on an endpoint than creating an archive. It is shaped on the file write rather than the command line because the invocation side of the same behaviour belongs to Archive Collected Data. The parent T1074 rule in this corpus covers the same file_event category keyed on extension and path alone, and its path list is drive-agnostic, so an archiver-produced archive in one of these folders alerts under both IDs until that rule is re-scoped to the remote and mapped-drive targets that separate .001 from .002; the local observable — the C: anchor plus the writing process — is owned here. MITRE's StagingDirList knob names C:\Temp and C:\Windows\Tasks; the other paths are authored, as are all of the binaries except 7z.exe and rar.exe, which MITRE's ArchivingToolPatterns knob names. That knob also names zip.exe, which is not a Windows binary and would never appear in Image, so it is dropped rather than carried over; diantz.exe is added here as the cabinet maker an operator would reach for, while makecab.exe is deliberately absent because Component-Based Servicing compresses its own logs with it on every update. `\AppData\Local\Temp\` is left out for the same reason the parent rule leaves it out — every installer and browser download writes an archive there, and including it would bury the signal in routine software activity rather than surface it; that is a real coverage gap and the first place to look when this rule is quiet. Two further blind spots: the paths are anchored on C: and will not match a system installed on another drive, and PowerShell Compress-Archive records Image as powershell.exe, which is far too noisy to include. Note the audit prerequisite — this category is fed either by Sysmon EventID 11, whose FileCreate rules in the common shipped configurations filter C:\Windows\Temp and C:\ProgramData out, or by Security 4663, which needs the *Audit File System* subcategory **and** a SACL on each of these folders. Neither is on in a default install, and neither is in the MS or CIS baselines, so an empty result here means nothing is being recorded. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0261, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full descriptionShow less
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.
DeviceFileEvents| where (((InitiatingProcessFolderPath endswith "\\7z.exe" or InitiatingProcessFolderPath endswith "\\7za.exe" or InitiatingProcessFolderPath endswith "\\7zr.exe" or InitiatingProcessFolderPath endswith "\\7zg.exe" or InitiatingProcessFolderPath endswith "\\7zfm.exe" or InitiatingProcessFolderPath endswith "\\rar.exe" or InitiatingProcessFolderPath endswith "\\winrar.exe" or InitiatingProcessFolderPath endswith "\\tar.exe" or InitiatingProcessFolderPath endswith "\\diantz.exe") and (FolderPath endswith ".7z" or FolderPath endswith ".rar" or FolderPath endswith ".zip" or FolderPath endswith ".cab" or FolderPath endswith ".tar" or FolderPath endswith ".gz" or FolderPath endswith ".tgz")) and (FolderPath startswith "C:\\Temp\\" or FolderPath startswith "C:\\Windows\\Temp\\" or FolderPath startswith "C:\\Windows\\Tasks\\" or FolderPath startswith "C:\\PerfLogs\\" or FolderPath startswith "C:\\Users\\Public\\" or FolderPath startswith "C:\\ProgramData\\"))
Splunk · SPL
Run this as a search.
index=* (((Image="*\\7z.exe" OR Image="*\\7za.exe" OR Image="*\\7zr.exe" OR Image="*\\7zg.exe" OR Image="*\\7zfm.exe" OR Image="*\\rar.exe" OR Image="*\\winrar.exe" OR Image="*\\tar.exe" OR Image="*\\diantz.exe") AND (TargetFilename="*.7z" OR TargetFilename="*.rar" OR TargetFilename="*.zip" OR TargetFilename="*.cab" OR TargetFilename="*.tar" OR TargetFilename="*.gz" OR TargetFilename="*.tgz")) AND (TargetFilename="C:\\Temp\\*" OR TargetFilename="C:\\Windows\\Temp\\*" OR TargetFilename="C:\\Windows\\Tasks\\*" OR TargetFilename="C:\\PerfLogs\\*" OR TargetFilename="C:\\Users\\Public\\*" OR TargetFilename="C:\\ProgramData\\*"))Elastic · ES|QL
Run this as a search.
FROM logs-*| WHERE (((TO_LOWER(process.executable) LIKE "*\\\\7z.exe" OR TO_LOWER(process.executable) LIKE "*\\\\7za.exe" OR TO_LOWER(process.executable) LIKE "*\\\\7zr.exe" OR TO_LOWER(process.executable) LIKE "*\\\\7zg.exe" OR TO_LOWER(process.executable) LIKE "*\\\\7zfm.exe" OR TO_LOWER(process.executable) LIKE "*\\\\rar.exe" OR TO_LOWER(process.executable) LIKE "*\\\\winrar.exe" OR TO_LOWER(process.executable) LIKE "*\\\\tar.exe" OR TO_LOWER(process.executable) LIKE "*\\\\diantz.exe") AND (TO_LOWER(file.path) LIKE "*.7z" OR TO_LOWER(file.path) LIKE "*.rar" OR TO_LOWER(file.path) LIKE "*.zip" OR TO_LOWER(file.path) LIKE "*.cab" OR TO_LOWER(file.path) LIKE "*.tar" OR TO_LOWER(file.path) LIKE "*.gz" OR TO_LOWER(file.path) LIKE "*.tgz")) AND (TO_LOWER(file.path) LIKE "c:\\\\temp\\\\*" OR TO_LOWER(file.path) LIKE "c:\\\\windows\\\\temp\\\\*" OR TO_LOWER(file.path) LIKE "c:\\\\windows\\\\tasks\\\\*" OR TO_LOWER(file.path) LIKE "c:\\\\perflogs\\\\*" OR TO_LOWER(file.path) LIKE "c:\\\\users\\\\public\\\\*" OR TO_LOWER(file.path) LIKE "c:\\\\programdata\\\\*"))
Wazuh · XML rule
Deploy to your manager — this is a rule, not a search.
<group name="sigma,windows,file_event,"> <!-- Rule ids must be unique on your manager; 100000+ is the user range. --> <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)(\\7z\.exe$|\\7za\.exe$|\\7zr\.exe$|\\7zg\.exe$|\\7zfm\.exe$|\\rar\.exe$|\\winrar\.exe$|\\tar\.exe$|\\diantz\.exe$)</field> <field name="TargetFilename" type="pcre2">(?i)(\.7z$|\.rar$|\.zip$|\.cab$|\.tar$|\.gz$|\.tgz$)</field> <field name="TargetFilename" type="pcre2">(?i)(^C:\\Temp\\|^C:\\Windows\\Temp\\|^C:\\Windows\\Tasks\\|^C:\\PerfLogs\\|^C:\\Users\\Public\\|^C:\\ProgramData\\)</field> <description>Archiving utility writing an archive into a local staging directory</description> <mitre> <id>T1074.001</id> </mitre> </rule></group>
Verdicts · reactions · comments
Community
Verdicts from engineers who actually deployed it, and the conversation around it.
Nobody has run this in a real environment and said what happened.
Verdicts from engineers who deployed it
0 castNo 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.
No comments yet. Someone who deploys this will have something to say about it.