← Back to SOC feed Coverage →

ThreatFox: XWorm IOCs

ioc-hunt HIGH ThreatFox
CommonSecurityLogDeviceNetworkEventsDnsEvents
iocthreatfoxwin-xworm
This rule was pulled from an open-source repository and enriched with AI. Validate in a test environment before deploying to production.
View original rule at ThreatFox →
Retrieved: 2026-08-20T11:00:00Z · Confidence: high

Hunt Hypothesis

This detection identifies adversary activity involving specific Indicators of Compromise (IOCs) linked to the XWorm malware family, which often targets networked systems through file-based propagation and lateral movement. Proactively hunting for these IOCs in Azure Sentinel is critical because early identification allows the SOC team to isolate infected endpoints before the worm can exploit unpatched vulnerabilities to spread rapidly across the enterprise infrastructure.

IOC Summary

Malware Family: XWorm Total IOCs: 5 IOC Types: ip:port, domain

TypeValueThreat TypeFirst SeenConfidence
ip:port194[.]59[.]31[.]98:2021botnet_cc2026-08-2075%
ip:port169[.]58[.]169[.]10:7004botnet_cc2026-08-2075%
ip:port15[.]204[.]115[.]143:7004botnet_cc2026-08-2075%
domainrange2021.kozow.combotnet_cc2026-08-2075%
domainhalakw.combotnet_cc2026-08-2075%

KQL: Ip Hunt

// Hunt for network connections to known malicious IPs
// Source: ThreatFox - XWorm
let malicious_ips = dynamic(["15.204.115.143", "194.59.31.98", "169.58.169.10"]);
CommonSecurityLog
| where DestinationIP in (malicious_ips) or SourceIP in (malicious_ips)
| project TimeGenerated, SourceIP, DestinationIP, DestinationPort, DeviceAction, Activity
| order by TimeGenerated desc

KQL: Ip Hunt Device

// Hunt in Defender for Endpoint network events
let malicious_ips = dynamic(["15.204.115.143", "194.59.31.98", "169.58.169.10"]);
DeviceNetworkEvents
| where RemoteIP in (malicious_ips)
| project Timestamp, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName, ActionType
| order by Timestamp desc

KQL: Domain Hunt

// Hunt for DNS queries to known malicious domains
// Source: ThreatFox - XWorm
let malicious_domains = dynamic(["range2021.kozow.com", "halakw.com"]);
DnsEvents
| where Name has_any (malicious_domains)
| project TimeGenerated, Computer, Name, IPAddresses, QueryType
| order by TimeGenerated desc

Required Data Sources

Sentinel TableNotes
CommonSecurityLogEnsure this data connector is enabled
DeviceNetworkEventsEnsure this data connector is enabled
DnsEventsEnsure this data connector is enabled

References

False Positive Guidance

Here are 4 specific false positive scenarios for the ThreatFox: XWorm IOCs detection rule, along with targeted filtering strategies suitable for an enterprise environment:

Original source: https://threatfox.abuse.ch/browse/malware/win.xworm/