This detection rule identifies adversary activity by correlating network and host telemetry against nine specific Indicators of Compromise (IOCs) linked to the VShell threat actor. Proactive hunting for these IOCs within Azure Sentinel is critical because early identification of VShell’s unique signatures enables the SOC team to rapidly isolate compromised assets before lateral movement or data exfiltration occurs.
Malware Family: VShell Total IOCs: 9 IOC Types: ip:port
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 96[.]126[.]179[.]88:443 | botnet_cc | 2026-08-07 | 100% |
| ip:port | 96[.]126[.]179[.]88:10000 | botnet_cc | 2026-08-07 | 100% |
| ip:port | 96[.]126[.]179[.]88:80 | botnet_cc | 2026-08-07 | 100% |
| ip:port | 106[.]38[.]201[.]117:8090 | botnet_cc | 2026-08-07 | 100% |
| ip:port | 18[.]195[.]123[.]92:80 | botnet_cc | 2026-08-07 | 100% |
| ip:port | 192[.]255[.]236[.]156:8084 | botnet_cc | 2026-08-07 | 100% |
| ip:port | 159[.]65[.]11[.]219:8888 | botnet_cc | 2026-08-07 | 100% |
| ip:port | 38[.]147[.]170[.]102:8084 | botnet_cc | 2026-08-07 | 100% |
| ip:port | 49[.]233[.]13[.]225:8084 | botnet_cc | 2026-08-07 | 100% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - VShell
let malicious_ips = dynamic(["18.195.123.92", "38.147.170.102", "106.38.201.117", "49.233.13.225", "159.65.11.219", "96.126.179.88", "192.255.236.156"]);
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(["18.195.123.92", "38.147.170.102", "106.38.201.117", "49.233.13.225", "159.65.11.219", "96.126.179.88", "192.255.236.156"]);
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, including tailored filters and exclusions suitable for an enterprise environment:
Scenario: Automated Security Scanner Traffic
10.50.20.0/24) where the source process is identified as nessus.exe, qualyspcd.exe, or insightvm-agent. Add a condition to ignore events where the Source Process Name matches these specific scanner executables.Scenario: Scheduled Backup and Archiving Jobs
01:30 and 04:30 where the source hostname contains “Backup-” or “Bkp-” prefixes, and the initiating process path is located within \Program Files\Veeam\ or \Commvault\.Scenario: DevOps CI/CD Pipeline Execution