Threat Overview
Sophos Counter Threat Unit documented real GOLD OGRE / Aur0ra ransomware intrusions using Cursor-assisted agents to accelerate Active Directory discovery, Kerberoasting, NTLM relay/coercion, credential extraction, privilege escalation and lateral movement. Operators supplied compromised credentials, VPN or SOCKS access and objectives. Human operators still controlled initial access and ransomware impact. Sophos observed Cobalt Strike, SharpShares and S3-compatible exfiltration. This is not a vulnerability in Cursor.
References
Sophos CTU — AI used in Aur0ra ransomware testing and execution (October 29, 2026)
Impacted Systems
Microsoft Active Directory, Windows endpoints and servers, file shares and backup infrastructure in on-premises or hybrid deployments. Separately reported Aur0ra binaries also target Linux/ESXi. No specific vulnerable software version or CVE: initial access requires valid compromised VPN or equivalent access and reachability to internal assets. No single port is a confirmed prerequisite.
Why this matters
The campaign demonstrates that AI agents can compress the time from credential theft to privileged access. MSSPs should prioritize observed identity, endpoint and data-transfer behaviors rather than assume use of an AI IDE is itself malicious.
Exploitation Status
Sophos confirms real intrusions, Cobalt Strike infrastructure, credential-led lateral movement and data staging. Sophos observed AI-assisted domain-management access in a subset of cases; three victims later appeared on the Aur0ra leak site. Sophos assesses with high confidence that GOLD OGRE used AI-assisted EDR evasion testing and operational tooling. This is confirmed malicious activity, not an unproven vulnerability exploit.
What this hunt looks for
AD discovery utilities, Kerberoasting, privileged remote logons, SOCKS tunnels, suspicious S3-compatible transfers, historical Aur0ra infrastructure and generic ransomware backup-inhibition follow-up.
Required logs
Microsoft Sentinel DeviceProcessEvents, DeviceNetworkEvents, and SecurityEvent (4769, 4624, 4672). Hunts only work where the relevant telemetry is ingested into Sentinel.
01 — Aur0ra-linked AD and credential attack utilities
DeviceProcessEvents
| where TimeGenerated >= ago(14d)
| extend Cmd=tolower(strcat(FileName, " ", ProcessCommandLine))
| where Cmd contains "sharpshares" or Cmd contains "bloodhound" or Cmd contains "sharphound" or Cmd contains "certipy" or Cmd contains "getuserspns" or Cmd contains "secretsdump" or Cmd contains "petitpotam" or Cmd contains "coerceplus" or Cmd contains "netexec" or Cmd contains "invoke-kerberoast"
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, ReportId
| order by TimeGenerated desc
02 — Kerberoasting commands and ticket harvesting
DeviceProcessEvents
| where TimeGenerated >= ago(14d)
| extend Cmd=tolower(ProcessCommandLine)
| where Cmd contains "kerberoast" or Cmd contains "getuserspns" or (Cmd contains "rubeus" and Cmd contains " asktgs") or (Cmd contains "setspn" and Cmd contains " -t ")
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessFileName, ReportId
| order by TimeGenerated desc
03 — Unusual Windows Kerberos service-ticket volume
SecurityEvent
| where TimeGenerated >= ago(14d) and EventID == 4769
| extend E=tostring(EventData), ClientIP=tostring(column_ifexists("IpAddress", "")), User=tostring(column_ifexists("Account", ""))
| extend ClientIP=iff(isempty(ClientIP),extract(@"IpAddress[^>]*>([^<]+)",1,E),ClientIP)
| summarize TicketRequests=count(), SampleAccounts=make_set(User,10), SampleEvents=make_set(substring(E,0,250),3) by Computer, ClientIP, bin(TimeGenerated,15m)
| where TicketRequests >= 60
| order by TicketRequests desc
04 — S3-compatible transfer commands and VeeamTransport abuse
DeviceProcessEvents
| where TimeGenerated >= ago(14d)
| extend Cmd=tolower(ProcessCommandLine)
| where (Cmd contains "veeamtransport" and (Cmd contains "--endpoint-url" or Cmd contains "s3://")) or (Cmd contains "--endpoint-url" and Cmd contains " s3://")
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessFileName, ReportId
| order by TimeGenerated desc
05 — Published Aur0ra infrastructure connections
let IOCs=dynamic(["152.236.4.14","152.236.3.8","172.86.89.124","144.172.101.72","206.223.230.107","45.59.113.63","172.86.113.245"]);
DeviceNetworkEvents
| where TimeGenerated >= ago(30d)
| where RemoteIP in (IOCs)
| project TimeGenerated, DeviceName, RemoteIP, RemotePort, RemoteUrl, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessAccountName, ActionType
| order by TimeGenerated desc
06 — SOCKS tunneling and internal discovery tools
DeviceProcessEvents
| where TimeGenerated >= ago(14d)
| extend Cmd=tolower(strcat(FileName," ",ProcessCommandLine))
| where (Cmd contains "chisel" and (Cmd contains "socks" or Cmd contains "client")) or (Cmd contains "plink" and Cmd contains " -d ") or Cmd contains "nxc smb" or Cmd contains "netexec smb" or (Cmd contains "nmap" and (Cmd contains " -pn" or Cmd contains " -sn"))
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessFileName, ReportId
| order by TimeGenerated desc
07 — Windows privileged remote logons after credential access
let Priv=SecurityEvent
| where TimeGenerated >= ago(14d) and EventID == 4672
| project Computer, PrivTime=TimeGenerated, PrivAccount=tostring(column_ifexists("Account", ""));
SecurityEvent
| where TimeGenerated >= ago(14d) and EventID == 4624
| extend LogonTypeValue=tostring(column_ifexists("LogonType", "")), LogonAccount=tostring(column_ifexists("Account", ""))
| where LogonTypeValue in ("3","10")
| join kind=inner Priv on Computer
| where PrivTime between (TimeGenerated .. TimeGenerated+2m)
| project TimeGenerated, Computer, LogonAccount, LogonTypeValue, PrivAccount, PrivTime
| order by TimeGenerated desc
08 — Backup destruction or recovery inhibition follow-up
DeviceProcessEvents
| where TimeGenerated >= ago(14d)
| extend Cmd=tolower(ProcessCommandLine), Proc=tolower(FileName)
| where (Proc == "vssadmin.exe" and Cmd contains "delete" and Cmd contains "shadows") or (Proc == "wbadmin.exe" and Cmd contains "delete") or (Proc == "bcdedit.exe" and (Cmd contains "recoveryenabled" or Cmd contains "bootstatuspolicy")) or (Proc == "wevtutil.exe" and Cmd contains " cl ")
| project TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessFileName, ReportId
| order by TimeGenerated desc
Detection Notes
Highest signal: reported tool usage, suspicious VeeamTransport –endpoint-url transfers and published C2 addresses. Kerberos counts and administrative tools can be legitimate. The backup-inhibition query is a generic ransomware follow-up, not a behavior confirmed in every Aur0ra intrusion. IP ownership can change. Missing Defender process/network events or Windows security auditing prevents visibility; no customer Sentinel workspace was queried and no customer finding is asserted.