From ea30e047cfc987009821815dabb4ada6fc324359 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 15 Jun 2021 17:59:59 +0000 Subject: [PATCH] Added detection testing service results inUnloading AMSI via Reflection --- .../unloading_amsi_via_reflection.yml | 43 ++++++++++++------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/detections/endpoint/unloading_amsi_via_reflection.yml b/detections/endpoint/unloading_amsi_via_reflection.yml index 2c7f09a16f..521e54b285 100644 --- a/detections/endpoint/unloading_amsi_via_reflection.yml +++ b/detections/endpoint/unloading_amsi_via_reflection.yml @@ -5,27 +5,39 @@ date: '2021-06-09' author: Michael Haag, Splunk type: batch datamodel: [] -description: 'The following analytic utilizes PowerShell Script Block Logging (EventCode=4104) to identify suspicious PowerShell execution. Script Block Logging captures the command sent to PowerShell, the full command to be executed. Upon enabling, logs will output to Windows event logs. Dependent upon volume, enable no critical endpoints or all. \ +description: 'The following analytic utilizes PowerShell Script Block Logging (EventCode=4104) + to identify suspicious PowerShell execution. Script Block Logging captures the command + sent to PowerShell, the full command to be executed. Upon enabling, logs will output + to Windows event logs. Dependent upon volume, enable no critical endpoints or all. + \ - This analytic identifies the behavior of AMSI being tampered with. Implemented natively in many frameworks, the command will look similar to `SEtValuE($Null,(New-OBJEct COLlECtionS.GenerIC.HAshSEt[StrINg]))}$ReF=[ReF].AsSeMbLY.GeTTyPe("System.Management.Automation.Amsi"+"Utils")` taken from Powershell-Empire. \ + This analytic identifies the behavior of AMSI being tampered with. Implemented natively + in many frameworks, the command will look similar to `SEtValuE($Null,(New-OBJEct + COLlECtionS.GenerIC.HAshSEt[StrINg]))}$ReF=[ReF].AsSeMbLY.GeTTyPe("System.Management.Automation.Amsi"+"Utils")` + taken from Powershell-Empire. \ - During triage, review parallel processes using an EDR product or 4688 events. It will be important to understand the timeline of events around this activity. Review the entire logged PowerShell script block.' -search: '`powershell` EventCode=4104 Message=*system.management.automation.amsi* - | stats count min(_time) as firstTime max(_time) as lastTime by OpCode ComputerName User EventCode Message - | `security_content_ctime(firstTime)` - | `security_content_ctime(lastTime)` + During triage, review parallel processes using an EDR product or 4688 events. It + will be important to understand the timeline of events around this activity. Review + the entire logged PowerShell script block.' +search: '`powershell` EventCode=4104 Message=*system.management.automation.amsi* | + stats count min(_time) as firstTime max(_time) as lastTime by OpCode ComputerName + User EventCode Message | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `unloading_amsi_via_reflection_filter`' -how_to_implement: To successfully implement this analytic, you will need to enable PowerShell Script Block Logging on some or all endpoints. Additional setup here https://docs.splunk.com/Documentation/UBA/5.0.4.1/GetDataIn/AddPowerShell#Configure_module_logging_for_PowerShell. -known_false_positives: Potential for some third party applications to disable AMSI upon invocation. Filter as needed. +how_to_implement: To successfully implement this analytic, you will need to enable + PowerShell Script Block Logging on some or all endpoints. Additional setup here + https://docs.splunk.com/Documentation/UBA/5.0.4.1/GetDataIn/AddPowerShell#Configure_module_logging_for_PowerShell. +known_false_positives: Potential for some third party applications to disable AMSI + upon invocation. Filter as needed. references: - - https://docs.splunk.com/Documentation/UBA/5.0.4.1/GetDataIn/AddPowerShell#Configure_module_logging_for_PowerShell. - - https://blog.palantir.com/tampering-with-windows-event-tracing-background-offense-and-defense-4be7ac62ac63 - - https://static1.squarespace.com/static/552092d5e4b0661088167e5c/t/59c1814829f18782e24f1fe2/1505853768977/Windows+PowerShell+Logging+Cheat+Sheet+ver+Sept+2017+v2.1.pdf - - https://www.crowdstrike.com/blog/investigating-powershell-command-and-script-logging/ +- https://docs.splunk.com/Documentation/UBA/5.0.4.1/GetDataIn/AddPowerShell#Configure_module_logging_for_PowerShell. +- https://blog.palantir.com/tampering-with-windows-event-tracing-background-offense-and-defense-4be7ac62ac63 +- https://static1.squarespace.com/static/552092d5e4b0661088167e5c/t/59c1814829f18782e24f1fe2/1505853768977/Windows+PowerShell+Logging+Cheat+Sheet+ver+Sept+2017+v2.1.pdf +- https://www.crowdstrike.com/blog/investigating-powershell-command-and-script-logging/ tags: analytic_story: - Malicious PowerShell - dataset: [] + dataset: + - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1059.001/powershell_script_block_logging/windows-powershell.log kill_chain_phases: - Exploitation mitre_attack_id: @@ -41,4 +53,5 @@ tags: - ComputerName - User - EventCode - security_domain: endpoint \ No newline at end of file + security_domain: endpoint + automated_detection_testing: passed