This hypothesis targets the presence of known Cobalt Strike indicators of compromise, which adversaries deploy to establish persistent command and control channels and facilitate lateral movement within the network. Proactively hunting for these IOCs in Azure Sentinel allows the SOC team to identify and isolate compromised assets before the threat actor can escalate privileges or exfiltrate sensitive data.
Malware Family: Cobalt Strike Total IOCs: 20 IOC Types: ip:port
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 43[.]155[.]246[.]58:443 | botnet_cc | 2026-09-13 | 100% |
| ip:port | 43[.]155[.]246[.]58:8080 | botnet_cc | 2026-09-13 | 100% |
| ip:port | 43[.]155[.]246[.]58:22 | botnet_cc | 2026-09-13 | 100% |
| ip:port | 43[.]166[.]202[.]32:80 | botnet_cc | 2026-09-13 | 100% |
| ip:port | 38[.]76[.]190[.]209:3306 | botnet_cc | 2026-09-13 | 100% |
| ip:port | 189[.]24[.]79[.]40:8112 | botnet_cc | 2026-09-13 | 50% |
| ip:port | 156[.]254[.]20[.]46:5996 | botnet_cc | 2026-09-13 | 50% |
| ip:port | 156[.]254[.]20[.]46:5998 | botnet_cc | 2026-09-13 | 50% |
| ip:port | 83[.]229[.]123[.]249:8443 | botnet_cc | 2026-09-13 | 100% |
| ip:port | 83[.]229[.]123[.]249:54321 | botnet_cc | 2026-09-13 | 100% |
| ip:port | 49[.]233[.]202[.]218:7878 | botnet_cc | 2026-09-13 | 75% |
| ip:port | 5[.]104[.]86[.]108:8089 | botnet_cc | 2026-09-13 | 75% |
| ip:port | 38[.]76[.]190[.]209:8787 | botnet_cc | 2026-09-13 | 100% |
| ip:port | 38[.]76[.]190[.]209:7500 | botnet_cc | 2026-09-13 | 100% |
| ip:port | 38[.]76[.]190[.]209:8080 | botnet_cc | 2026-09-13 | 100% |
| ip:port | 38[.]76[.]190[.]209:22 | botnet_cc | 2026-09-13 | 100% |
| ip:port | 38[.]76[.]190[.]209:80 | botnet_cc | 2026-09-12 | 100% |
| ip:port | 38[.]76[.]190[.]209:7000 | botnet_cc | 2026-09-12 | 100% |
| ip:port | 38[.]76[.]190[.]209:443 | botnet_cc | 2026-09-12 | 100% |
| ip:port | 59[.]110[.]153[.]133:22 | botnet_cc | 2026-09-12 | 100% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - Cobalt Strike
let malicious_ips = dynamic(["43.166.202.32", "59.110.153.133", "83.229.123.249", "189.24.79.40", "38.76.190.209", "43.155.246.58", "5.104.86.108", "156.254.20.46", "49.233.202.218"]);
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(["43.166.202.32", "59.110.153.133", "83.229.123.249", "189.24.79.40", "38.76.190.209", "43.155.246.58", "5.104.86.108", "156.254.20.46", "49.233.202.218"]);
DeviceNetworkEvents
| where RemoteIP in (malicious_ips)
| project Timestamp, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName, ActionType
| order by Timestamp desc
| Sentinel Table | Notes |
|---|---|
CommonSecurityLog | Ensure this data connector is enabled |
DeviceNetworkEvents | Ensure this data connector is enabled |
10.20.0.0/24) or where the user account belongs to the SecurityOps or PenTest AD group.env=dev, env=staging, or env=qa in your CMDB or asset inventory, and exclude processes running under user accounts ending in _dev or _qa.beacon.dll hashes) for internal scripting or automation tasks.
C:\Apps\LegacyCRM\bin\beacon.dll) or exclude specific process names if they are confirmed to be part of a signed, internal application package.svc_backup, svc_sync) or processes initiated