ThreatPulse — April 19, 2026 | 10 threats, personalised for Demo User
ThreatPulse — April 19, 2026
Personalised for Demo User | Soc Analyst | Detection: KQL
DeviceNetworkEvents
| where Timestamp > ago(7d)
| where RemoteUrl has_any ("${jndi:", "${java:", "ldap://", "rmi://", "nis://", " dns://", "iiop://", "corba://")
or RemoteUrl matches regex @"(?i)\$\{jndi:[a-z]+://"
| project Timestamp, DeviceName, RemoteIP, RemoteUrl, RemotePort, InitiatingProcessFileName, InitiatingProcessCommandLine
| limit 1000
DeviceProcessEvents
| where Timestamp > ago(7d)
| where ProcessCommandLine has_any ("log4j", "-Dlog4j", "JNDI", "ldap://", "rmi://")
or (FileName =~ "java.exe" and ProcessCommandLine contains_cs "${")
| project Timestamp, DeviceName, ProcessId, ProcessCommandLine, AccountName, FolderPath, SHA256
| limit 1000
DeviceNetworkEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName =~ "java.exe"
and (RemotePort in (389, 636, 1099) or Protocol =~ "ldap" or RemoteUrl has_any ("ldap://", "rmi://"))
| project Timestamp, DeviceName, InitiatingProcessCommandLine, RemoteIP, RemotePort, RemoteUrl
| limit 1000
DeviceProcessEvents
| where Timestamp > ago(7d)
| where ProcessIntegrityLevel has_any ("Low", "Medium") and ProcessTokenElevation has "TokenElevationTypeFull"
| where InitiatingProcessFileName in~ ("explorer.exe", "svchost.exe", "lsass.exe")
| where FolderPath has_any ("\\AppData\\", "\\Temp\\", "\\ProgramData\\")
| project Timestamp, DeviceName, AccountName, ProcessCommandLine, FileName, ProcessId, ProcessIntegrityLevel
| limit 1000
DeviceNetworkEvents
| where Timestamp > ago(7d)
| where RemotePort in (445, 139, 135, 3389) and ActionType has_any ("ConnectionSuccess", "ConnectionAttempt")
| join kind=inner (
DeviceProcessEvents
| where Timestamp > ago(7d)
| where ProcessCommandLine has_any ("powershell", "cmd.exe", "wmic", "rundll32")
| project DeviceId, ProcessId, ProcessCommandLine, FileName
) on DeviceId
| where InitiatingProcessFileName in~ ("svchost.exe", "services.exe", "lsass.exe")
| project Timestamp, DeviceName, RemoteIP, RemotePort, ProcessCommandLine, FileName
| limit 1000
SecurityEvent
| where Timestamp > ago(7d)
| where EventID == 4688
| where NewProcessName has_any ("wuauclt.exe", "svchost.exe")
| where CommandLine has_any ("Windows Update", "KB5025221", "KB5025222")
| summarize LastUpdateCheck = max(Timestamp), UpdateStatus = make_set(CommandLine) by Computer, Account
| where LastUpdateCheck < ago(30d)
| project Computer, Account, LastUpdateCheck, UpdateStatus
| limit 1000
DeviceProcessEvents
| where Timestamp > ago(7d)
| where ProcessCommandLine has_any ("wsus", "WsusService.exe", "WsusUtil.exe")
| where ActionType in ("ProcessCreated", "ProcessModified")
| join kind=inner (
DeviceNetworkEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName has_any ("wsus", "WsusService.exe", "WsusUtil.exe")
| where RemoteIPType == "Public"
) on DeviceId, DeviceName
| project Timestamp, DeviceName, ProcessCommandLine, RemoteIP, RemotePort, RemoteUrl, AccountName
| limit 1000
DeviceProcessEvents
| where Timestamp > ago(7d)
| where DeviceName has_any ("wsus", "update", "patch")
| where ProcessIntegrityLevel == "System" or ProcessTokenElevation == "TokenElevationTypeFull"
| where ParentProcessFileName !in ("services.exe", "svchost.exe", "lsass.exe", "csrss.exe")
| where FileName !in ("powershell.exe", "cmd.exe", "notepad.exe", "explorer.exe")
| project Timestamp, DeviceName, FileName, ProcessCommandLine, ParentProcessFileName, AccountName, ProcessId
| limit 1000
union
(DeviceFileEvents
| where Timestamp > ago(7d)
| where FolderPath has_any ("wsus", "WsusContent", "UpdateServicesPackages")
| where ActionType in ("FileCreated", "FileModified")
| project Timestamp, DeviceName, FolderPath, FileName, ActionType, InitiatingProcessFileName, AccountName),
(DeviceRegistryEvents
| where Timestamp > ago(7d)
| where RegistryKey has_any ("WSUS", "WindowsUpdate", "UpdateServices")
| where ActionType in ("RegistryValueSet", "RegistryKeyCreated")
| project Timestamp, DeviceName, RegistryKey, RegistryValueName, ActionType, InitiatingProcessFileName, AccountName)
| limit 1000
DeviceProcessEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName in~ ("winword.exe", "excel.exe", "powerpnt.exe", "msaccess.exe", "outlook.exe")
| where FileName in~ ("cmd.exe", "powershell.exe", "cscript.exe", "wscript.exe", "regsvr32.exe", "rundll32.exe", "mshta.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, ProcessCommandLine, AccountName, FileName
| limit 1000
DeviceNetworkEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName in~ ("winword.exe", "excel.exe", "powerpnt.exe", "msaccess.exe", "iexplore.exe", "msedge.exe")
| where RemoteIPType == "Public" and RemotePort in (80, 443, 8080, 8443)
| where RemoteUrl !has "microsoft.com" and RemoteUrl !has "office.com"
| project Timestamp, DeviceName, InitiatingProcessFileName, RemoteUrl, RemoteIP, RemotePort, AccountName
| limit 1000
DeviceFileEvents
| where Timestamp > ago(7d)
| where FolderPath has_any ("%temp%", "AppData\\Local\\Temp", "AppData\\Roaming")
| where FileName matches regex @"(?i)\.(docx?|xlsx?|pptx?|msg)$"
| join kind=inner (
DeviceProcessEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName in~ ("winword.exe", "excel.exe", "powerpnt.exe")
) on DeviceName
| project Timestamp, DeviceName, FileName, FolderPath, ProcessCommandLine, AccountName
| limit 1000
DeviceProcessEvents
| where Timestamp > ago(7d)
| where ProcessCommandLine has_any ("activemq", "org.apache.activemq") or InitiatingProcessFileName =~ "activemq.exe"
| where ProcessCommandLine matches regex @"(?i)(spring|java\.lang\.runtime|exec|ProcessBuilder)" or FolderPath has "activemq"
| project Timestamp, DeviceName, ProcessCommandLine, ProcessId, AccountName, SHA256, InitiatingProcessFileName
| limit 1000
DeviceNetworkEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName =~ "activemq.exe" or InitiatingProcessCommandLine has "activemq"
| where RemoteIPType == "Public" and ActionType == "ConnectionSuccess"
| where RemotePort !in (80, 443, 8161) or RemoteUrl !has "activemq"
| project Timestamp, DeviceName, InitiatingProcessFileName, RemoteIP, RemotePort, RemoteUrl, InitiatingProcessCommandLine
| limit 1000
DeviceFileEvents
| where Timestamp > ago(7d)
| where ActionType in ("FileCreated", "FileModified") and (FileName endswith ".lockbit" or FileName == "LOCKBIT_RECOVERY_INSTRUCTIONS.txt" or FolderPath has "LOCKBIT")
| join kind=inner (DeviceProcessEvents | where Timestamp > ago(7d) | where ProcessCommandLine has_any ("activemq", "java")) on DeviceId
| project Timestamp, DeviceName, FileName, FolderPath, ProcessCommandLine, AccountName
| limit 1000
DeviceNetworkEvents
| where Timestamp > ago(7d)
| where RemoteUrl has "aviatrix" or RemoteUrl matches @"(?i)controller"
| where ActionType == "ConnectionSuccess" or ActionType == "ConnectionAttempted"
| where InitiatingProcessFileName !in ("aviatrix-agent", "aviatrix-controller")
| project Timestamp, DeviceName, RemoteUrl, RemoteIP, InitiatingProcessFileName, InitiatingProcessCommandLine
| limit 1000
DeviceProcessEvents
| where Timestamp > ago(7d)
| where DeviceName has "aviatrix" or DeviceName has "controller"
| where ProcessCommandLine has_any ("bash", "sh", "cmd", "powershell", "curl", "wget") and ProcessCommandLine has_any ("/api/", "unauthenticated", "rce")
| where AccountName !in ("aviatrix", "root", "system")
| project Timestamp, DeviceName, ProcessCommandLine, AccountName, ProcessId, ParentProcessFileName
| limit 1000
union
(SecurityEvent | where EventID == 4625 and Computer has "aviatrix" | project Timestamp, Computer, Account, IpAddress),
(DeviceProcessEvents | where DeviceName has "aviatrix" and ProcessCommandLine has_any ("bash", "sh", "cmd") | project Timestamp, DeviceName, ProcessCommandLine, AccountName)
| sort by Timestamp desc
| limit 1000
DeviceProcessEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName has_any ("java", "confluence")
| where ProcessCommandLine has_any ("curl", "wget", "powershell", "cmd.exe /c", "bash -c")
| where ProcessCommandLine matches regex @"(?i)(http|ftp|payload|meterpreter|reverse)"
| project Timestamp, DeviceName, InitiatingProcessFileName, ProcessCommandLine, ProcessId, AccountName
| limit 1000
DeviceNetworkEvents
| where Timestamp > ago(7d)
| where RemoteUrl has_any ("confluence", "/rest/", "/wiki/") or RemoteUrl matches regex @"(?i)(template|velocity|freemarker|ssti)"
| where InitiatingProcessFileName has_any ("java", "tomcat", "confluence")
| where ActionType in ("ConnectionSuccess", "ConnectionAttempted")
| project Timestamp, DeviceName, RemoteIP, RemoteUrl, InitiatingProcessFileName, InitiatingProcessCommandLine
| limit 1000
DeviceFileEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName has_any ("java", "confluence", "curl", "powershell")
| where FolderPath has_any ("temp", "appdata", "programdata", "windows\\system32")
| where FileName matches regex @"(?i)(\.exe|\.dll|\.ps1|\.bat|\.sh|ransom|crypt|encrypt)"
| project Timestamp, DeviceName, FolderPath, FileName, InitiatingProcessFileName, InitiatingProcessCommandLine, FileSize
| limit 1000
DeviceProcessEvents
| where Timestamp > ago(7d)
| where FileName has_any ("php-cgi.exe", "php-cgi") or ProcessCommandLine has "php-cgi"
| where ProcessCommandLine matches regex @"(?i)(-d\s+auto_prepend_file|allow_url_include|register_globals)" or ProcessCommandLine contains "-r" or ProcessCommandLine contains "eval"
| project Timestamp, DeviceName, AccountName, ProcessCommandLine, ProcessId, InitiatingProcessFileName, FolderPath
| limit 1000
DeviceNetworkEvents
| where Timestamp > ago(7d)
| where RemoteUrl matches regex @"(?i)(\.php\?|cgi-bin|php-cgi)" or RemoteUrl contains "auto_prepend_file" or RemoteUrl contains "allow_url_include"
| where InitiatingProcessFileName has_any ("w3wp.exe", "httpd.exe", "nginx", "apache2", "php-cgi.exe") or RemotePort in (80, 443, 8080)
| project Timestamp, DeviceName, RemoteUrl, RemoteIP, InitiatingProcessFileName, InitiatingProcessCommandLine, LocalPort, RemotePort
| limit 1000
DeviceProcessEvents
| where Timestamp > ago(7d)
| where ParentFileName has_any ("php-cgi.exe", "php-cgi") or ParentProcessId in (
DeviceProcessEvents
| where FileName has_any ("php-cgi.exe", "php-cgi")
| project ProcessId
)
| where FileName has_any ("cmd.exe", "powershell.exe", "bash", "sh", "whoami", "net.exe", "ipconfig.exe") or ProcessCommandLine matches regex @"(?i)(cmd|powershell|bash|nc|ncat|curl|wget)"
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine, ParentFileName, ProcessId, ParentProcessId
| limit 1000
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where ProcessCommandLine has_any ("react", "node", "npm") and (ProcessCommandLine matches regex @"(?i)(eval|exec|spawn|child_process)" or ProcessCommandLine contains "--expose-gc" or ProcessCommandLine contains "--max-old-space-size")
| project Timestamp, DeviceName, AccountName, ProcessCommandLine, ProcessId, FileName, FolderPath
| limit 1000
DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName in~ ("node.exe", "npm.exe", "react.exe") or InitiatingProcessCommandLine has "react"
| where RemoteIPType == "Public" and RemotePort in (80, 443, 8080, 3000, 5000)
| where RemoteUrl !has_any ("npmjs.com", "github.com", "cdn.jsdelivr.net", "unpkg.com")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteIP, RemoteUrl, RemotePort
| limit 1000
DeviceFileEvents
| where TimeGenerated > ago(7d)
| where FolderPath has_any ("node_modules", "react", ".next", "dist", "build") and ActionType in ("FileCreated", "FileModified")
| where FileName !endswith (".json", ".lock", ".log") and FileName !has_any ("package", "tsconfig", "webpack")
| project Timestamp, DeviceName, AccountName, ActionType, FolderPath, FileName, SHA256
| limit 1000
CVE-2025-61882 (NetVanguard-cmd) is a critical vulnerability with a CVSS score of 9.8 affecting multiple platforms including Windows, Azure, and Docker environments. Detection should focus on identifying exploitation attempts through command execution patterns and suspicious process activity associated with vulnerable NetVanguard components.
Detection Query (KQL)DeviceProcessEvents | where ProcessCommandLine contains "netvanguard" or ProcessCommandLine contains "netguard" or ProcessCommandLine matches regex @"(?i)(netvanguard|netguard).*cmd" | where InitiatingProcessName !in ("explorer.exe", "svchost.exe") | project Timestamp, DeviceName, ProcessId, ProcessCommandLine, InitiatingProcessName, InitiatingProcessId, AccountName | union (SecurityEvent | where EventID == 4688 and (CommandLine contains "netvanguard" or CommandLine contains "netguard") | project TimeGenerated, Computer, NewProcessId, CommandLine, ParentProcessName, SubjectUserName)
Detection Logic
Monitor for process creation events containing NetVanguard-cmd references in command lines, focusing on suspicious parent processes and execution contexts. Cross-reference Windows Security Event logs (EventID 4688) and Microsoft Defender for Endpoint process events to identify exploitation attempts. Alert on any execution from non-standard locations or by unexpected service accounts.
Affected ProductsWindows, Azure, Docker, VMware, Cisco, Chrome, Python, Office365
ATT&CK TechniquesT1059.001, T1190, T1203
False Positive NotesLegitimate NetVanguard administrative tools may trigger alerts; whitelist known administrative accounts and scheduled maintenance windows. Filter out expected system processes and legitimate security software. Tune based on organizational baseline of NetVanguard usage patterns. Consider excluding events from approved administrative workstations and change management systems.
ThreatPulse — Automated Threat Intelligence
Unsubscribe |
Update Preferences