This hunt targets the presence of known Cobalt Strike indicators, which adversaries frequently deploy to establish command-and-control channels and execute post-compromise actions. Proactively hunting for these IOCs in Azure Sentinel allows the SOC to identify active or dormant implants before they are leveraged for lateral movement or data exfiltration, reducing the dwell time of sophisticated threat actors.
Malware Family: Cobalt Strike Total IOCs: 7 IOC Types: domain, ip:port
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 111[.]228[.]49[.]20:443 | botnet_cc | 2026-09-11 | 100% |
| domain | 1309673150-86ymvxmhrm.ap-shanghai.tencentscf.com | botnet_cc | 2026-09-11 | 75% |
| ip:port | 114[.]66[.]27[.]110:8888 | botnet_cc | 2026-09-11 | 100% |
| ip:port | 109[.]236[.]50[.]145:91 | botnet_cc | 2026-09-11 | 100% |
| ip:port | 223[.]109[.]142[.]7:7000 | botnet_cc | 2026-09-11 | 100% |
| ip:port | 83[.]229[.]123[.]249:8082 | botnet_cc | 2026-09-11 | 100% |
| ip:port | 47[.]109[.]23[.]77:9999 | botnet_cc | 2026-09-11 | 100% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - Cobalt Strike
let malicious_ips = dynamic(["83.229.123.249", "47.109.23.77", "114.66.27.110", "223.109.142.7", "111.228.49.20", "109.236.50.145"]);
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(["83.229.123.249", "47.109.23.77", "114.66.27.110", "223.109.142.7", "111.228.49.20", "109.236.50.145"]);
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 - Cobalt Strike
let malicious_domains = dynamic(["1309673150-86ymvxmhrm.ap-shanghai.tencentscf.com"]);
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 |
redteam, pentest, or validation in your CMDB or asset inventory; alternatively, suppress alerts for known test accounts (e.g., svc_redteam, user_pentest) during scheduled test windows.beacon binary or similar naming conventions for their update agents, especially if the vendor uses open-source components or shares binaries with security teams.
beacon.exe or cobaltstrike.exe if the parent process is a known update service (e.g., wsus, appdeploy, patchmgr) and the file path resides in a standard application directory (e.g., C:\Program Files\VendorApp\).dev, qa, or lab subnets or AD groups; additionally, filter out alerts where the user account belongs to the DevTeam or QATeam security group and the host is not in the production OU.