This hunt detects active network reconnaissance and potential botnet recruitment by identifying traffic matching known Mirai malware indicators of compromise (IOCs). Proactively hunting for these signatures in Azure Sentinel is critical to rapidly isolate infected IoT devices before they can launch large-scale distributed denial-of-service attacks or pivot laterally within the enterprise network.
Malware Family: Mirai Total IOCs: 13 IOC Types: domain, ip:port
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 2[.]26[.]81[.]46:1999 | botnet_cc | 2026-08-14 | 80% |
| domain | afterhours.click | botnet_cc | 2026-08-14 | 100% |
| domain | imagiraffe.shop | botnet_cc | 2026-08-14 | 100% |
| ip:port | 135[.]136[.]191[.]231:8080 | botnet_cc | 2026-08-14 | 100% |
| domain | nightslikethis.club | botnet_cc | 2026-08-14 | 100% |
| domain | chickenfriedwatermelonkoolaid.store | botnet_cc | 2026-08-14 | 100% |
| ip:port | 135[.]136[.]191[.]231:23 | botnet_cc | 2026-08-14 | 100% |
| ip:port | 135[.]136[.]191[.]231:123 | botnet_cc | 2026-08-14 | 100% |
| ip:port | 135[.]136[.]191[.]231:80 | botnet_cc | 2026-08-14 | 100% |
| ip:port | 135[.]136[.]191[.]231:25565 | botnet_cc | 2026-08-14 | 100% |
| ip:port | 3[.]34[.]139[.]65:123 | botnet_cc | 2026-08-14 | 100% |
| ip:port | 45[.]38[.]249[.]63:1004 | payload_delivery | 2026-08-14 | 50% |
| ip:port | 172[.]104[.]49[.]49:3667 | botnet_cc | 2026-08-14 | 100% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - Mirai
let malicious_ips = dynamic(["2.26.81.46", "135.136.191.231", "45.38.249.63", "172.104.49.49", "3.34.139.65"]);
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(["2.26.81.46", "135.136.191.231", "45.38.249.63", "172.104.49.49", "3.34.139.65"]);
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(["afterhours.click", "imagiraffe.shop", "nightslikethis.club", "chickenfriedwatermelonkoolaid.store"]);
DnsEvents
| where Name has_any (malicious_domains)
| project TimeGenerated, Computer, Name, IPAddresses, QueryType
| order by TimeGenerated desc
| Sentinel Table | Notes |
|---|---|
CommonSecurityLog | Ensure this data connector is enabled |
DeviceNetworkEvents | Ensure this data connector is enabled |
DnsEvents | Ensure this data connector is enabled |
Here are specific false positive scenarios and corresponding filters for the ThreatFox: Mirai IOCs rule in an enterprise environment:
Scenario: IoT Device Firmware Updates via Scheduled Tasks
Source Device Type is “IoT” and the Destination Port matches the Mirai IOCs during defined maintenance windows (e.g., 02:00–04:00 UTC).Scenario: Network Scanning by Internal Security Tools
Source Host belongs to the “Security Operations” OU or matches specific scanner hostnames (e.g., scanner-01, qualys-agent). Additionally, filter out events where the Process Name is identified as a known scanning daemon (e.g., nessus.exe, qualyspcd.exe).Scenario: Legitimate Cloud Backup and Synchronization Services