This hunt targets the presence of known PureRAT indicators of compromise, which are frequently used by adversaries to establish persistent remote access and execute malicious payloads within the environment. Proactively hunting for these IOCs in Azure Sentinel allows the SOC to identify and isolate compromised assets before the threat actor can leverage the RAT for lateral movement or data exfiltration.
Malware Family: PureRAT Total IOCs: 16 IOC Types: ip:port
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 94[.]154[.]32[.]8:56001 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 94[.]154[.]32[.]8:56002 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 84[.]200[.]77[.]29:56003 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 80[.]97[.]160[.]38:443 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 196[.]251[.]121[.]124:6767 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 195[.]177[.]94[.]11:56001 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 195[.]177[.]94[.]11:56002 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 183[.]90[.]187[.]2:2025 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 183[.]90[.]187[.]73:2025 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 183[.]90[.]187[.]111:2025 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 172[.]81[.]132[.]156:56003 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 153[.]75[.]95[.]181:56002 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 153[.]75[.]95[.]181:56001 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 150[.]241[.]66[.]55:56003 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 150[.]241[.]66[.]55:56001 | botnet_cc | 2026-09-04 | 75% |
| ip:port | 150[.]241[.]66[.]55:56002 | botnet_cc | 2026-09-04 | 75% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - PureRAT
let malicious_ips = dynamic(["183.90.187.2", "94.154.32.8", "150.241.66.55", "183.90.187.111", "153.75.95.181", "84.200.77.29", "183.90.187.73", "195.177.94.11", "196.251.121.124", "172.81.132.156", "80.97.160.38"]);
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(["183.90.187.2", "94.154.32.8", "150.241.66.55", "183.90.187.111", "153.75.95.181", "84.200.77.29", "183.90.187.73", "195.177.94.11", "196.251.121.124", "172.81.132.156", "80.97.160.38"]);
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 |
C:\Program Files\Java\, C:\opt\java\, or specific application roots like C:\SAP\ and C:\Oracle\ if the file hash matches a known good baseline.C:\Windows\Temp\, C:\Users\<user>\AppData\Local\Temp\) or application-specific cache folders (e.g., C:\Program Files\Adobe\Adobe Creative Cloud\) if the parent process is a known updater service (e.g., AdobeUpdateService.exe, javaw.exe from a trusted path).C:\Users\<user>\workspace\, C:\dev\, or `C:\builds