Odbcconf loading a DLL through REGSVR or a response file
Matches the first step of AN1335's behaviour chain: a process creation of odbcconf.exe carrying either the `REGSVR` action, which hands a DLL path to the ODBC installer to load and call, or the `/f` response-file switch, which moves that same action into a text file where the string `REGSVR` never reaches the command line. Both branches are required because either one on its own leaves half the technique invisible — `odbcconf /a {REGSVR c:\users\public\file.dll}` is the form every public write-up shows, and `odbcconf /f payload.rsp` is how that command is hidden from exactly this kind of string match. The response-file branch is written with `windash` because odbcconf accepts `/f` and `-f` alike, and the dash variants are a standard way to slip a literal match. MITRE's `AllowedCommandPatterns` and `ParentProcessName` knobs are where an estate records the installer processes and argument shapes it expects to see; neither is applied here, because both are site-specific and an empty allowlist would silently disable the rule. Four limits are worth stating. A renamed copy of odbcconf.exe defeats the `Image` gate entirely, and renaming a signed LOLBIN is cheap. Sysmon EventID 1 does carry `OriginalFileName`, which survives a rename, and this rule is already written in Sysmon field names, so that gate is available and is simply not used here: it would put the binary anchor on two different fields, and the brief's own process source for this analytic is Security 4688, which has no equivalent to fall back on. A Sysmon-only estate should add `OriginalFileName: 'odbcconf.exe'` as an alternative to the `Image` test, and should expect the extra field to cost a backend or two. The rest of the chain is also not attempted: the module load of the payload DLL (Sysmon EventID 7) needs MITRE's `ApprovedModuleHashes` baseline to say anything, and the network and DNS legs (Sysmon EventID 3 and 22) describe what the loaded payload does rather than what odbcconf did, gated by a `TimeWindow` correlation lib/sigma cannot express. Vocabulary and prerequisite: the brief maps Security 4688 onto the Sysmon-shaped `process_creation` category, and this rule is written in the Sysmon EventID 1 vocabulary (`Image`, `CommandLine`); an estate feeding 4688 instead needs `NewProcessName` mapped onto `Image` first, and 4688 requires both *Audit Process Creation* and the separate *Include command line in process creation events* policy before `CommandLine` exists at all — neither is on in a default install or in the MS and CIS baselines, and without them this rule returns zero rows, which reads as quiet when it means blind. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0486, 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.
DeviceProcessEvents| where (FolderPath endswith "\\odbcconf.exe" and (ProcessCommandLine contains "REGSVR" or (ProcessCommandLine contains "-f " or ProcessCommandLine contains "/f " or ProcessCommandLine contains "–f " or ProcessCommandLine contains "—f " or ProcessCommandLine contains "―f ")))
Splunk · SPL
Run this as a search.
index=* (Image="*\\odbcconf.exe" AND (CommandLine="*REGSVR*" OR (CommandLine="*-f *" OR CommandLine="*/f *" OR CommandLine="*–f *" OR CommandLine="*—f *" OR CommandLine="*―f *")))Elastic · ES|QL
Run this as a search.
FROM logs-*| WHERE (TO_LOWER(process.executable) LIKE "*\\\\odbcconf.exe" AND (TO_LOWER(process.command_line) LIKE "*regsvr*" OR (TO_LOWER(process.command_line) LIKE "*-f *" OR TO_LOWER(process.command_line) LIKE "*/f *" OR TO_LOWER(process.command_line) LIKE "*–f *" OR TO_LOWER(process.command_line) LIKE "*—f *" OR TO_LOWER(process.command_line) LIKE "*―f *")))
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. --> <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)\\odbcconf\.exe$</field> <field name="CommandLine" type="pcre2">(?i)(REGSVR|(-f |/f |–f |—f |―f ))</field> <description>Odbcconf loading a DLL through REGSVR or a response file</description> <mitre> <id>T1218.008</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.