This detection rule identifies adversary activity by matching network and host logs against five specific Indicators of Compromise (IOCs) linked to the VShell threat actor, which is known for targeting enterprise environments through sophisticated command-and-control channels. A proactive hunt in Azure Sentinel is essential because early identification of these IOCs allows the SOC team to isolate compromised assets before the adversary establishes persistence or exfiltrates sensitive data.
Malware Family: VShell Total IOCs: 5 IOC Types: ip:port
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 207[.]148[.]126[.]156:28884 | botnet_cc | 2026-08-26 | 100% |
| ip:port | 39[.]107[.]139[.]26:80 | botnet_cc | 2026-08-26 | 100% |
| ip:port | 149[.]104[.]28[.]204:8084 | botnet_cc | 2026-08-26 | 100% |
| ip:port | 124[.]222[.]150[.]13:8084 | botnet_cc | 2026-08-26 | 100% |
| ip:port | 118[.]178[.]143[.]61:8084 | botnet_cc | 2026-08-26 | 100% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - VShell
let malicious_ips = dynamic(["124.222.150.13", "207.148.126.156", "39.107.139.26", "118.178.143.61", "149.104.28.204"]);
CommonSecurityLog
| where DestinationIP in (malicious_ips) or SourceIP in (malicious_ips)
| project TimeGenerated, SourceIP, DestinationIP, DestinationPort, DeviceAction, Activity
| order by TimeGenerated desc
// Hunt in Defender for Endpoint network events
let malicious_ips = dynamic(["124.222.150.13", "207.148.126.156", "39.107.139.26", "118.178.143.61", "149.104.28.204"]);
DeviceNetworkEvents
| where RemoteIP in (malicious_ips)
| project Timestamp, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName, ActionType
| order by Timestamp desc
| Sentinel Table | Notes |
|---|---|
CommonSecurityLog | Ensure this data connector is enabled |
DeviceNetworkEvents | Ensure this data connector is enabled |
Here are 4 specific false positive scenarios for the ThreatFox: VShell IOCs detection rule, along with targeted filters and exclusions suitable for an enterprise environment:
Scenario: Automated Vulnerability Scanning by Qualys or Tenable
10.20.50.x) and filter out events where the process name is qualyspc.exe or tenable_agent.exe.Scenario: Scheduled Backup Jobs via Veeam or Commvault
22:00–04:00 local time) where the parent process is vbr.exe (Veeam) or commvault_agent.exe.Scenario: Patch Management Deployment by Microsoft Endpoint Configuration Manager (SCCM)