This hunt targets the presence of known ValleyRAT indicators of compromise to identify potential remote access trojan deployments that may have established persistent footholds within the environment. Proactively hunting for these IOCs in Azure Sentinel allows the SOC to detect and isolate compromised assets before the adversary leverages the RAT for lateral movement or data exfiltration.
Malware Family: ValleyRAT Total IOCs: 12 IOC Types: sha1_hash, sha256_hash, md5_hash, url, ip:port
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| url | hxxp://gaotlix.cn/getinstall64 | botnet_cc | 2026-09-21 | 100% |
| ip:port | 43[.]224[.]224[.]72:7800 | botnet_cc | 2026-09-21 | 100% |
| ip:port | 202[.]61[.]85[.]50:7800 | botnet_cc | 2026-09-21 | 100% |
| ip:port | 202[.]61[.]85[.]50:7811 | botnet_cc | 2026-09-21 | 100% |
| ip:port | 43[.]229[.]112[.]98:6667 | botnet_cc | 2026-09-21 | 100% |
| ip:port | 192[.]253[.]228[.]137:7800 | botnet_cc | 2026-09-21 | 100% |
| ip:port | 192[.]253[.]228[.]137:7811 | botnet_cc | 2026-09-21 | 100% |
| ip:port | 154[.]82[.]92[.]12:7800 | botnet_cc | 2026-09-21 | 100% |
| ip:port | 154[.]82[.]92[.]12:7811 | botnet_cc | 2026-09-21 | 100% |
| sha1_hash | 076f4f520f910df7ae11539c9491e5ceb97cee24 | payload | 2026-09-21 | 95% |
| md5_hash | 4729d2eb5d04baebd30f88a84a5b7f07 | payload | 2026-09-21 | 95% |
| sha256_hash | f0b0bac574efbd806924ffb0fc39901ac5ef4ef5bb280212e4c8da5f1d0e08a2 | payload | 2026-09-21 | 95% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - ValleyRAT
let malicious_ips = dynamic(["43.224.224.72", "154.82.92.12", "202.61.85.50", "43.229.112.98", "192.253.228.137"]);
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(["43.224.224.72", "154.82.92.12", "202.61.85.50", "43.229.112.98", "192.253.228.137"]);
DeviceNetworkEvents
| where RemoteIP in (malicious_ips)
| project Timestamp, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName, ActionType
| order by Timestamp desc
// Hunt for access to known malicious URLs
// Source: ThreatFox - ValleyRAT
let malicious_urls = dynamic(["http://gaotlix.cn/getinstall64"]);
UrlClickEvents
| where Url has_any (malicious_urls)
| project Timestamp, AccountUpn, Url, ActionType, IsClickedThrough
| order by Timestamp desc
// Hunt for files matching known malicious hashes
// Source: ThreatFox - ValleyRAT
let malicious_hashes = dynamic(["076f4f520f910df7ae11539c9491e5ceb97cee24", "4729d2eb5d04baebd30f88a84a5b7f07", "f0b0bac574efbd806924ffb0fc39901ac5ef4ef5bb280212e4c8da5f1d0e08a2"]);
DeviceFileEvents
| where SHA256 in (malicious_hashes) or SHA1 in (malicious_hashes) or MD5 in (malicious_hashes)
| project Timestamp, DeviceName, FileName, FolderPath, SHA256, InitiatingProcessFileName
| order by Timestamp desc
| Sentinel Table | Notes |
|---|---|
CommonSecurityLog | Ensure this data connector is enabled |
DeviceFileEvents | Ensure this data connector is enabled |
DeviceNetworkEvents | Ensure this data connector is enabled |
UrlClickEvents | Ensure this data connector is enabled |
Legacy Application Maintenance: A support engineer updates a legacy Java-based internal tool (e.g., LegacyBillingApp.jar) that was compiled with an older version of the ValleyRAT framework or shares specific class names with the IOC list. The file is placed in a shared network drive (\\fileserver\apps\legacy\) and executed by multiple users during a scheduled maintenance window.
C:\Apps\Legacy\, \\fileserver\apps\legacy\) and exclude processes where the parent process is a known Java runtime (java.exe or jre\bin\java.exe) if the IOC is a hash or filename match.Third-Party Plugin/Extension Installation: An IT administrator installs a new plugin for a monitoring tool (e.g., a custom script for Zabbix or Nagios) that uses a generic name matching one of the ValleyRAT IOCs (e.g., update.bat or check.exe). The plugin is deployed via a Group Policy Object (GPO) to a specific OU of application servers.
DOMAIN\svc-gpo, DOMAIN\svc-monitoring) and exclude paths within standard plugin directories (e.g., C:\Program Files\Zabbix\plugins\, C:\Nagios\plugins\).Development/Staging Environment Testing: A developer on a staging server (staging-web-01) tests a new microservice that reuses a shared library or binary name from the ValleyRAT IOC list (e.g., helper.dll or config.ini). The file is copied from a build artifact repository (\\buildserver\artifacts\) and executed by the dotnet.exe or `