Skip to content

Siemphony is in beta and still being built. How a rule earns its badge.

Siemphony’s repertoire

Executable or script written by a consumer messaging client

Siemphony@siemphonylowT1566.003unverified
Takes the delivery leg of AN0320 and pins it to the writing process rather than to a folder: a desktop chat or social client — the non-enterprise channel that defines this sub-technique — creating a file of an executable, script, shortcut or disk-image type on the endpoint. The mail secure-cache path used for T1566.001 structurally cannot see this, because a message delivered through a third-party service never touches the mail client, and a rule keyed on a browser writing the file would be the drive-by logic already authored for T1189, so the client process list is the discriminator that remains. These clients rewrite their own program and cache trees on every release — an Electron self-update unpacks hundreds of .js files under its own AppData directory, under the same process name — so those trees are excluded by path, and that filter is the difference between a rule that reports deliveries and one that reports updates. Microsoft Teams is left out because internal chat between colleagues would make sharing a build the normal case, which does mean the external-tenant Teams route used in several recent intrusions is not covered here. The largest blind spot is the extension list itself: a payload sent as a .zip, .7z or .docm matches nothing, and those are the usual wrappers precisely because users reach for an archive for anything multi-file — they are excluded because they are also the bulk of what colleagues legitimately exchange over chat. Two further limits: MITRE's MonitoredServices and TimeWindow knobs describe a correlation across the message, the write and the follow-on execution that Sigma has no construct for, so this fires on delivery alone; and it requires Sysmon EventID 11 with neither these processes nor these extensions excluded, which the widely deployed community configurations do not leave intact. UNVERIFIED AS AUTHORED — derived from MITRE ATT&CK DET0115, not hand-written and not tested by its author. Any lab result is on this rule's own page.Full description

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 "\\Discord.exe" or InitiatingProcessFolderPath endswith "\\Telegram.exe" or InitiatingProcessFolderPath endswith "\\Signal.exe" or InitiatingProcessFolderPath endswith "\\slack.exe" or InitiatingProcessFolderPath endswith "\\Skype.exe" or InitiatingProcessFolderPath endswith "\\Viber.exe" or InitiatingProcessFolderPath endswith "\\Element.exe" or InitiatingProcessFolderPath endswith "\\WhatsApp.exe") and (FolderPath endswith ".exe" or FolderPath endswith ".msi" or FolderPath endswith ".scr" or FolderPath endswith ".pif" or FolderPath endswith ".com" or FolderPath endswith ".bat" or FolderPath endswith ".cmd" or FolderPath endswith ".ps1" or FolderPath endswith ".vbs" or FolderPath endswith ".vbe" or FolderPath endswith ".js" or FolderPath endswith ".jse" or FolderPath endswith ".wsf" or FolderPath endswith ".hta" or FolderPath endswith ".lnk" or FolderPath endswith ".chm" or FolderPath endswith ".jar" or FolderPath endswith ".iso" or FolderPath endswith ".img" or FolderPath endswith ".vhd" or FolderPath endswith ".vhdx")) and not ((FolderPath contains "\\AppData\\Local\\Discord\\" or FolderPath contains "\\AppData\\Local\\DiscordPTB\\" or FolderPath contains "\\AppData\\Local\\DiscordCanary\\" or FolderPath contains "\\AppData\\Local\\slack\\" or FolderPath contains "\\AppData\\Roaming\\Slack\\" or FolderPath contains "\\AppData\\Roaming\\Telegram Desktop\\" or FolderPath contains "\\AppData\\Local\\Programs\\signal-desktop\\" or FolderPath contains "\\AppData\\Roaming\\Signal\\" or FolderPath contains "\\AppData\\Local\\Programs\\element-desktop\\" or FolderPath contains "\\AppData\\Roaming\\Element\\" or FolderPath contains "\\AppData\\Local\\Microsoft\\Skype for Desktop\\" or FolderPath contains "\\AppData\\Roaming\\Microsoft\\Skype for Desktop\\" or FolderPath contains "\\AppData\\Local\\Viber\\" or FolderPath contains "\\AppData\\Roaming\\ViberPC\\" or FolderPath contains "\\AppData\\Local\\WhatsApp\\" or FolderPath contains "\\AppData\\Local\\SquirrelTemp\\" or FolderPath contains "\\AppData\\Local\\Packages\\")))

Splunk · SPL

Run this as a search.

index=* (((Image="*\\Discord.exe" OR Image="*\\Telegram.exe" OR Image="*\\Signal.exe" OR Image="*\\slack.exe" OR Image="*\\Skype.exe" OR Image="*\\Viber.exe" OR Image="*\\Element.exe" OR Image="*\\WhatsApp.exe") AND (TargetFilename="*.exe" OR TargetFilename="*.msi" OR TargetFilename="*.scr" OR TargetFilename="*.pif" OR TargetFilename="*.com" OR TargetFilename="*.bat" OR TargetFilename="*.cmd" OR TargetFilename="*.ps1" OR TargetFilename="*.vbs" OR TargetFilename="*.vbe" OR TargetFilename="*.js" OR TargetFilename="*.jse" OR TargetFilename="*.wsf" OR TargetFilename="*.hta" OR TargetFilename="*.lnk" OR TargetFilename="*.chm" OR TargetFilename="*.jar" OR TargetFilename="*.iso" OR TargetFilename="*.img" OR TargetFilename="*.vhd" OR TargetFilename="*.vhdx")) AND NOT ((TargetFilename="*\\AppData\\Local\\Discord\\*" OR TargetFilename="*\\AppData\\Local\\DiscordPTB\\*" OR TargetFilename="*\\AppData\\Local\\DiscordCanary\\*" OR TargetFilename="*\\AppData\\Local\\slack\\*" OR TargetFilename="*\\AppData\\Roaming\\Slack\\*" OR TargetFilename="*\\AppData\\Roaming\\Telegram Desktop\\*" OR TargetFilename="*\\AppData\\Local\\Programs\\signal-desktop\\*" OR TargetFilename="*\\AppData\\Roaming\\Signal\\*" OR TargetFilename="*\\AppData\\Local\\Programs\\element-desktop\\*" OR TargetFilename="*\\AppData\\Roaming\\Element\\*" OR TargetFilename="*\\AppData\\Local\\Microsoft\\Skype for Desktop\\*" OR TargetFilename="*\\AppData\\Roaming\\Microsoft\\Skype for Desktop\\*" OR TargetFilename="*\\AppData\\Local\\Viber\\*" OR TargetFilename="*\\AppData\\Roaming\\ViberPC\\*" OR TargetFilename="*\\AppData\\Local\\WhatsApp\\*" OR TargetFilename="*\\AppData\\Local\\SquirrelTemp\\*" OR TargetFilename="*\\AppData\\Local\\Packages\\*")))

Elastic · ES|QL

Run this as a search.

FROM logs-*| WHERE (((TO_LOWER(process.executable) LIKE "*\\\\discord.exe" OR TO_LOWER(process.executable) LIKE "*\\\\telegram.exe" OR TO_LOWER(process.executable) LIKE "*\\\\signal.exe" OR TO_LOWER(process.executable) LIKE "*\\\\slack.exe" OR TO_LOWER(process.executable) LIKE "*\\\\skype.exe" OR TO_LOWER(process.executable) LIKE "*\\\\viber.exe" OR TO_LOWER(process.executable) LIKE "*\\\\element.exe" OR TO_LOWER(process.executable) LIKE "*\\\\whatsapp.exe") AND (TO_LOWER(file.path) LIKE "*.exe" OR TO_LOWER(file.path) LIKE "*.msi" OR TO_LOWER(file.path) LIKE "*.scr" OR TO_LOWER(file.path) LIKE "*.pif" OR TO_LOWER(file.path) LIKE "*.com" OR TO_LOWER(file.path) LIKE "*.bat" OR TO_LOWER(file.path) LIKE "*.cmd" OR TO_LOWER(file.path) LIKE "*.ps1" OR TO_LOWER(file.path) LIKE "*.vbs" OR TO_LOWER(file.path) LIKE "*.vbe" OR TO_LOWER(file.path) LIKE "*.js" OR TO_LOWER(file.path) LIKE "*.jse" OR TO_LOWER(file.path) LIKE "*.wsf" OR TO_LOWER(file.path) LIKE "*.hta" OR TO_LOWER(file.path) LIKE "*.lnk" OR TO_LOWER(file.path) LIKE "*.chm" OR TO_LOWER(file.path) LIKE "*.jar" OR TO_LOWER(file.path) LIKE "*.iso" OR TO_LOWER(file.path) LIKE "*.img" OR TO_LOWER(file.path) LIKE "*.vhd" OR TO_LOWER(file.path) LIKE "*.vhdx")) AND NOT ((TO_LOWER(file.path) LIKE "*\\\\appdata\\\\local\\\\discord\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\local\\\\discordptb\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\local\\\\discordcanary\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\local\\\\slack\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\roaming\\\\slack\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\roaming\\\\telegram desktop\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\local\\\\programs\\\\signal-desktop\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\roaming\\\\signal\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\local\\\\programs\\\\element-desktop\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\roaming\\\\element\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\local\\\\microsoft\\\\skype for desktop\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\roaming\\\\microsoft\\\\skype for desktop\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\local\\\\viber\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\roaming\\\\viberpc\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\local\\\\whatsapp\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\local\\\\squirreltemp\\\\*" OR TO_LOWER(file.path) LIKE "*\\\\appdata\\\\local\\\\packages\\\\*")))

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="Image" type="pcre2">(?i)(\\Discord\.exe$|\\Telegram\.exe$|\\Signal\.exe$|\\slack\.exe$|\\Skype\.exe$|\\Viber\.exe$|\\Element\.exe$|\\WhatsApp\.exe$)</field>    <field name="TargetFilename" type="pcre2">(?i)(\.exe$|\.msi$|\.scr$|\.pif$|\.com$|\.bat$|\.cmd$|\.ps1$|\.vbs$|\.vbe$|\.js$|\.jse$|\.wsf$|\.hta$|\.lnk$|\.chm$|\.jar$|\.iso$|\.img$|\.vhd$|\.vhdx$)</field>    <field name="TargetFilename" negate="yes" type="pcre2">(?i)(\\AppData\\Local\\Discord\\|\\AppData\\Local\\DiscordPTB\\|\\AppData\\Local\\DiscordCanary\\|\\AppData\\Local\\slack\\|\\AppData\\Roaming\\Slack\\|\\AppData\\Roaming\\Telegram Desktop\\|\\AppData\\Local\\Programs\\signal-desktop\\|\\AppData\\Roaming\\Signal\\|\\AppData\\Local\\Programs\\element-desktop\\|\\AppData\\Roaming\\Element\\|\\AppData\\Local\\Microsoft\\Skype for Desktop\\|\\AppData\\Roaming\\Microsoft\\Skype for Desktop\\|\\AppData\\Local\\Viber\\|\\AppData\\Roaming\\ViberPC\\|\\AppData\\Local\\WhatsApp\\|\\AppData\\Local\\SquirrelTemp\\|\\AppData\\Local\\Packages\\)</field>    <description>Executable or script written by a consumer messaging client</description>    <mitre>      <id>T1566.003</id>    </mitre>  </rule></group>

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.