This detection rule identifies active DCRat malware infections by matching network and endpoint telemetry against seven specific Indicators of Compromise (IOCs) known to facilitate remote access trojan capabilities. Proactively hunting for these IOCs within Azure Sentinel is critical because DCRat’s ability to establish persistent command-and-control channels allows adversaries to exfiltrate sensitive data before traditional signature-based defenses can react.
Malware Family: DCRat Total IOCs: 7 IOC Types: sha256_hash, url, md5_hash, ip:port, sha1_hash
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 91[.]92[.]241[.]38:8848 | botnet_cc | 2026-08-28 | 75% |
| ip:port | 102[.]220[.]160[.]231:80 | botnet_cc | 2026-08-28 | 75% |
| ip:port | 102[.]220[.]160[.]231:8848 | botnet_cc | 2026-08-28 | 75% |
| url | hxxp://cx288605.tw1.ru/L1nc0In.php | botnet_cc | 2026-08-28 | 100% |
| sha1_hash | 92937973d50ddd6bff639bf35feb25b119f56edd | payload | 2026-08-28 | 95% |
| md5_hash | 9fce0558dd8b2061c7a8baf0877d5384 | payload | 2026-08-28 | 95% |
| sha256_hash | 9b0e3f974dac0023599bb604b5b30e3e763c2d1d28ecff80d307ca73dc06243f | payload | 2026-08-28 | 95% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - DCRat
let malicious_ips = dynamic(["91.92.241.38", "102.220.160.231"]);
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(["91.92.241.38", "102.220.160.231"]);
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 - DCRat
let malicious_urls = dynamic(["http://cx288605.tw1.ru/L1nc0In.php"]);
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 - DCRat
let malicious_hashes = dynamic(["92937973d50ddd6bff639bf35feb25b119f56edd", "9fce0558dd8b2061c7a8baf0877d5384", "9b0e3f974dac0023599bb604b5b30e3e763c2d1d28ecff80d307ca73dc06243f"]);
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 |
Here are 5 specific false positive scenarios for the ThreatFox: DCRat IOCs detection rule, including tailored filters and exclusions suitable for an enterprise environment:
Scenario: Scheduled Antivirus or EDR Full Scans
*FalconSensor.exe, MsMpEng.exe, or Symantec Client*.exe when communicating with known internal EDR gateway ports (e.g., 80, 443, 9601).Scenario: Automated Backup Agent Communication
10.50.x.x) and filter out process names matching VeeamAgent.exe, rubrik-agent, or commcell_service during defined maintenance windows (e.g., 02:00–06:00 local time).Scenario: Internal Software Update Services