This detection rule identifies adversary activity involving specific Indicators of Compromise (IOCs) linked to the VShell remote access tool, which is frequently leveraged by threat actors for initial access and lateral movement. Proactively hunting for these IOCs within Azure Sentinel allows the SOC team to rapidly detect and respond to potential unauthorized remote sessions before adversaries can establish persistence or exfiltrate sensitive data.
Malware Family: VShell Total IOCs: 2 IOC Types: ip:port
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 38[.]47[.]102[.]194:8084 | botnet_cc | 2026-08-27 | 100% |
| ip:port | 8[.]148[.]13[.]91:8084 | botnet_cc | 2026-08-27 | 100% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - VShell
let malicious_ips = dynamic(["8.148.13.91", "38.47.102.194"]);
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(["8.148.13.91", "38.47.102.194"]);
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 specific false positive scenarios and corresponding exclusion strategies for the ThreatFox: VShell IOCs detection rule in an enterprise environment:
Scenario: Automated Vulnerability Scanning by Enterprise Security Suite
10.50.20.0/24) and restrict the alert to non-scan hours or specific user accounts used by the scanner service (e.g., svc_nessus, qualys_agent).Scenario: Legacy Application Migration via PowerShell Scripts
pwsh.exe, ansible-runner) and the source user is a recognized service account (e.g., svc_migration, admin_ansible). Additionally, filter by specific destination ports if the migration targets a distinct subnet.Scenario: Third-Party Backup Solution Connectivity Checks