hacktool_sharp_successor_execution
Description
SharpSuccessor is a .NET-based post-exploitation tool designed to weaponize the BadSuccessor attack discovered by Yuval Gordon (@YuG0rd) from Akamai. It allows a low-privileged user with 'CreateChild' permissions over any Organizational Unit (OU) in an Active Directory domain to escalate privileges to Domain Administrator. This detection rule identifies execution patterns or behavioral indicators linked to SharpSuccessor activity, which may signal privilege escalation attempts in Active Directory environments.
Query · yara_l
events:
(
$sharp_successor_execution.metadata.event_type = "PROCESS_LAUNCH"
and (
$sharp_successor_execution.src.process.file.full_path = "SharpSuccessor.exe" nocase or
$sharp_successor_execution.target.asset.software.description = "SharpSuccessor" nocase or
$sharp_successor_execution.target.process.file.full_path = /\\SharpSuccessor\.exe/ nocase or
$sharp_successor_execution.principal.process.file.full_path = /\\SharpSuccessor\.exe/ nocase or
$sharp_successor_execution.target.process.command_line = /SharpSuccessor/ nocase
)
)
or
( // Microsoft-Windows-Security-Auditing -- EventCode: 4673
$sharp_successor_execution.metadata.event_type = "SERVICE_UNSPECIFIED"
and (
$sharp_successor_execution.metadata.description = "A privileged service was called" and
$sharp_successor_execution.target.process.command_line = /SharpSuccessor/ nocase
)
)
// Capture the hostname where the event occurred
$sharp_successor_execution.principal.hostname = $hostname
match:
$hostname over 10m
outcome:
$risk_score = 65
$event_count = count_distinct($sharp_successor_execution.metadata.id)
$principal_process_pid = array_distinct($sharp_successor_execution.principal.process.pid)
$principal_process_command_line = array_distinct($sharp_successor_execution.principal.process.command_line)
$principal_process_file_sha256 = array_distinct($sharp_successor_execution.principal.process.file.sha256)
$principal_process_file_full_path = array_distinct($sharp_successor_execution.principal.process.file.full_path)
$principal_process_product_specific_process_id = array_distinct($sharp_successor_execution.principal.process.product_specific_process_id)
$principal_process_parent_process_product_specific_process_id = array_distinct($sharp_successor_execution.principal.process.parent_process.product_specific_process_id)
$target_process_pid = array_distinct($sharp_successor_execution.target.process.pid)
$target_process_command_line = array_distinct($sharp_successor_execution.target.process.command_line)
$target_process_file_sha256 = array_distinct($sharp_successor_execution.target.process.file.sha256)
$target_process_file_full_path = array_distinct($sharp_successor_execution.target.process.file.full_path)
$target_process_product_specific_process_id = array_distinct($sharp_successor_execution.target.process.product_specific_process_id)
$principal_user_userid = array_distinct($sharp_successor_execution.principal.user.userid)
condition:
$sharp_successor_execution