Skip to content

Siemphony is in beta and still being built. What ships today, and what does not.

Siemphony’s repertoire

Non-browser process resolving a file-sharing or paste service

Siemphony@siemphonylowT1567+3unverified
What separates this technique from exfiltration over a raw channel is the identity of the destination service, and the DNS query is the only log source in AN1511 that carries that identity on a single event — so this rule pins `QueryName` to file-sharing, paste, messaging-API and cloud-storage-API domains and `Image` to the script hosts, signed-binary proxies, transfer utilities and Office applications the analytic calls out as processes that do not normally initiate network communications. Both lists are assembled here; MITRE supplies the `MonitoredServices` knob and not its contents, and the provider list is a dated starting point — services come and go (anonfiles closed in 2023) and a site should replace it with the providers it has not sanctioned. The programmatic hostnames are included deliberately, because business-tenant exfiltration with a stolen token resolves `www.googleapis.com`, `graph.microsoft.com` or a tenant SharePoint host rather than the consumer names — on an M365 or Workspace estate those three match constantly and are the first entries to cut. Scope: every provider named here belongs to a child technique — cloud storage to T1567.002, paste sites to T1567.003, the Telegram and Discord webhook endpoints to T1567.004, all tagged below — and the parent-level behaviours that do not reduce to a named provider are out of scope for this rule. The analytic's real discriminator is the outbound-to-inbound volume ratio over a `TimeWindow`, and Sigma has neither aggregation nor a numeric threshold, so this fires on one name resolution instead; a resolution is not a transfer and carries no direction, so a download and an upload are identical here, a tool that hands its transport to a service process resolves nothing under its own name, and the rule sees nothing at all unless the running Sysmon configuration is version 10 or later with DNS query logging enabled and not filtered out. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0548, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full description

The detection

The 3 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=* ((QueryName="*dropbox.com" OR QueryName="*dropboxapi.com" OR QueryName="*drive.google.com" OR QueryName="*www.googleapis.com" OR QueryName="*oauth2.googleapis.com" OR QueryName="*onedrive.live.com" OR QueryName="*api.onedrive.com" OR QueryName="*graph.microsoft.com" OR QueryName="*sharepoint.com" OR QueryName="*mega.nz" OR QueryName="*mega.co.nz" OR QueryName="*wetransfer.com" OR QueryName="*transfer.sh" OR QueryName="*file.io" OR QueryName="*gofile.io" OR QueryName="*pastebin.com" OR QueryName="*hastebin.com" OR QueryName="*paste.ee" OR QueryName="*api.telegram.org" OR QueryName="*discord.com" OR QueryName="*discordapp.com") AND (Image="*\\powershell.exe" OR Image="*\\pwsh.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="*\\rclone.exe" OR Image="*\\winword.exe" OR Image="*\\excel.exe" OR Image="*\\powerpnt.exe"))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE ((TO_LOWER(dns.question.name) LIKE "*dropbox.com" OR TO_LOWER(dns.question.name) LIKE "*dropboxapi.com" OR TO_LOWER(dns.question.name) LIKE "*drive.google.com" OR TO_LOWER(dns.question.name) LIKE "*www.googleapis.com" OR TO_LOWER(dns.question.name) LIKE "*oauth2.googleapis.com" OR TO_LOWER(dns.question.name) LIKE "*onedrive.live.com" OR TO_LOWER(dns.question.name) LIKE "*api.onedrive.com" OR TO_LOWER(dns.question.name) LIKE "*graph.microsoft.com" OR TO_LOWER(dns.question.name) LIKE "*sharepoint.com" OR TO_LOWER(dns.question.name) LIKE "*mega.nz" OR TO_LOWER(dns.question.name) LIKE "*mega.co.nz" OR TO_LOWER(dns.question.name) LIKE "*wetransfer.com" OR TO_LOWER(dns.question.name) LIKE "*transfer.sh" OR TO_LOWER(dns.question.name) LIKE "*file.io" OR TO_LOWER(dns.question.name) LIKE "*gofile.io" OR TO_LOWER(dns.question.name) LIKE "*pastebin.com" OR TO_LOWER(dns.question.name) LIKE "*hastebin.com" OR TO_LOWER(dns.question.name) LIKE "*paste.ee" OR TO_LOWER(dns.question.name) LIKE "*api.telegram.org" OR TO_LOWER(dns.question.name) LIKE "*discord.com" OR TO_LOWER(dns.question.name) LIKE "*discordapp.com") AND (TO_LOWER(process.executable) LIKE "*\\\\powershell.exe" OR TO_LOWER(process.executable) LIKE "*\\\\pwsh.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 "*\\\\rclone.exe" OR TO_LOWER(process.executable) LIKE "*\\\\winword.exe" OR TO_LOWER(process.executable) LIKE "*\\\\excel.exe" OR TO_LOWER(process.executable) LIKE "*\\\\powerpnt.exe"))

Wazuh · XML rule

Deploy to your manager — this is a rule, not a search.

<group name="sigma,windows,dns_query,">  <!-- 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="QueryName" type="pcre2">(?i)(dropbox\.com$|dropboxapi\.com$|drive\.google\.com$|www\.googleapis\.com$|oauth2\.googleapis\.com$|onedrive\.live\.com$|api\.onedrive\.com$|graph\.microsoft\.com$|sharepoint\.com$|mega\.nz$|mega\.co\.nz$|wetransfer\.com$|transfer\.sh$|file\.io$|gofile\.io$|pastebin\.com$|hastebin\.com$|paste\.ee$|api\.telegram\.org$|discord\.com$|discordapp\.com$)</field>    <field name="Image" type="pcre2">(?i)(\\powershell\.exe$|\\pwsh\.exe$|\\wscript\.exe$|\\cscript\.exe$|\\mshta\.exe$|\\rundll32\.exe$|\\regsvr32\.exe$|\\certutil\.exe$|\\curl\.exe$|\\python\.exe$|\\pythonw\.exe$|\\rclone\.exe$|\\winword\.exe$|\\excel\.exe$|\\powerpnt\.exe$)</field>    <description>Non-browser process resolving a file-sharing or paste service</description>    <mitre>      <id>T1567</id>      <id>T1567.002</id>      <id>T1567.003</id>      <id>T1567.004</id>    </mitre>  </rule></group>

Sentinel · KQL

Run this as a search.

Sentinel cannot express this construct. No Sentinel table is modelled for this logsource ({"category":"dns_query","product":"windows"}), so there is nothing honest to query. Pick a logsource this translator maps, or write the KQL by hand. 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.

Log in to react
Not yet reported on

Nobody has run this in a real environment and said what happened.

Verdicts from engineers who deployed it

0 cast

No 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.