This detection identifies adversary activity involving four specific indicators of compromise linked to the VShell remote access tool, which is frequently leveraged by threat actors for lateral movement and persistent command execution. Proactively hunting for these IOCs within Azure Sentinel is critical to rapidly uncover stealthy post-compromise sessions that may evade standard signature-based defenses and prevent unauthorized system control.
Malware Family: VShell Total IOCs: 4 IOC Types: ip:port
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 47[.]97[.]197[.]89:40000 | botnet_cc | 2026-07-25 | 100% |
| ip:port | 149[.]62[.]46[.]110:8085 | botnet_cc | 2026-07-25 | 100% |
| ip:port | 119[.]29[.]5[.]85:10443 | botnet_cc | 2026-07-25 | 100% |
| ip:port | 47[.]102[.]200[.]89:8084 | botnet_cc | 2026-07-25 | 100% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - VShell
let malicious_ips = dynamic(["47.97.197.89", "119.29.5.85", "47.102.200.89", "149.62.46.110"]);
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(["47.97.197.89", "119.29.5.85", "47.102.200.89", "149.62.46.110"]);
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 5 specific false positive scenarios for the ThreatFox: VShell IOCs detection rule, along with targeted filters or exclusions to mitigate noise in an enterprise environment:
Scenario: Enterprise Antivirus Scheduled Scans
falconagent.exe (CrowdStrike) or MsMpEng.exe (MDE) and the event timestamp falls within the defined maintenance window (e.g., 02:00–04:00 UTC).Scenario: DevOps CI/CD Pipeline Artifacts
10.20.30.0/24) or exclude alerts where the source hostname contains keywords like “jenkins-node” or “gitlab-runner”.Scenario: Third-Party Patch Management Deployments