← Back to SOC feed Coverage →

ThreatFox: PureLogs Stealer IOCs

ioc-hunt HIGH ThreatFox
CommonSecurityLogDeviceNetworkEventsUrlClickEvents
infostealeriocthreatfoxwin-purelogs
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-09-07T23:00:00Z · Confidence: high

Hunt Hypothesis

This hunt identifies the presence of PureLogs Stealer, a credential and data theft malware, by correlating its known IOCs against Azure Sentinel telemetry to detect active compromise. Proactively hunting for these indicators is critical because this stealer often operates silently to exfiltrate sensitive information, allowing the SOC to identify and isolate affected assets before the adversary achieves their objective.

IOC Summary

Malware Family: PureLogs Stealer Total IOCs: 8 IOC Types: ip:port, url

TypeValueThreat TypeFirst SeenConfidence
ip:port64[.]89[.]160[.]140:587botnet_cc2026-09-0775%
urlhxxps://pullout.ezgateway.net:587/discordbotnet_cc2026-09-07100%
urlhxxps://pullout.ezgateway.net:587/filesearch/reqbotnet_cc2026-09-07100%
urlhxxps://pullout.ezgateway.net:587/finishbotnet_cc2026-09-07100%
urlhxxps://pullout.ezgateway.net:587/pluginbotnet_cc2026-09-07100%
urlhxxps://pullout.ezgateway.net:587/userinfobotnet_cc2026-09-07100%
urlhxxps://pullout.ezgateway.net:587/browserbotnet_cc2026-09-07100%
urlhxxps://pullout.ezgateway.net:587/pingbotnet_cc2026-09-07100%

KQL: Ip Hunt

// Hunt for network connections to known malicious IPs
// Source: ThreatFox - PureLogs Stealer
let malicious_ips = dynamic(["64.89.160.140"]);
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(["64.89.160.140"]);
DeviceNetworkEvents
| where RemoteIP in (malicious_ips)
| project Timestamp, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName, ActionType
| order by Timestamp desc

KQL: Url Hunt

// Hunt for access to known malicious URLs
// Source: ThreatFox - PureLogs Stealer
let malicious_urls = dynamic(["https://pullout.ezgateway.net:587/discord", "https://pullout.ezgateway.net:587/filesearch/req", "https://pullout.ezgateway.net:587/finish", "https://pullout.ezgateway.net:587/plugin", "https://pullout.ezgateway.net:587/userinfo", "https://pullout.ezgateway.net:587/browser", "https://pullout.ezgateway.net:587/ping"]);
UrlClickEvents
| where Url has_any (malicious_urls)
| project Timestamp, AccountUpn, Url, ActionType, IsClickedThrough
| order by Timestamp desc

Required Data Sources

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

References

False Positive Guidance

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