This hunt targets adversary behavior involving the deployment of NjRAT remote access trojan components by matching network and host artifacts against a curated set of eleven high-confidence indicators of compromise. Proactively hunting for these specific IOCs within Azure Sentinel is critical to identify early-stage lateral movement or command-and-control communications before they escalate into full-scale data exfiltration incidents.
Malware Family: NjRAT Total IOCs: 11 IOC Types: sha1_hash, sha256_hash, md5_hash, ip:port
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| sha1_hash | 2f299b8f3839e4259a27f4b1d8af0d2473cfe7e0 | payload | 2026-06-29 | 95% |
| md5_hash | 1e3fd12fee9d2fd27642ed24cff01338 | payload | 2026-06-29 | 95% |
| sha256_hash | a834cec6b236453ee671c23326b60763880a47c93ccc595d6e566ec5f81ade88 | payload | 2026-06-29 | 95% |
| sha256_hash | 1086e2ec8e9274e1639f14084f27d3b47e606c37ccc2a1e4976db6633ef797d5 | payload | 2026-06-29 | 95% |
| sha1_hash | 5bc1696dec9c0d82be4ff8910a7ae7c217e9e40e | payload | 2026-06-29 | 95% |
| md5_hash | 2f61cb4b14e0cf839a4a823eceea88e9 | payload | 2026-06-29 | 95% |
| sha256_hash | 31c37ff61aa322192236c9672f09e3d97b6e6e09c5019077df7d0567d4c0b48b | payload | 2026-06-29 | 95% |
| sha1_hash | 33e85ae9412fa870e5d6de31502e7d48c64ce224 | payload | 2026-06-29 | 95% |
| md5_hash | 744e1221f6467d0b7e73a10f52e6cd6c | payload | 2026-06-29 | 95% |
| ip:port | 3[.]127[.]181[.]115:19587 | botnet_cc | 2026-06-29 | 100% |
| ip:port | 155[.]117[.]183[.]181:2017 | botnet_cc | 2026-06-29 | 100% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - NjRAT
let malicious_ips = dynamic(["3.127.181.115", "155.117.183.181"]);
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(["3.127.181.115", "155.117.183.181"]);
DeviceNetworkEvents
| where RemoteIP in (malicious_ips)
| project Timestamp, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName, ActionType
| order by Timestamp desc
// Hunt for files matching known malicious hashes
// Source: ThreatFox - NjRAT
let malicious_hashes = dynamic(["2f299b8f3839e4259a27f4b1d8af0d2473cfe7e0", "1e3fd12fee9d2fd27642ed24cff01338", "a834cec6b236453ee671c23326b60763880a47c93ccc595d6e566ec5f81ade88", "1086e2ec8e9274e1639f14084f27d3b47e606c37ccc2a1e4976db6633ef797d5", "5bc1696dec9c0d82be4ff8910a7ae7c217e9e40e", "2f61cb4b14e0cf839a4a823eceea88e9", "31c37ff61aa322192236c9672f09e3d97b6e6e09c5019077df7d0567d4c0b48b", "33e85ae9412fa870e5d6de31502e7d48c64ce224", "744e1221f6467d0b7e73a10f52e6cd6c"]);
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 |
Here are 4 specific false positive scenarios for the ThreatFox: NjRAT IOCs detection rule in an enterprise environment, along with suggested filters or exclusions:
Endpoint Management Software Updates (e.g., Ivanti, SCCM)
Source_IP in [Internal_Mgmt_Range] AND Destination_Port = 443/80).Third-Party Remote Support Sessions (e.g., TeamViewer, AnyDesk)
Process_Path contains "\TeamViewer\TeamViewer.exe" or Process_Name in ["AnyDesk.exe", "TeamViewer_Service"]) and restrict the alert scope to non-admin user sessions during business hours.Automated Backup and Sync Operations (e.g., Veeam, OneDrive) *