This hunt targets adversary behavior involving the execution of known ValleyRAT remote access trojan indicators to establish persistent command-and-control channels within the network. Proactively hunting these specific IOCs in Azure Sentinel is critical for early detection of lateral movement and data exfiltration attempts before they escalate into a full-scale compromise.
Malware Family: ValleyRAT Total IOCs: 7 IOC Types: ip:port, domain
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 112[.]213[.]101[.]132:1121 | botnet_cc | 2026-07-11 | 75% |
| domain | afdm.scloudflareb.com | botnet_cc | 2026-07-11 | 100% |
| domain | osgyx.cn | botnet_cc | 2026-07-11 | 100% |
| ip:port | 154[.]36[.]188[.]90:80 | botnet_cc | 2026-07-11 | 75% |
| ip:port | 95[.]41[.]4[.]54:80 | botnet_cc | 2026-07-11 | 75% |
| ip:port | 18[.]163[.]0[.]245:80 | botnet_cc | 2026-07-11 | 75% |
| domain | qqdhq.cn | botnet_cc | 2026-07-11 | 100% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - ValleyRAT
let malicious_ips = dynamic(["95.41.4.54", "18.163.0.245", "154.36.188.90", "112.213.101.132"]);
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(["95.41.4.54", "18.163.0.245", "154.36.188.90", "112.213.101.132"]);
DeviceNetworkEvents
| where RemoteIP in (malicious_ips)
| project Timestamp, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName, ActionType
| order by Timestamp desc
// Hunt for DNS queries to known malicious domains
// Source: ThreatFox - ValleyRAT
let malicious_domains = dynamic(["afdm.scloudflareb.com", "osgyx.cn", "qqdhq.cn"]);
DnsEvents
| where Name has_any (malicious_domains)
| project TimeGenerated, Computer, Name, IPAddresses, QueryType
| order by TimeGenerated desc
| Sentinel Table | Notes |
|---|---|
CommonSecurityLog | Ensure this data connector is enabled |
DeviceNetworkEvents | Ensure this data connector is enabled |
DnsEvents | Ensure this data connector is enabled |
Here are specific false positive scenarios for the ThreatFox: ValleyRAT IOCs rule in an enterprise environment, along with suggested filters and exclusions:
Endpoint Protection Scanning of Quarantine Archives
Quarantine or Threats folders where they store previously detected malware samples. If a past ValleyRAT sample was quarantined, the scanning engine may re-trigger the detection logic on the static IOCs within that archive folder during routine integrity checks.C:\ProgramData\MSC\Antimalware\Quarantine or \CrowdStrike\Logs\Quarantine). Additionally, filter out events where the parent process is the EDR service itself (e.g., csagent.exe or MsMpEng.exe) rather than a user-facing application.IT Administration: Deployment of Legacy Training Modules
Scheduled Maintenance: Automated Patching and Configuration Scripts