This detection rule identifies network traffic matching known Indicators of Compromise (IOCs) from the ThreatFox feed that are specifically linked to Mirai botnet activity. A SOC team should proactively hunt for these signatures in Azure Sentinel to rapidly detect and isolate IoT devices compromised by Mirai, thereby preventing potential large-scale Distributed Denial of Service (DDoS) attacks or lateral movement within the network.
Malware Family: Mirai Total IOCs: 9 IOC Types: ip:port, domain
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 45[.]123[.]191[.]90:8080 | botnet_cc | 2026-08-05 | 100% |
| ip:port | 176[.]65[.]148[.]145:2 | payload_delivery | 2026-08-05 | 100% |
| domain | poop.garden | botnet_cc | 2026-08-05 | 100% |
| ip:port | 178[.]83[.]206[.]213:8080 | botnet_cc | 2026-08-05 | 100% |
| ip:port | 155[.]103[.]69[.]225:80 | botnet_cc | 2026-08-05 | 100% |
| ip:port | 155[.]103[.]69[.]225:8080 | botnet_cc | 2026-08-05 | 100% |
| ip:port | 155[.]103[.]69[.]225:123 | botnet_cc | 2026-08-05 | 100% |
| ip:port | 155[.]103[.]69[.]225:25565 | botnet_cc | 2026-08-05 | 100% |
| ip:port | 45[.]38[.]249[.]148:1004 | payload_delivery | 2026-08-05 | 50% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - Mirai
let malicious_ips = dynamic(["178.83.206.213", "176.65.148.145", "45.38.249.148", "155.103.69.225", "45.123.191.90"]);
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(["178.83.206.213", "176.65.148.145", "45.38.249.148", "155.103.69.225", "45.123.191.90"]);
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(["poop.garden"]);
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 exclusion strategies for the ThreatFox: Mirai IOCs detection rule in an enterprise environment:
Scenario: Scheduled Vulnerability Scans by Internal Security Tools
source_ip field to whitelist the specific subnets of the vulnerability management servers (e.g., 10.50.20.0/24) or explicitly exclude traffic where the process_name matches known scanner executables like nessus.exe, qualyspcd.exe, or rapid7-agent.Scenario: Automated Firmware Updates via IoT Management Platforms
destination_domain or destination_ip for known vendor update servers (e.g., *.cisco.com, *.azureedge.net). Additionally, filter events where the process_name