This detection rule identifies adversary activity involving six specific indicators of compromise (IOCs) linked to the VShell threat actor, which often targets enterprise environments through initial access and command execution vectors. A SOC team should proactively hunt for these signals within Azure Sentinel to rapidly detect early-stage intrusions by VShell, enabling timely containment before lateral movement or data exfiltration occurs.
Malware Family: VShell Total IOCs: 6 IOC Types: ip:port
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 38[.]190[.]198[.]30:18080 | botnet_cc | 2026-08-03 | 100% |
| ip:port | 154[.]89[.]148[.]121:18084 | botnet_cc | 2026-08-03 | 100% |
| ip:port | 60[.]185[.]78[.]107:8084 | botnet_cc | 2026-08-03 | 100% |
| ip:port | 101[.]42[.]176[.]50:8084 | botnet_cc | 2026-08-03 | 100% |
| ip:port | 47[.]236[.]130[.]154:58357 | botnet_cc | 2026-08-03 | 100% |
| ip:port | 43[.]139[.]174[.]4:8443 | botnet_cc | 2026-08-03 | 100% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - VShell
let malicious_ips = dynamic(["38.190.198.30", "47.236.130.154", "154.89.148.121", "43.139.174.4", "60.185.78.107", "101.42.176.50"]);
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(["38.190.198.30", "47.236.130.154", "154.89.148.121", "43.139.174.4", "60.185.78.107", "101.42.176.50"]);
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 filtering strategies suitable for an enterprise environment:
Scenario: Scheduled Backup Executions via Admin Accounts
10.20.45.x) where the source user is a known service account (e.g., svc_backup_admin). Additionally, exclude events occurring during defined maintenance windows (e.g., 02:00–04:00 UTC).Scenario: Patch Management Deployment Workflows
ccmsetup.exe, IvantiAgent, or wsusdc. Combine this with a time-based exclusion for known patch cycles (e.g., every Tuesday and Thursday between 01:00–03:00).Scenario: Third-Party SIEM/EDR Data Ingestion