This hunt detects adversary behavior consistent with the Mirai botnet by identifying network connections to a specific set of 18 known Indicators of Compromise (IOCs) that signal active malware communication or command-and-control activity. Proactively hunting for these signatures in Azure Sentinel is critical because early identification allows the SOC team to isolate infected IoT devices before they can be leveraged for large-scale DDoS attacks or lateral movement within the enterprise network.
Malware Family: Mirai Total IOCs: 18 IOC Types: sha256_hash, ip:port, url, domain
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 103[.]253[.]212[.]175:6868 | botnet_cc | 2026-06-28 | 75% |
| domain | nzr.narxzz.biz.id | botnet_cc | 2026-06-28 | 100% |
| ip:port | 91[.]92[.]42[.]125:9111 | botnet_cc | 2026-06-28 | 100% |
| domain | jaffacakes118-is-a-stupid-nigger.online | botnet_cc | 2026-06-28 | 100% |
| ip:port | 46[.]8[.]236[.]234:80 | botnet_cc | 2026-06-28 | 100% |
| ip:port | 46[.]8[.]236[.]234:123 | botnet_cc | 2026-06-28 | 100% |
| ip:port | 46[.]8[.]236[.]234:25565 | botnet_cc | 2026-06-28 | 100% |
| ip:port | 91[.]92[.]40[.]63:9111 | botnet_cc | 2026-06-28 | 100% |
| ip:port | 141[.]11[.]88[.]109:6767 | botnet_cc | 2026-06-28 | 100% |
| domain | higher.makeup | botnet_cc | 2026-06-28 | 100% |
| ip:port | 46[.]8[.]238[.]161:80 | botnet_cc | 2026-06-28 | 100% |
| ip:port | 46[.]8[.]238[.]161:123 | botnet_cc | 2026-06-28 | 100% |
| ip:port | 46[.]8[.]238[.]161:25565 | botnet_cc | 2026-06-28 | 100% |
| domain | abusereports.lol | botnet_cc | 2026-06-27 | 100% |
| url | hxxp://89[.]32[.]41[.]16/bins/pmips | payload_delivery | 2026-06-27 | 75% |
| url | hxxp://89[.]32[.]41[.]16/bins/pmpsl | payload_delivery | 2026-06-27 | 75% |
| sha256_hash | 37733e5966cf4129c79c419725fbc2f7bcdac446683d966107bb3065d959422f | payload | 2026-06-27 | 80% |
| sha256_hash | 3af414ef65da7494da9604e1a1dcf1a2a92234a4c8fd2fa11bb292970ea4282e | payload | 2026-06-27 | 80% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - Mirai
let malicious_ips = dynamic(["91.92.42.125", "46.8.236.234", "103.253.212.175", "46.8.238.161", "91.92.40.63", "141.11.88.109"]);
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.42.125", "46.8.236.234", "103.253.212.175", "46.8.238.161", "91.92.40.63", "141.11.88.109"]);
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 - Mirai
let malicious_domains = dynamic(["nzr.narxzz.biz.id", "jaffacakes118-is-a-stupid-nigger.online", "higher.makeup", "abusereports.lol"]);
DnsEvents
| where Name has_any (malicious_domains)
| project TimeGenerated, Computer, Name, IPAddresses, QueryType
| order by TimeGenerated desc
// Hunt for access to known malicious URLs
// Source: ThreatFox - Mirai
let malicious_urls = dynamic(["http://89.32.41.16/bins/pmips", "http://89.32.41.16/bins/pmpsl"]);
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 - Mirai
let malicious_hashes = dynamic(["37733e5966cf4129c79c419725fbc2f7bcdac446683d966107bb3065d959422f", "3af414ef65da7494da9604e1a1dcf1a2a92234a4c8fd2fa11bb292970ea4282e"]);
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 |
DnsEvents | Ensure this data connector is enabled |
UrlClickEvents | Ensure this data connector is enabled |
Here are 5 specific false positive scenarios for the ThreatFox: Mirai IOCs detection rule, tailored for a legitimate enterprise environment:
Automated Firmware Update Scans
Source IP belongs to the internal “Network Infrastructure” VLAN (e.g., 10.10.50.0/24) and the Destination Port is restricted to standard update ports (80, 443, 8080).Scheduled Vulnerability Assessment Jobs
Source IP is identified as a “Scanner” asset tag within your CMDB, or specifically exclude traffic originating from the Tenable Qualys scanner IP range (e.g., 192.168.50.10) during scheduled maintenance windows (e.g., Sundays 02:00–04:00 UTC).Cloud-Managed IoT Device Provisioning