ByteRay CQL Hub
CrowdStrike Query Library

The open CQL library for Falcon Next‑Gen SIEM.

173 community-maintained detection & hunting queries for CrowdStrike Falcon Next-Gen SIEM and LogScale. Search, filter, copy — free to use.

173 queriesReset filters
FalconFlank Exploit Artifacts (Named Pipe and Dropped DLL)
Detection
Endpoint
Insight
Detects on-host artifacts of the FalconFlank local privilege escalation exploit against the CrowdStrike Falcon sensor (the FALCONFLANK named pipe, the staged bcrypt.dll under Flanker_<GUID>, and a bcrypt.dll written into the System32 PowerShell directory) and returns the responsible process with user, command line and parent.
CQL
Copy
Run in Falcon ↗
#Vendor = "crowdstrike" | #repo = "base_sensor" | event_platform = Win | #event_simpleName = "ProcessRollup2" | join( { #Vendor = "crowdstrike" | #repo = "base_sensor" | event_platform = Win | in(#event_simpleName, values=["NamedPipeDetectInfo", "FileCreateInfo", "NewExecutableWritten"]) | TargetFileName = /\\NamedPipe\\FALCONFLANK$/i OR TargetFileName = /\\Flanker_\{?[-0-9a-f]+\}?\\WindowsPowerShell\\v1\.0\\bcrypt\.dll$/i OR TargetFileName = /\\Windows\\System32\\WindowsPowerShell\\v1\.0\\bcrypt\.dll$/i | case { #event_simpleName = "NamedPipeDetectInfo" | Indicator := "Named pipe FALCONFLANK"; TargetFileName = /\\System32\\WindowsPowerShell\\/i | Indicator := "bcrypt.dll written to System32 PowerShell directory (escalation succeeded)"; * | Indicator := "Staged document under %TEMP%\\Flanker_<GUID>"; } | groupBy([aid, ContextProcessId, Indicator, TargetFileName], function=min(@timestamp, as=FirstArtifact)) | groupBy([aid, ContextProcessId], function=[min(FirstArtifact, as=FirstArtifact), collect([Indicator, TargetFileName])]) }, field=[aid, TargetProcessId], key=[aid, ContextProcessId], include=[FirstArtifact, Indicator, TargetFileName]) | FirstArtifact := formatTime("%Y-%m-%d %H:%M:%S", field=FirstArtifact) | table([FirstArtifact, aid, ComputerName, UserName, UserSid, ImageFileName, CommandLine, ParentBaseFileName, Indicator, TargetFileName])
T1068
Kundan Kumar
falconflank-exploit-artifacts-named-pipe-and-dropped-dll
Overnight Post-RDP Activity Detection
Hunting, Detection
Endpoint
Insight
Correlates remote interactive logons (UserLogon, LogonType=10) occurring during overnight hours with suspicious process execution (ProcessRollup2) from the same logon session, within 30 minutes of the logon. Processes are matched on ImageFileName against a broad set of native tools and LOLBins (shells, script engines, recon utilities, transfer/archive tools, remote-exec binaries) and classified by CommandLine into signal categories: Enumeration, PowerShell Enumeration, Transfer or Archive Utility, PowerShell Transfer or Archive, and encoded Command Processor/PowerShell. Uncategorized processes are dropped.
CQL
Copy
Run in Falcon ↗
#event_simpleName=ProcessRollup2 event_platform=Win | ImageFileName=/\\(cmd|powershell|pwsh|wscript|cscript|mshta|rundll32|regsvr32|wmic|msbuild|installutil|regasm|regsvcs|certutil|bitsadmin|schtasks|sc|net|net1|nltest|whoami|quser|query|systeminfo|hostname|tasklist|netstat|ipconfig|curl|wget|rclone|scp|sftp|ftp|makecab|tar|7z|7za|rar|winrar|psexec|paexec|winrs|ssh|python|pythonw)\.exe$/i // Parent/GrandParent: DENYLIST (fails open) — blank or unknown lineage still passes; only listed off-hours noise is dropped. // To tune: add a process BASE name (no path, no .exe), case-insensitive, pipe-separated, inside the ( ) on BOTH lines as you confirm benign off-hours jobs. // Example (parent): | ParentBaseFileName!=/^(AteraAgent|Syncro|Pulseway)\.exe$/i // Example (grandparent): | GrandParentBaseFileName!=/^(MeshAgent|NinjaRMMAgent|CagService)\.exe$/i | ParentBaseFileName!=/^()\.exe$/i | GrandParentBaseFileName!=/^()\.exe$/i | case { CommandLine=/\b(whoami|quser|query\s+user|net1?(\.exe)?"?\s+(users?|group|localgroup|session)|nltest|ipconfig\s+\/all|systeminfo|hostname|tasklist|wmic|netstat)\b/i | SignalType := "Enumeration"; CommandLine=/\b(Get-Process|Get-NetTCPConnection|Get-SmbShare|Get-ADUser|Get-ADComputer|Get-DomainUser|Get-DomainComputer)\b/i | SignalType := "PowerShell Enumeration"; CommandLine=/\b(rclone|curl|wget|scp|sftp|ftp|bitsadmin|certutil|makecab|tar|7z|7za|rar|winrar)\b/i | SignalType := "Transfer or Archive Utility"; CommandLine=/\b(Invoke-WebRequest|Invoke-RestMethod|Start-BitsTransfer|Compress-Archive|System\.IO\.Compression)\b/i | SignalType := "PowerShell Transfer or Archive"; ImageFileName=/\\(cmd|powershell|pwsh)\.exe$/i AND CommandLine=/\s-(?:enc|encodedcommand)(?:\s|$|:)/i | SignalType := "Windows Command Processor or PowerShell"; * | SignalType := "Other" } | SignalType!="Other" | CommandTimestampMs := ProcessStartTime * 1000 | join( { #event_simpleName=UserLogon event_platform=Win LogonType=10 | remoteHour := formatTime("%H", field=@timestamp, locale=en_US, timezone="America/Vancouver") // adjust timezone to where your clients/company operate (e.g. America/New_York for Eastern) | in(field=remoteHour, values=["21","22","23","00","01","02","03"]) // adjust hours here as well if needed: Example: "02" will detect up to 02:59:99 | LogonTimestampMs := LogonTime * 1000 }, field=[aid, AuthenticationId], include=[LogonTimestampMs, UserPrincipal, RemoteAddressIP4, LogonType] ) | TimeFromLogonMinutes := (CommandTimestampMs - LogonTimestampMs) / 60000 | TimeFromLogonMinutes >= 0 | TimeFromLogonMinutes <= 30 // adjust for a longer capture window from logon to command execution | table([@timestamp, cid, LogonTimestampMs, CommandTimestampMs, TimeFromLogonMinutes, aid, ComputerName, UserName, UserPrincipal, LogonType, RemoteAddressIP4, SignalType, ImageFileName, FileName, FilePath, CommandLine, ParentBaseFileName, GrandParentBaseFileName, OriginalFilename, SHA256HashData], limit=1000) | sort(@timestamp, order=desc)
T1021.001, T1033, T1087.001, T1087.002, T1069.001, T1069.002, T1057, T1049, T1082, T1016, T1059.001, T1059.003, T1105, T1048, T1560.001, T1567
Nicholas Yovanovich
overnight-post-rdp-activity-detection
EDRCHOKER - QoS Policy Abuse Targeting EDR/AV Processes
Hunting, Monitoring, Detection
Endpoint
Insight
This rule detects attempts to impair defensive mechanisms by creating or modifying Quality of Service (QoS) policies that specifically target Endpoint Detection and Response (EDR) or Antivirus (AV) processes. Adversaries may use QoS policies to throttle network traffic for security products, hindering their ability to communicate with central management or cloud services, thus impairing their effectiveness.
CQL
Copy
Run in Falcon ↗
// // EDRCHOKER - QoS Policy abuse targeting EDR/AV processes (T1562 – Impair Defenses) // // https://www.zerosalarium.com/2026/06/edrchoker-choking-telemetry-stream-block-edr.html // Author: Aamir Muhammad |case{ #event_simpleName=/ProcessRollup2|WmiCreateProcess/iF CommandLine=/New-NetQosPolicy|Set-NetQosPolicy/iF CommandLine=/ThrottleRateActionBitsPerSecond|AppPathNameMatchCondition/iF CommandLine=/(SenseIR\.exe|MsSense\.exe|MsMpEng\.exe|WinDefend\.exe|falcon-sensor\.exe|CSFalconService\.exe|SentinelService\.exe|SentinelAgent\.exe|CortexXDR\.exe|cyvera\.exe|pmsu\.exe|cb\.exe|carbonblack\.exe|edragent\.exe|HarfangLab\.exe|elastic-agent\.exe)/iF | SuspectActivity := format( "QoS Policy Creation via Process Command Line: %s", field=[#event_simpleNam]); #event_simpleName=/RegGenericValueUpdate|AsepValueUpdate|RegSystemConfigValueUpdate|RegistryHiveFileWritten|reg/iF RegObjectName=/\\SOFTWARE\\Policies\\Microsoft\\Windows\\QOS/i RegStringValue=/(SenseIR\.exe|MsSense\.exe|MsMpEng\.exe|WinDefend\.exe|falcon-sensor\.exe|CSFalconService\.exe|SentinelService\.exe|SentinelAgent\.exe|CortexXDR\.exe|cyvera\.exe|pmsu\.exe|cb\.exe|carbonblack\.exe|edragent\.exe|HarfangLab\.exe|elastic-agent\.exe)/i | SuspectActivity := format("QoS Registry Manipulation targeting: %s", field=[RegStringValue]) } |groupBy([@timestamp,ComputerName,FileName,ParentBaseFileName,CommandLine,#event_simpleName])
T1562, T1562.001
Aamir Muhammad
edrchoker-qos-policy-abuse-targeting-edr-av-processes
NPM Package Named Searches
Hunting, Detection
Endpoint
Insight
These queries detect file write events (typically FileWritten or similar) involving specific npm-related package files on endpoints. They are designed for threat hunting, supply chain monitoring, and investigating the installation or dropping of particular Node.js packages.
CQL
Copy
Run in Falcon ↗
//Single package check #event_simpleName=/written/i TargetFileName=*jscrambler@* | groupBy([@timestamp, event_platform, #event_simpleName, ComputerName, TargetFileName, ParentBaseFileName, GrandParentBaseFileName, CommandLine]) //For multiple packages with versions #event_simpleName=/written/i (TargetFileName=/chalk-5\.6\.1/i) OR (TargetFileName=/supports-hyperlinks-4\.1\.1/i) OR (TargetFileName=/chalk-template-1\.1\.1/i) OR (TargetFileName=/slice-ansi-7\.1\.1/i) OR (TargetFileName=/wrap-ansi-9\.0\.1/i) OR (TargetFileName=/has-ansi-6\.0\.1/i) OR (TargetFileName=/strip-ansi-7\.1\.1/i) OR (TargetFileName=/ansi-styles-6\.2\.2/i) OR (TargetFileName=/supports-color-10\.2\.1/i) OR (TargetFileName=/ansi-regex-6\.2\.1/i) OR (TargetFileName=/debug-4\.4\.2/i) OR (TargetFileName=/color-convert-3\.1\.1/i) OR (TargetFileName=/color-name-2\.0\.1/i) OR (TargetFileName=/is-arrayish-0\.3\.3/i) OR (TargetFileName=/color-5\.0\.1/i) OR (TargetFileName=/color-string-2\.1\.1/i) OR (TargetFileName=/simple-swizzle-0\.2\.3/i) OR (TargetFileName=/backslash-0\.2\.1/i) | groupBy([@timestamp, event_platform, #event_simpleName, ComputerName, TargetFileName, ParentBaseFileName, GrandParentBaseFileName, CommandLine])
T1204.005, T1195.001
Hem Karlapalem
npm-package-named-searches
The Gentlemen RaaS - Custom Backdoors and Evolving Tactics
Hunting, Monitoring, Detection
Endpoint, Network
Insight
Detection logic covering multiple stages of the Gentlemen ransomware attack lifecycle, including reconnaissance, defense impairment (disabling Defender/EDR), persistence, lateral movement using GPO and PsExec, and anti-forensic activities such as shadow copy deletion and log clearing.
CQL
Copy
Run in Falcon ↗
// The Gentlemen RaaS - Custom Backdoors and Evolving Tactics (Securelist 29 Jun 2026) // Source - securelist.com/the-gentlemen-raas/120447/ // Author - Aamir Muhammad | case { // TTP 1 - netsh packet capture to ADMIN$ share (recon sniffing) #event_simpleName = ProcessRollup2 AND FileName = /^netsh\.exe$/iF AND CommandLine = /trace start capture=yes/iF | HuntLogic := "Netsh_Trace_Packet_Capture" | SeverityTier := "High" | HuntObject := CommandLine; // TTP 2 - SharpADWS / AD recon via SOAP-wrapped LDAP #event_simpleName = ProcessRollup2 AND CommandLine = /SharpADWS/iF | HuntLogic := "SharpADWS_AD_Recon" | SeverityTier := "High" | HuntObject := CommandLine; // TTP 3 - Network scanners (NetScan / Advanced IP Scanner) #event_simpleName = ProcessRollup2 AND FileName = /^(netscan|netscan64|advanced_ip_scanner.*|advanced_ip_scanner.exe|advanced_ip_scanner_console|advanced_port_scanner|advanced_port_scanner_console)\.exe$/iF | HuntLogic := "Network_Scanner_Execution" | SeverityTier := "Medium" | HuntObject := FileName; // TTP 4 - Defender real-time protection disabled via Set-MpPreference #event_simpleName = ProcessRollup2 AND CommandLine = /Set-MpPreference/iF AND CommandLine = /DisableRealtimeMonitoring|EnableControlledFolderAccess\s+Disabled/iF | HuntLogic := "Defender_Disable_via_SetMpPreference" | SeverityTier := "Critical" | HuntObject := CommandLine; // TTP 5 - Defender exclusion added via Add-MpPreference #event_simpleName = ProcessRollup2 AND CommandLine = /Add-MpPreference/iF AND CommandLine = /ExclusionProcess|ExclusionPath/iF | HuntLogic := "Defender_Exclusion_Added" | SeverityTier := "Critical" | HuntObject := CommandLine; // TTP 6 - Defender disabled via registry (reg.exe DisableAntiSpyware / DisableBehaviorMonitoring) #event_simpleName = ProcessRollup2 AND FileName = /^reg\.exe$/iF AND CommandLine = /Windows Defender/iF AND CommandLine = /DisableAntiSpyware|DisableBehaviorMonitoring|DisableOnAccessProtection|DisableScanOnRealtimeEnable/iF | HuntLogic := "Defender_Disable_via_Registry_RegExe" | SeverityTier := "Critical" | HuntObject := CommandLine; // TTP 7a - Defender disable registry write - RegGenericValueUpdate (Rule 24) #event_simpleName = RegGenericValueUpdate AND RegObjectName = /Windows Defender/iF AND RegValueName = /DisableAntiSpyware|DisableBehaviorMonitoring|DisableOnAccessProtection|DisableScanOnRealtimeEnable|DisableRealtimeMonitoring/iF AND RegNumericValue = 1 | HuntLogic := "Defender_Disable_RegEvent" | SeverityTier := "Critical" | HuntObject := RegObjectName; // TTP 7b - Defender disable registry write - SuspiciousRegAsepUpdate (Rule 24) #event_simpleName = SuspiciousRegAsepUpdate AND RegObjectName = /Windows Defender/iF AND RegValueName = /DisableAntiSpyware|DisableBehaviorMonitoring|DisableOnAccessProtection|DisableScanOnRealtimeEnable|DisableRealtimeMonitoring/iF AND RegNumericValue = 1 | HuntLogic := "Defender_Disable_RegEvent" | SeverityTier := "Critical" | HuntObject := CommandLine; // TTP 8 - Kaspersky uninstall via kavrmvr.exe #event_simpleName = ProcessRollup2 AND FileName = /^kavrmvr\.exe$/iF | HuntLogic := "Kaspersky_Uninstall_kavrmvr" | SeverityTier := "High" | HuntObject := CommandLine; // TTP 9 - EDR-kill / rootkit tooling (Windows Kernel Explorer / OpenArk64) #event_simpleName = ProcessRollup2 AND FileName = /^(openark64|kernelexplorer|windows.?kernel.?explorer)\.exe$/iF | HuntLogic := "Kernel_Rootkit_EDR_Kill_Tool" | SeverityTier := "Critical" | HuntObject := FileName; // TTP 10 - BYOVD vulnerable driver written to disk #event_simpleName = NewExecutableWritten AND TargetFileName = /\\(processmonitordriver|wamsdk|gamedriverx64|biontdrv|biontdrv_wink|biontdrv_winbs|inpoutx64|wsddprm|wsftprm|havoc)\.sys$/iF | HuntLogic := "BYOVD_Vulnerable_Driver_Dropped" | SeverityTier := "Critical" | HuntObject := TargetFileName; // TTP 11 - GPO lateral movement script (deploy_gpo.ps1) #event_simpleName = ProcessRollup2 AND CommandLine = /deploy_gpo\.ps1/iF | HuntLogic := "GPO_Lateral_Movement_Script" | SeverityTier := "Critical" | HuntObject := CommandLine; // TTP 12 - PsExec download from live.sysinternals #event_simpleName = ProcessRollup2 AND CommandLine = /Invoke-WebRequest|iwr\s/iF AND CommandLine = /live\.sysinternals\.com\/PsExec/iF | HuntLogic := "PsExec_Download_Sysinternals" | SeverityTier := "High" | HuntObject := CommandLine; // TTP 13 - RSAT AD tools install for domain enumeration #event_simpleName = ProcessRollup2 AND CommandLine = /Rsat\.ActiveDirectory\.DS-LDS\.Tools|RSAT-AD-PowerShell/iF | HuntLogic := "RSAT_AD_Tools_Install_Recon" | SeverityTier := "Medium" | HuntObject := CommandLine; // TTP 14 - Hyper-V VM stop before encryption #event_simpleName = ProcessRollup2 AND CommandLine = /Get-VM/iF AND CommandLine = /Stop-VM\s+-Force\s+-TurnOff/iF | HuntLogic := "HyperV_VM_Stop_PreEncryption" | SeverityTier := "High" | HuntObject := CommandLine; // TTP 15 - Persistence scheduled task UpdateUser / TaskSystem #event_simpleName = ProcessRollup2 AND FileName = /^schtasks\.exe$/iF AND CommandLine = /\"UpdateUser\"|TaskSystem/iF | HuntLogic := "Ransomware_Persistence_SchedTask" | SeverityTier := "Critical" | HuntObject := CommandLine; // TTP 16 - Persistence Run key GupdateS #event_simpleName = ProcessRollup2 AND FileName = /^reg\.exe$/iF AND CommandLine = /CurrentVersion\\Run/iF AND CommandLine = /GupdateS/iF | HuntLogic := "Ransomware_Persistence_RunKey" | SeverityTier := "Critical" | HuntObject := CommandLine; // TTP 17 - ACL override via takeown + icacls Everyone grant #event_simpleName = ProcessRollup2 AND FileName = /^icacls\.exe$/iF AND CommandLine = /grant\s+\*?S-1-1-0:F/iF | HuntLogic := "ACL_Override_Everyone_FullControl" | SeverityTier := "High" | HuntObject := CommandLine; // TTP 18 - Shadow copy deletion (anti-recovery) #event_simpleName = ProcessRollup2 AND FileName = /^(vssadmin|wmic)\.exe$/iF AND CommandLine = /delete\s+shadows|shadowcopy\s+delete/iF | HuntLogic := "Shadow_Copy_Deletion" | SeverityTier := "Critical" | HuntObject := CommandLine; // TTP 19 - Event log clearing via wevtutil #event_simpleName = ProcessRollup2 AND FileName = /^wevtutil\.exe$/iF AND CommandLine = /\bcl\b\s+(System|Application|Security)/iF | HuntLogic := "Event_Log_Clearing_wevtutil" | SeverityTier := "High" | HuntObject := CommandLine; // TTP 20 - Forensic anti-recovery deletion (Prefetch / Defender Support / RDP logs / Recycle Bin) #event_simpleName = ProcessRollup2 AND FileName = /^cmd\.exe$/iF AND CommandLine = /\\Windows\\Prefetch\\|Windows Defender\\Support\\|LogFiles\\RDP|\$Recycle\.Bin/iF | HuntLogic := "AntiForensic_Artifact_Deletion" | SeverityTier := "High" | HuntObject := CommandLine; // TTP 21 - Ransom note dropped (README-GENTLEMEN / READ-ME GEN-TLE-MEN) #event_simpleName = NewExecutableWritten AND TargetFileName = /README-GENTLEMEN\.txt$|-READ-ME-+-GEN-TLE-MEN-+\.txt$/iF | HuntLogic := "Gentlemen_Ransom_Note_Written" | SeverityTier := "Critical" | HuntObject := TargetFileName; // IOC Sweep - Go ransomware, C ransomware, backdoor, driver, scanner MD5 hashes (field-only, all schemas) MD5HashData = /^(3B46A729DB7AE6AF8B19711C9452194D|02944C8A5535CDB5B2CBB893DB2D5ACF|10CA9A4040001560D053B7E7885C1B95|3C471EBC947CDF32240A90FFADF49B13|4BE8BB62F0EBBCF4CE52C35AB6F794F5|53C616677BC7E2A0A03127F19166D007|5C3B9821FC82A9028CB63B9671950919|5F0B2C6D9F442754258BF4DD841C8341|608FAF58353B65C45EF9833358AC3787|6AE7C9A7EA0B8C40A64225734F6BD01D|846DC77C1246DB20D976346E0E359502|ADAC9984B3CC43D66A0D33079BBEC299|AE0E536766788478263BF448A9381641|B3E418D30312C1B2C58A791286868F42|C2764744DCB4B0E1DB79CA1E8BF65368|D12A5B36DD00586CC374A1CAE43EFED4|D2F72897E8986303D5567EB2384932B8|DE1522F9219497632F30F8A6E72F26B6|FDAE2BEB813778B4540A997706862096|B9986A0F1F1F1A798DC3F0C59A80A1A3|554E699C96B332468F1AE69C1AE81EF9|5761BD63DA03686FC480245DA7BD1E9F|B6B51508AD6F462C45FE102C85D246C8|8F0577D28C4FF5F71B149F444BFABA8E|525EF6014F0EF20E44FE47C1D9980B69|407B6A136BBAA7172EB44EF9D08BB58A|9321A61A25C7961D9F36852ECAA86F55|73F0A8C3EA794A04E80C32038249F044|EEF8A950952696B018AA9C6DA2F5D7AD|EDB1C480295250DD1A38F3AA1357DEAE|5537C708EDB9A2C21F88E34E8A0F1744)$/i | HuntLogic := "Gentlemen_IOC_Hash_Match" | SeverityTier := "Critical" | HuntObject := MD5HashData; // IOC Sweep - Backdoor C2 IP RemoteAddressIP4 = /^(81\.177\.215\.15)$/ | HuntLogic := "Gentlemen_IOC_IP_Match" | SeverityTier := "Critical" | HuntObject := RemoteAddressIP4; // TTP 22 - PsExec remote execution to admin share (lateral movement) #event_simpleName = /ProcessRollup2|SyntheticProcessRollup2/iF (FileName = /^psexec(64)?\.exe$/iF OR OriginalFilename = /^psexec/iF) CommandLine = /\\\\[^\s]+\s/iF CommandLine = /-accepteula|-s\b|-d\b/iF | HuntLogic := "PsExec_Remote_Execution" | SeverityTier := "High" | HuntObject := CommandLine; } |ParentBaseFileName!=/MpCmdRun.exe/iF | groupBy( [ComputerName, HuntLogic, SeverityTier, UserName, HuntObject, FileName], function=min(@timestamp, as=FirstSeen_epoch), limit=max ) | sort([SeverityTier, FirstSeen_epoch], order=[asc, desc], limit=max) | formatTime(format="%e %b %Y %r", field=FirstSeen_epoch, as=FirstSeen, locale=en_UAE, timezone="Asia/Dubai") | select([FirstSeen, ComputerName, HuntLogic, SeverityTier, UserName,FileName, HuntObject])
T1059.001, T1562.001, T1490, T1070.004, T1082
Aamir Muhammad
the-gentlemen-raas-custom-backdoors-and-evolving-tactics
Unauthorized RMM Tool Usage
Hunting
Endpoint
Insight
Detects the execution of Remote Monitoring & Management (RMM) and remote access tools such as AnyDesk, TeamViewer, ScreenConnect, Atera, Splashtop, RustDesk, and others. Threat actors increasingly abuse legitimate RMM software for initial access, persistence, and hands-on-keyboard activity because it blends in with normal IT operations.
CQL
Copy
Run in Falcon ↗
#event_simpleName=ProcessRollup2 OR #event_simpleName=SyntheticProcessRollup2 | ImageFileName=/(\\|\/)(?<FileName>[^\\\/]+)$/ | case { FileName=/^anydesk(_custom)?(\.exe)?$/i | RMMTool:="AnyDesk"; FileName=/^(teamviewer(_service|_desktop)?|tv_w32|tv_x64)(\.exe)?$/i | RMMTool:="TeamViewer"; FileName=/^(screenconnect|connectwise)[\w.]*(\.exe)?$/i | RMMTool:="ScreenConnect / ConnectWise"; FileName=/^(ateraagent|atera[\w.]*)(\.exe)?$/i | RMMTool:="Atera"; FileName=/^(splashtop[\w.]*|srservice|strwinclt|srmanager)(\.exe)?$/i | RMMTool:="Splashtop"; FileName=/^rustdesk(\.exe)?$/i | RMMTool:="RustDesk"; FileName=/^supremo(helper|service)?(\.exe)?$/i | RMMTool:="Supremo"; FileName=/^ammyy[\w.]*(\.exe)?$/i | RMMTool:="Ammyy Admin"; FileName=/^ultraviewer[\w.]*(\.exe)?$/i | RMMTool:="UltraViewer"; FileName=/^(dwagent|dwagsvc)(\.exe)?$/i | RMMTool:="DWService"; FileName=/^meshagent(\.exe)?$/i | RMMTool:="MeshCentral / TacticalRMM"; FileName=/^(logmein[\w.]*|lmiguardiansvc)(\.exe)?$/i | RMMTool:="LogMeIn"; FileName=/^(gotoassist[\w.]*|gotohttp|g2comm|g2host)(\.exe)?$/i | RMMTool:="GoTo Assist"; FileName=/^(rutserv|rfusclient|remoteutilities[\w.]*)(\.exe)?$/i | RMMTool:="Remote Utilities"; FileName=/^radmin[\w.]*(\.exe)?$/i | RMMTool:="Radmin"; FileName=/^(nomachine|nxservice|nxplayer|nxnode)(\.exe)?$/i | RMMTool:="NoMachine"; FileName=/^(dwrcs|dameware[\w.]*)(\.exe)?$/i | RMMTool:="DameWare"; FileName=/^(zohours|zohomeeting|zaservice|za_connect)(\.exe)?$/i | RMMTool:="Zoho Assist"; FileName=/^(ngrok|frpc|frps)(\.exe)?$/i | RMMTool:="Tunneling (ngrok/frp)"; * | RMMTool:="none"; } | RMMTool != "none" | groupBy([RMMTool, aid, ComputerName, UserName], function=[ count(as=Executions), collect([ImageFileName, CommandLine], limit=10), min(@timestamp, as=FirstSeen), max(@timestamp, as=LastSeen) ], limit=10000) | formatTime(format="%F %T %Z", field=FirstSeen, as=FirstSeen) | formatTime(format="%F %T %Z", field=LastSeen, as=LastSeen) | sort(LastSeen, order=desc)
T1219
ByteRay GmbH
unauthorized-rmm-tool-usage
C2 Beaconing Detection
Hunting
Endpoint
Insight
Detects command-and-control (C2) beaconing by identifying outbound network connections that repeat on a regular, machine-like schedule. For each host and external destination it measures the interval between consecutive connections and the coefficient of variation (jitter relative to the mean); automated beacons hold a fixed cadence and stand out with a very low coefficient of variation, unlike bursty human-driven traffic. Destinations served by many anycast or CDN edge IPs (Fastly, Cloudflare, cloud providers) are consolidated by owning organization and cadence, so a single beacon is reported once rather than as many near-duplicate rows. The detection is purely behavioral and needs no IOC list or threat feed, making it effective against novel or custom C2 infrastructure.
CQL
Copy
Run in Falcon ↗
#event_simpleName=NetworkConnectIP4 // Keep only egress to routable / external destinations | !cidr(RemoteAddressIP4, subnet=[ "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "127.0.0.0/8", "169.254.0.0/16", "224.0.0.0/4", "0.0.0.0/8", "100.64.0.0/10" ]) // Drop high-volume benign services that create artificial regularity | RemotePort != 53 | RemotePort != 123 | RemotePort != 137 | RemotePort != 138 // ===== STAGE 1: detect beacons per destination IP ===== // Channel = host -> (remote IP + port). Keeping the IP here means two distinct // beacons to the same provider are never merged before their cadence is measured. | ConnKey := format(format="%s:%s", field=[RemoteAddressIP4, RemotePort]) | ts := @timestamp | sort(field=[aid, ConnKey, ts], order=[asc, asc, asc], limit=max) | neighbor(include=[ts, aid, ConnKey], prefix=prev, direction=preceding) | test(aid == prev.aid) | test(ConnKey == prev.ConnKey) | Delta := (ts - prev.ts) / 1000 | Delta >= 1 | groupBy([aid, ComputerName, RemoteAddressIP4, RemotePort], function=[ count(as=Beacons), avg(Delta, as=AvgInterval), stdDev(field=Delta, as=JitterStdDev) ], limit=max) | CoV := JitterStdDev / AvgInterval // Beaconing profile (applied per IP so each real channel is judged on its own) | Beacons >= 8 | AvgInterval >= 10 | AvgInterval <= 86400 | CoV < 0.10 // ===== STAGE 2: de-duplicate anycast edges by (org + cadence) ===== | asn(RemoteAddressIP4) | Org := coalesce([RemoteAddressIP4.org, RemoteAddressIP4]) // --- OPTIONAL ALLOWLIST ------------------------------------------------ // Populate with orgs already attributed to benign scheduled software. // Do NOT blanket-trust Fastly / Cloudflare / Google - they are common C2 // fronting providers; allowlist only AFTER confirming the process. // | !in(field=Org, values=["EXAMPLE VENDOR ORG", "ANOTHER TRUSTED ORG"]) // ----------------------------------------------------------------------- // Bucket the interval to the nearest minute so identical-cadence siblings merge, // but channels with genuinely different intervals remain distinct rows. | CadenceBucket := AvgInterval / 60 | CadenceBucket := round(CadenceBucket) | groupBy([aid, ComputerName, Org, RemotePort, CadenceBucket], function=[ count(as=EdgeIPs), collect([RemoteAddressIP4], limit=25), avg(Beacons, as=Beacons), avg(AvgInterval, as=AvgInterval), avg(JitterStdDev, as=JitterStdDev), avg(CoV, as=CoV) ], limit=max) | Beacons := round(Beacons) | AvgInterval := round(AvgInterval) | JitterStdDev := round(JitterStdDev) | sort(field=CoV, order=asc, limit=20000) | format(format="%.4f", field=CoV, as=CoV) | table([ComputerName, aid, Org, RemotePort, EdgeIPs, RemoteAddressIP4, Beacons, AvgInterval, JitterStdDev, CoV], limit=20000)
T1071, T1571, T1041, T1090.004
ByteRay GmbH
c2-beaconing-detection
Ransomware Precursors
Detection
Endpoint
Insight
Detects command patterns that ransomware operators execute immediately before encryption to prevent recovery: Volume Shadow Copy deletion (vssadmin, WMIC, PowerShell WMI/CIM), backup catalog destruction (wbadmin), Windows Recovery Environment tampering (bcdedit), USN journal deletion (fsutil), and mass shadow storage resizing. Each event is classified into a named hypothesis so analysts can triage by technique. These commands are rare in legitimate day-to-day operation and their appearance - especially several within a short window on the same host - is one of the strongest early-warning signals of an imminent ransomware detonation.
CQL
Copy
Run in Falcon ↗
#event_simpleName=ProcessRollup2 event_platform=Win // Optional scoping for testing on a single host | ComputerName=?ComputerName // Normalise the command line once for all subsequent matching | CmdLower := lower("CommandLine") // --- Recovery-inhibition classification --------------------------------- | case { // Shadow copy deletion via vssadmin ImageFileName=/\\vssadmin\.exe$/i AND CmdLower=/delete\s+shadows/ | Hypothesis := "H1_VSSADMIN_SHADOW_DELETE" | Confidence := "High"; // Shadow storage resize to force silent shadow deletion (401 KB trick) ImageFileName=/\\vssadmin\.exe$/i AND CmdLower=/resize\s+shadowstorage/ | Hypothesis := "H2_VSSADMIN_SHADOWSTORAGE_RESIZE" | Confidence := "Medium"; // Shadow copy deletion via WMIC ImageFileName=/\\wmic\.exe$/i AND CmdLower=/shadowcopy/ AND CmdLower=/delete/ | Hypothesis := "H3_WMIC_SHADOW_DELETE" | Confidence := "High"; // Shadow copy deletion via PowerShell WMI/CIM ImageFileName=/\\(powershell|powershell_ise|pwsh)\.exe$/i AND CmdLower=/win32_shadowcopy|get-wmiobject.{0,40}shadowcopy|get-ciminstance.{0,40}shadowcopy/ AND CmdLower=/delete|remove/ | Hypothesis := "H4_POWERSHELL_SHADOW_DELETE" | Confidence := "High"; // Backup catalog / system state backup destruction ImageFileName=/\\wbadmin\.exe$/i AND CmdLower=/delete\s+(catalog|systemstatebackup|backup)/ | Hypothesis := "H5_WBADMIN_BACKUP_DELETE" | Confidence := "High"; // Disable Windows Recovery Environment / automatic repair ImageFileName=/\\bcdedit\.exe$/i AND CmdLower=/recoveryenabled\s+(no|off)|bootstatuspolicy\s+ignoreallfailures/ | Hypothesis := "H6_BCDEDIT_RECOVERY_TAMPER" | Confidence := "High"; // USN change journal deletion (anti-forensics, common in ransomware playbooks) ImageFileName=/\\fsutil\.exe$/i AND CmdLower=/usn\s+deletejournal/ | Hypothesis := "H7_FSUTIL_USN_DELETE" | Confidence := "Medium"; * | Hypothesis := "NO_MATCH"; } | Hypothesis != "NO_MATCH" // --- Output -------------------------------------------------------------- | groupBy([aid, ComputerName], function=[ count(as=PrecursorEvents), count(Hypothesis, distinct=true, as=DistinctTechniques), min(@timestamp, as=FirstSeen), max(@timestamp, as=LastSeen), collect([Hypothesis, Confidence, UserName, ImageFileName, CommandLine, ParentBaseFileName]) ], limit=10000) // Multiple distinct recovery-inhibition techniques on one host is near-certain ransomware staging | case { DistinctTechniques >= 2 | Priority := "CRITICAL - multiple recovery-inhibition techniques"; PrecursorEvents >= 3 | Priority := "HIGH - repeated recovery-inhibition activity"; * | Priority := "MEDIUM - single event, validate context"; } | FirstSeen := formatTime("%F %T %Z", field=FirstSeen) | LastSeen := formatTime("%F %T %Z", field=LastSeen) | sort(DistinctTechniques, order=desc)
T1490, T1070.004
ByteRay GmbH
ransomware-precursors
Suspicious Scheduled Task Creation
Detection
Endpoint
Insight
Surfaces newly registered Windows scheduled tasks whose execution command or arguments match patterns commonly abused for persistence and remote code execution: encoded PowerShell combined with download/exec intent, LOLBin proxy execution, payloads launched from user-writable paths, embedded web URLs, and chained cmd one-liners. Tasks created remotely (RemoteAddressIP4/IP6 populated) are flagged as a higher-priority lateral-movement signal. A commented author filter lets analysts suppress their own validated software-deployment / RMM accounts after baselining.
CQL
Copy
Run in Falcon ↗
#event_simpleName=ScheduledTaskRegistered event_platform=Win // Optional scoping for testing on a single host (leave as * for fleet-wide) | ComputerName=?ComputerName // Exclude the built-in Windows task namespace (Defender scan, Update, etc.) | TaskName!=/^\\?Microsoft\\Windows\\/i // To suppress recurring known-good automation after baselining, add an // explicit author filter here, e.g.: | TaskAuthor!=/sccm-svc|rmm-deploy/i // Normalise the action fields into one searchable string | TaskCmd := lower("TaskExecCommand") | TaskArgs := lower("TaskExecArguments") | CmdLine := format("%s %s", field=[TaskCmd, TaskArgs]) // --- Suspicion classification ------------------------------------------- | case { // Encoded PowerShell REQUIRES a second signal (download/exec intent), // because benign monitoring/management tooling uses -encodedCommand. CmdLine=/(powershell|pwsh)/i AND CmdLine=/(-enc|-encodedcommand|-e\s)/i AND CmdLine=/(downloadstring|downloadfile|iex|invoke-expression|frombase64string|net\.webclient|-w\s+hidden|-windowstyle\s+hidden)/i | Reason := "Encoded PowerShell w/ download or exec intent" ; // Common LOLBins used to proxy execution CmdLine=/\\(mshta|rundll32|regsvr32|wscript|cscript|certutil|bitsadmin|installutil)\.exe/i | Reason := "LOLBin proxy execution" ; // Genuinely user-writable locations (ProgramData deliberately excluded) CmdLine=/(\\appdata\\|\\users\\public\\|\\temp\\|\\windows\\temp\\|%temp%|%appdata%)/i | Reason := "Payload in user-writable/temp path" ; // HTTP(S)/FTP URL embedded directly in the task action CmdLine=/(http:\/\/|https:\/\/|ftp:\/\/)/i | Reason := "Web URL in task action" ; // cmd one-liners chaining commands CmdLine=/cmd(\.exe)?\s+\/c.*(&&|\|)/i | Reason := "Chained cmd one-liner" ; * | Reason := "no-match" ; } | Reason != "no-match" // --- Remote creation flag (lateral movement) ---------------------------- | case { RemoteAddressIP4=* AND RemoteAddressIP4!="0.0.0.0" | Origin := format("REMOTE (%s)", field=[RemoteAddressIP4]) ; RemoteAddressIP6=* | Origin := format("REMOTE (%s)", field=[RemoteAddressIP6]) ; * | Origin := "local" ; } // --- Output -------------------------------------------------------------- | groupBy( [ComputerName, UserName, TaskAuthor, TaskName, Reason, Origin, TaskExecCommand, TaskExecArguments], function=[count(as=Count), min(@timestamp, as=FirstSeen), max(@timestamp, as=LastSeen)], limit=max ) | FirstSeen := formatTime("%F %T %Z", field=FirstSeen) | LastSeen := formatTime("%F %T %Z", field=LastSeen) | sort(LastSeen, order=desc) | table([LastSeen, ComputerName, UserName, TaskAuthor, Origin, Reason, TaskName, TaskExecCommand, TaskExecArguments, Count, FirstSeen], limit=10000)
T1053, T1053.005
ByteRay GmbH
suspicious-scheduled-task-creation
NTLM authentication where Kerberos is expected (Baseline)
Hunting, Monitoring
Identity
This query identifies NTLM authentications observed by Active Directory in service‑based authentication contexts where Kerberos is the default and normally preferred mechanism. It filters for NTLM (v1/v2) usage during access to domain services (such as SMB, LDAP, or RPC) by leveraging the presence of a service identifier, which indicates that Kerberos should typically be available. The query aggregates events to highlight recurring NTLM fallback patterns across users, machines, and servers, and is intended for baseline exposure tracking and hygiene monitoring, not direct incident alerting.
CQL
Copy
Run in Falcon ↗
// Hunt for NTLM authentications in scenarios where Kerberos would normally be expected #event_simpleName=ActiveDirectoryAuthentication // Keep only NTLM authentications | in(field=ActiveDirectoryAuthenticationMethod, values=[1, 2, 5]) // Focus on service-based access (SPN/service context), // where Kerberos should normally be available | TargetServiceAccessIdentifier=* // Optional: suppress machine accounts if you want a user-only view // | SourceAccountSamAccountName!=/$/ // Map NTLM authentication method values to readable names | case { ActiveDirectoryAuthenticationMethod = 1 | AuthMethod := "NTLM_V1"; ActiveDirectoryAuthenticationMethod = 2 | AuthMethod := "NTLM_V2"; ActiveDirectoryAuthenticationMethod = 5 | AuthMethod := "UNKNOWN_NTLM"; * | AuthMethod := "OTHER"; } // Map AD protocol values for easier triage | case { ActiveDirectoryDataProtocol = 0 | DataProtocol := "LDAP"; ActiveDirectoryDataProtocol = 1 | DataProtocol := "DCE_RPC"; ActiveDirectoryDataProtocol = 2 | DataProtocol := "RDP"; ActiveDirectoryDataProtocol = 3 | DataProtocol := "SMB"; * | DataProtocol := format(format="PROTO_%s", field=[ActiveDirectoryDataProtocol]); } // Summarize NTLM fallback activity | groupBy([ SourceEndpointHostName, SourceEndpointAddressIP4, SourceAccountDomain, SourceAccountSamAccountName, TargetServiceAccessIdentifier, TargetServerHostName, TargetServerAddressIP4, DataProtocol, AuthMethod ], function=[ sum(AggregationActivityCount, as="ntlm_auth_count"), min(AggregationEarliestTimestamp, as="first_seen"), max(AggregationLatestTimestamp, as="last_seen") ]) // Show highest NTLM usage first | sort(field=ntlm_auth_count, order=desc)
T1550.003
YV Nikhil
ntlm-authentication-where-kerberos-is-expected-baseline
Snowman
Hunting, Detection
This query detects potential exploitation of the April 2026 Adobe Reader zero-day vulnerability by identifying suspicious network connections originating from Adobe Reader processes shortly after they start. The exploit abuses legitimate Adobe JavaScript APIs (util.readFileIntoStream() and RSS.addFeed()) to exfiltrate system information to attacker-controlled servers.
CQL
Copy
Run in Falcon ↗
// Detect Adobe Reader zero-day (April 2026) - Process + suspicious network activity // Stage 1: Adobe Reader process starts #event_simpleName=ProcessRollup2 ImageFileName=/\\(Acrobat|AcroRd32|AcroRd64)\.exe$/i | rename(field=TargetProcessId, as=AdobePid) | rename(field=aid, as=aid) | rename(field=ProcessStartTime, as=PdfOpenTime) | join({ // Stage 2: Network connections from Adobe OR child processes #event_simpleName=NetworkConnectIP4 OR #event_simpleName=NetworkConnectIP6 | ContextBaseFileName=/\b(Acrobat|AcroRd32|AcroRd64|AdobeCollabSync|Synchronizer)\.exe\b/i | rename(field=ContextProcessId, as=AdobePid) | rename(field=ContextTimeStamp, as=ConnectionTime) }, field=AdobePid, key=AdobePid, include=[RemoteAddressIP4, RemoteAddressIP6, RemotePort, ConnectionTime]) | RemoteAddressIP4=* OR RemoteAddressIP6=* // Filter: non-standard ports (C2 used 45191, 34123) // Adobe legitimately connects to 80, 443 — flag anything else | RemotePort!=80 RemotePort!=443 | eval(TimeDiffMs=ConnectionTime-PdfOpenTime) | test(TimeDiffMs >= 0) | test(TimeDiffMs <= 60000) | eval(TimeDiffSeconds=TimeDiffMs/1000) // High-confidence: known C2 IOCs | case { RemoteAddressIP4="169.40.2.68" OR RemoteAddressIP4="188.214.34.20" | Confidence:="HIGH - Known C2 IOC"; RemotePort=45191 OR RemotePort=34123 | Confidence:="MEDIUM - Known C2 port"; * | Confidence:="LOW - Anomalous non-HTTP(S) connection"; } | table([aid, ComputerName, ImageFileName, CommandLine, RemoteAddressIP4, RemotePort, Confidence, PdfOpenTime, ConnectionTime, TimeDiffSeconds], limit=20000) | sort(Confidence, order=desc)
MS
snowman
LeakNet Campaign: Deno Runtime & Klist Suspicious Execution Detection
Hunting, Detection
Endpoint
Detects indicators of the LeakNet campaign (analyzed by ReliaQuest, March 2026), which uses ClickFix a social engineering tactic where compromised websites display fake error dialogs that coerce users into manually pasting and executing a malicious PowerShell/CMD command. This delivers a portable Deno (JavaScript runtime) binary to user-writable directories that runs malicious payloads entirely in memory, avoiding disk-based detection. The query targets the post-delivery kill chain: Deno execution from AppData/Temp/ProgramData paths, klist.exe usage from interactive shells indicating Kerberos ticket harvesting, Deno spawning reconnaissance and living-off-the-land binaries, and dangerous Deno runtime flags or remote code fetch patterns. A noise reduction filter excludes Deno running from standard developer or Program Files paths.
CQL
Copy
Run in Falcon ↗
#event_simpleName=ProcessRollup2 | ( /* ── Clause 1: Deno launched from user-writable locations ── */ ( ImageFileName=/\\deno(\.exe)?$/i AND ImageFileName=/\\(Users\\[^\\]+\\AppData\\(Local|Roaming)|Temp|ProgramData)\\/i ) OR /* ── Clause 2: klist launched from interactive shells or script hosts ── */ ( ImageFileName=/\\klist\.exe$/i AND ParentBaseFileName=/^(cmd|powershell|pwsh|wscript|cscript|mshta)\.exe$/i ) OR /* ── Clause 3: Suspicious child processes spawned by Deno ── */ ( ParentBaseFileName=/^deno(\.exe)?$/i AND ImageFileName=/\\(cmd|powershell|pwsh|net|net1|whoami|hostname|nltest|dsquery|quser|qwinsta|vssadmin|wbadmin|reg|wevtutil|ipconfig|systeminfo|tasklist|qprocess|schtasks|wmic|bitsadmin|certutil)\.exe$/i ) OR /* ── Clause 4: Deno with dangerous flags or remote code execution patterns ── */ ( ImageFileName=/\\deno(\.exe)?$/i AND CommandLine=/(eval|--allow-all|--allow-net|--allow-run|https?:\/\/|atob\(|base64|WebSocket|fetch\()/i ) ) /* ── Noise reduction: exclude Deno running from known-good install/dev paths ── */ | !( ImageFileName=/\\deno(\.exe)?$/i AND ImageFileName=/\\(Program Files|Program Files \(x86\)|tools|dev|repos|source|git)\\/i ) | table([@timestamp, aid, ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, SHA256HashData]) | sort(@timestamp, order=desc) //══════════════════════════════════════════════════════════════════════════════════════════════════ // ENHANCEMENT OPTIONS //══════════════════════════════════════════════════════════════════════════════════════════════════ // // ── Option A: Correlate Deno process execution with outbound network connections ── // Uses selfJoinFilter to link ProcessRollup2 with NetworkConnectIP4 on the same // agent and process ID, then filters out internal RFC1918/loopback traffic. // // #event_simpleName = /ProcessRollup2|NetworkConnectIP4/ // | falconPID := ContextProcessId_decimal // | falconPID := TargetProcessId_decimal // | selfJoinFilter(field=[aid, falconPID], where=[ // {#event_simpleName = ProcessRollup2 | ImageFileName = /\\deno(\.exe)?$/i}, // {#event_simpleName = NetworkConnectIP4} // ]) // | RemoteAddressIP4 != "10.*" // | RemoteAddressIP4 != "172.16.*" // | RemoteAddressIP4 != "192.168.*" // | RemoteAddressIP4 != "127.*" // | groupBy([aid, ComputerName, ImageFileName, RemoteAddressIP4, RemotePort], function=[count(), collect(CommandLine)]) // | sort(_count, order=desc) // // ── Option B: Correlate Deno with DNS requests for domain-based C2 detection ── // // #event_simpleName = /ProcessRollup2|DnsRequest/ // | falconPID := ContextProcessId // | falconPID := TargetProcessId // | selfJoinFilter(field=[aid, falconPID], where=[ // {#event_simpleName = ProcessRollup2 | ImageFileName = /\\deno(\.exe)?$/i}, // {#event_simpleName = DnsRequest} // ]) // | groupBy([aid, ComputerName, DomainName], function=[count(), collect(CommandLine)]) // | sort(_count, order=desc) // // ── Option C: Group by user to surface high-frequency discovery bursts ── // // // Append after the main query's table() line: // // | groupBy([UserName, ComputerName], function=count(as=exec_count)) // // | sort(exec_count, order=desc) // // | test(exec_count > 5) // //══════════════════════════════════════════════════════════════════════════════════════════════════
T1204.001, T1059
cap10
leaknet-campaign-deno-runtime-klist-suspicious-execution-detection
No queries match your filters.

Have a query worth sharing?

Submit it directly — no GitHub account required — or open a pull request. Every query is reviewed and validated before it goes live, credited to you as the author.

Contribute a query →

These queries run in production.

We build, tune and operate CrowdStrike Falcon Next-Gen SIEM for companies across Europe, with more than 350 tested use cases and 24/7 incident response behind them.

Talk to the SIEM team