File transfer utility opening an outbound connection
MITRE's analytic opens with an uncommon process making an external connection and ends with a tool appearing on disk. The network-connection event is the one log source in the strategy that names the process and the destination together, so this rule matches the first step: an outbound connection initiated by one of the transfer utilities the technique text names — finger, certutil, curl and tftp — plus ftp.exe and the OpenSSH client, which are the author's addition rather than MITRE's. Sysmon EventID 3 names the process that owns the socket, which rules several canonical downloaders out of this log source entirely: bitsadmin.exe only queues a job that the BITS service performs later from inside svchost.exe, and scp.exe and sftp.exe hand the transport to ssh.exe, so ssh.exe is the image listed here and the other three would never match. Catching those needs a separate process_creation rule on the command line (bitsadmin with /transfer or /addfile). wget.exe is kept although Windows does not ship it — on Windows `wget` is a PowerShell alias for Invoke-WebRequest, which runs inside powershell.exe, so a real wget.exe image means somebody brought the binary, which is itself the signal. Interpreted downloaders are deliberately absent: matching powershell.exe or a browser here would fire on every host continuously, and the file-creation half of the chain is a timed correlation Sigma cannot express, so a hit is a download attempt and not evidence that anything landed. Two limitations to state plainly. The image name is the whole detection and Sysmon EventID 3 carries no OriginalFileName, so copying curl.exe to another filename defeats the rule outright; pair it with a process_creation companion keyed on OriginalFileName, which survives a rename (curl.exe ships as `curl.exe`, certutil as `CertUtil.exe`). And Sigma has no CIDR operator, so a fetch from an internal artefact mirror alerts exactly like a fetch from the internet — MITRE's DestinationIPCategory knob has to be implemented as a backend-side address filter after translation. Sysmon EventID 3 is also frequently disabled or narrowly filtered in shipped configurations, and where it is, this rule returns nothing regardless of what ran. UNVERIFIED — derived from MITRE ATT&CK DET0060 and never executed against logs.Full descriptionShow less
The detection
The 2 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
Splunk · SPL
Run this as a search.
index=* ((Image="*\\certutil.exe" OR Image="*\\finger.exe" OR Image="*\\tftp.exe" OR Image="*\\curl.exe" OR Image="*\\wget.exe" OR Image="*\\ftp.exe" OR Image="*\\ssh.exe") AND Initiated="true")Wazuh · XML rule
Deploy to your manager — this is a rule, not a search.
<group name="sigma,windows,network_connection,"> <!-- 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="Image" type="pcre2">(?i)(\\certutil\.exe$|\\finger\.exe$|\\tftp\.exe$|\\curl\.exe$|\\wget\.exe$|\\ftp\.exe$|\\ssh\.exe$)</field> <field name="Initiated" type="pcre2">(?i)^true$</field> <description>File transfer utility opening an outbound connection</description> <mitre> <id>T1105</id> </mitre> </rule></group>
Sentinel · KQL
Run this as a search.
Sentinel cannot express this construct. `Initiated` has no Sentinel column: Defender expresses connection direction in `ActionType`, not as a boolean column, so `Initiated` cannot be renamed — it needs a different predicate. The Sigma source is on the first tab, unchanged.
Elastic · ES|QL
Run this as a search.
Elastic cannot express this construct. `Initiated` has no ECS field: ECS expresses connection direction as `network.direction` with values like `egress`, not as a boolean, so `Initiated` needs a different predicate rather than a rename. The Sigma source is on the first tab, unchanged.
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.