This detection rule identifies adversary activity involving the execution of Cobalt Strike tools by monitoring three specific indicators of compromise known to facilitate command and control operations. A proactive hunt is essential within Azure Sentinel because Cobalt Strike is a prevalent post-exploitation framework used by advanced threat actors to establish persistent access, making early identification critical for mitigating lateral movement risks.
Malware Family: Cobalt Strike Total IOCs: 3 IOC Types: ip:port
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 43[.]139[.]87[.]203:22 | botnet_cc | 2026-08-08 | 100% |
| ip:port | 47[.]120[.]20[.]86:22 | botnet_cc | 2026-08-08 | 100% |
| ip:port | 47[.]120[.]20[.]86:8000 | botnet_cc | 2026-08-08 | 100% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - Cobalt Strike
let malicious_ips = dynamic(["47.120.20.86", "43.139.87.203"]);
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(["47.120.20.86", "43.139.87.203"]);
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 |
Scenario: The enterprise endpoint protection suite (e.g., CrowdStrike Falcon or Microsoft Defender) performs an automatic signature update that includes the beacon.exe binary hash associated with Cobalt Strike. Since the detection logic hunts for specific IOCs present in the environment, this legitimate update triggers a match on the host where the agent resides.
C:\Program Files\CrowdStrike\FalconSensor\csfalcon.exe (or equivalent agent path) and exclude any detection events originating from the specific file hash of the legitimate endpoint agent’s update service.Scenario: A scheduled PowerShell job runs nightly to audit network configurations, executing a script that invokes beacon.exe as part of a legacy inventory tool used by the IT Operations team. This scheduled task launches the executable with standard parameters, matching the Cobalt Strike IOC signature.
\Microsoft\Windows\Inventory\NightlyAudit) and filter out events where the parent process is svchost.exe or powershell.exe running under the context of a known service account like DOMAIN\IT-Service-Account.Scenario: The Security Operations Center (SOC) deploys a new threat hunting package using the Elastic Stack or Splunk, which includes a test run of the Cobalt Strike beacon binary within an isolated “Staging” environment to validate detection logic. This deployment generates alerts in the production monitoring window before being moved to production.
STAGING-ENV OU (Organizational Unit) or IP subnet range (e.g., 10.50.x.x) for a 48-hour period following the deployment of new hunting packages, ensuring test