Database or ledger file created by a script host or LOLBin
Matches a file-create event where a database, ledger or embedded-store file is laid down by a scripting host, a signed-binary proxy or a transfer utility rather than by the engine that owns it, which is the "abnormal changes to structured data outside expected business process activity" half of AN0162. Read the scope narrowly: this is suspicious data-store file *creation*, not detection of records being altered in place. Sysmon EventID 11 fires on create and overwrite only, so a row edited through the application or through SQL produces nothing here, and a freshly dropped store is at least as consistent with T1074-style local staging as with manipulation meant to deceive — the rule cannot separate the two. The brief's EventID 2 (`file_change`) source sits closer to genuine in-place manipulation but is a different logsource and needs its own rule. It also stands in for the stored-data case at the parent level: this is really T1565.001 territory, and when a T1565.001 rule is authored the two should be revisited and merged, with the parent left to carry .002 (transmitted) and .003 (runtime), neither of which this logic touches. Both lists are assembled here: MITRE names the `MonitoredFilePaths` and `AuthorizedProcesses` knobs, and a site should replace the extension list with its own critical data formats and the process list with the services that are actually entitled to write them. The rule is written in the Sysmon EventID 11 vocabulary (`TargetFilename`, `Image`); the Security EventID 4663 feed the brief also maps onto `file_event` splits the same facts into `ObjectName` and `ProcessName`, so it needs a field mapping before a SACL on the data directory would buy anything. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0059, 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 ((FolderPath endswith ".mdf" or FolderPath endswith ".ldf" or FolderPath endswith ".ndf" or FolderPath endswith ".mdb" or FolderPath endswith ".accdb" or FolderPath endswith ".sqlite" or FolderPath endswith ".sqlite3" or FolderPath endswith ".db" or FolderPath endswith ".dbf" or FolderPath endswith ".gdb" or FolderPath endswith ".qbw") and (InitiatingProcessFolderPath endswith "\\powershell.exe" or InitiatingProcessFolderPath endswith "\\pwsh.exe" or InitiatingProcessFolderPath endswith "\\cmd.exe" or InitiatingProcessFolderPath endswith "\\wscript.exe" or InitiatingProcessFolderPath endswith "\\cscript.exe" or InitiatingProcessFolderPath endswith "\\mshta.exe" or InitiatingProcessFolderPath endswith "\\rundll32.exe" or InitiatingProcessFolderPath endswith "\\regsvr32.exe" or InitiatingProcessFolderPath endswith "\\certutil.exe" or InitiatingProcessFolderPath endswith "\\curl.exe" or InitiatingProcessFolderPath endswith "\\python.exe" or InitiatingProcessFolderPath endswith "\\pythonw.exe" or InitiatingProcessFolderPath endswith "\\notepad.exe"))
Splunk · SPL
Run this as a search.
index=* ((TargetFilename="*.mdf" OR TargetFilename="*.ldf" OR TargetFilename="*.ndf" OR TargetFilename="*.mdb" OR TargetFilename="*.accdb" OR TargetFilename="*.sqlite" OR TargetFilename="*.sqlite3" OR TargetFilename="*.db" OR TargetFilename="*.dbf" OR TargetFilename="*.gdb" OR TargetFilename="*.qbw") AND (Image="*\\powershell.exe" OR Image="*\\pwsh.exe" OR Image="*\\cmd.exe" OR Image="*\\wscript.exe" OR Image="*\\cscript.exe" OR Image="*\\mshta.exe" OR Image="*\\rundll32.exe" OR Image="*\\regsvr32.exe" OR Image="*\\certutil.exe" OR Image="*\\curl.exe" OR Image="*\\python.exe" OR Image="*\\pythonw.exe" OR Image="*\\notepad.exe"))Elastic · ES|QL
Run this as a search.
FROM logs-*| WHERE ((TO_LOWER(file.path) LIKE "*.mdf" OR TO_LOWER(file.path) LIKE "*.ldf" OR TO_LOWER(file.path) LIKE "*.ndf" OR TO_LOWER(file.path) LIKE "*.mdb" OR TO_LOWER(file.path) LIKE "*.accdb" OR TO_LOWER(file.path) LIKE "*.sqlite" OR TO_LOWER(file.path) LIKE "*.sqlite3" OR TO_LOWER(file.path) LIKE "*.db" OR TO_LOWER(file.path) LIKE "*.dbf" OR TO_LOWER(file.path) LIKE "*.gdb" OR TO_LOWER(file.path) LIKE "*.qbw") AND (TO_LOWER(process.executable) LIKE "*\\\\powershell.exe" OR TO_LOWER(process.executable) LIKE "*\\\\pwsh.exe" OR TO_LOWER(process.executable) LIKE "*\\\\cmd.exe" OR TO_LOWER(process.executable) LIKE "*\\\\wscript.exe" OR TO_LOWER(process.executable) LIKE "*\\\\cscript.exe" OR TO_LOWER(process.executable) LIKE "*\\\\mshta.exe" OR TO_LOWER(process.executable) LIKE "*\\\\rundll32.exe" OR TO_LOWER(process.executable) LIKE "*\\\\regsvr32.exe" OR TO_LOWER(process.executable) LIKE "*\\\\certutil.exe" OR TO_LOWER(process.executable) LIKE "*\\\\curl.exe" OR TO_LOWER(process.executable) LIKE "*\\\\python.exe" OR TO_LOWER(process.executable) LIKE "*\\\\pythonw.exe" OR TO_LOWER(process.executable) LIKE "*\\\\notepad.exe"))
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="5"> <!-- Set <if_sid> to the decoder/base rule for windows so this only evaluates relevant events. --> <field name="TargetFilename" type="pcre2">(?i)(\.mdf$|\.ldf$|\.ndf$|\.mdb$|\.accdb$|\.sqlite$|\.sqlite3$|\.db$|\.dbf$|\.gdb$|\.qbw$)</field> <field name="Image" type="pcre2">(?i)(\\powershell\.exe$|\\pwsh\.exe$|\\cmd\.exe$|\\wscript\.exe$|\\cscript\.exe$|\\mshta\.exe$|\\rundll32\.exe$|\\regsvr32\.exe$|\\certutil\.exe$|\\curl\.exe$|\\python\.exe$|\\pythonw\.exe$|\\notepad\.exe$)</field> <description>Database or ledger file created by a script host or LOLBin</description> <mitre> <id>T1565</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.