This hunt targets adversary behavior characterized by the execution of unknown malware signatures across the network, specifically leveraging a set of 32 distinct indicators of compromise to identify early-stage infections. Proactively hunting for these IOCs in Azure Sentinel is critical because it enables the SOC team to detect and contain novel threats before they escalate into widespread incidents that evade standard signature-based defenses.
Malware Family: Unknown malware Total IOCs: 32 IOC Types: url, sha256_hash, ip:port
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 154[.]220[.]92[.]171:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]92[.]169:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]92[.]170:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]92[.]166:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]92[.]167:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]92[.]165:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]92[.]163:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]92[.]164:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]92[.]162:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]188:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 94[.]156[.]179[.]168:443 | botnet_cc | 2026-07-03 | 75% |
| sha256_hash | 1fb0b008bc63f128227ddaaa8bc77542c0caa198825f9c514c15cec26f1660f4 | payload | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]186:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]187:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]178:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]185:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]177:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]183:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]184:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]180:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]176:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]173:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]174:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]172:8888 | botnet_cc | 2026-07-03 | 100% |
| ip:port | 154[.]220[.]123[.]171:8888 | botnet_cc | 2026-07-03 | 100% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - Unknown malware
let malicious_ips = dynamic(["154.220.92.162", "154.220.92.163", "154.220.123.180", "154.220.123.183", "154.220.123.185", "154.220.123.171", "154.220.123.184", "154.220.92.166", "154.220.123.172", "154.220.123.178", "154.220.92.164", "94.156.179.168", "154.220.92.171", "154.220.123.186", "154.220.123.174", "154.220.123.177", "154.220.123.166", "154.220.123.173", "154.220.123.167", "154.220.92.169", "154.220.123.176", "154.220.92.170", "154.220.92.165", "154.220.123.188", "154.220.123.187", "154.220.92.167"]);
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(["154.220.92.162", "154.220.92.163", "154.220.123.180", "154.220.123.183", "154.220.123.185", "154.220.123.171", "154.220.123.184", "154.220.92.166", "154.220.123.172", "154.220.123.178", "154.220.92.164", "94.156.179.168", "154.220.92.171", "154.220.123.186", "154.220.123.174", "154.220.123.177", "154.220.123.166", "154.220.123.173", "154.220.123.167", "154.220.92.169", "154.220.123.176", "154.220.92.170", "154.220.92.165", "154.220.123.188", "154.220.123.187", "154.220.92.167"]);
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 - Unknown malware
let malicious_urls = dynamic(["https://get.whitelllshop.icu", "https://whitelllshop.icu", "https://openaaii.com/", "https://skypeforwindows.com", "https://mil.loj.mybluehost.me/"]);
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 - Unknown malware
let malicious_hashes = dynamic(["1fb0b008bc63f128227ddaaa8bc77542c0caa198825f9c514c15cec26f1660f4"]);
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 four specific false positive scenarios for the ThreatFox: Unknown malware IOCs detection rule, tailored for an enterprise environment:
Enterprise Endpoint Protection Scanning Artifacts
Process Name matches known EDR services (e.g., C:\Program Files\CrowdStrike\fs.exe, MsMpEng.exe) and the User Account is a system service account (e.g., NT AUTHORITY\SYSTEM or DOMAIN\EndpointServiceAccount).Automated Software Deployment via Configuration Management
Parent Process is a known configuration management tool (e.g., ccmexec.exe, ansible-runner) and the file path resides within standard deployment directories (e.g., C:\Windows\CCMCache\* or /var/opt/ansible/deploy).Scheduled Data Backup and Archiving Jobs