asset_type: Endpoint confidence: medium creation_date: '2017-04-25' data_metadata: data_models: - Endpoint data_source: - Endpoint Intel providing_technologies: - Carbon Black Response - CrowdStrike Falcon - Sysmon - Tanium - Ziften description: This search looks for PowerShell processes launched with arguments that have characters indicative of obfuscation on the command-line. detect: splunk: correlation_rule: notable: nes_fields: dest, user, process_name, process rule_description: The system $dest$ executed a PowerShell process that has evidence of obfuscation on the command-line rule_title: PowerShell process with an obfuscation techniques detected on $dest$ risk: risk_object: dest risk_object_type: - system risk_score: 60 schedule: cron_schedule: 0 * * * * earliest_time: -70m@m latest_time: -10m@m search: '| tstats `security_content_summariesonly` count values(Processes.process) as process values(Processes.parent_process) as parent_process min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name=powershell.exe by Processes.user Processes.process_name Processes.parent_process_name Processes.dest Processes.process | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`| eval num_obfuscation = (mvcount(split(process, "`"))-1) + (mvcount(split(process, "^"))-1) | `malicious_powershell_process_obfuscation_techniques_output_filter` | search num_obfuscation > 0' suppress: suppress_fields: dest,process_name,process suppress_period: 14400s eli5: This search looks for PowerShell processes that are passing command-line arguments with unusual characters (backticks and carets) that are PowerShell specific escape characters. Attackers use this obfuscation technique since it does not affect the functionality of PowerShell and it will bypass standard security controls that look for straight up malicious strings and commands. The search counts the occurrence of these obfuscation characters and lists out destination IPs running these PowerShell commands. entities: - dest how_to_implement: You must be ingesting data that records process activity from your hosts to populate the Endpoint data model in the Processes node. You must also be ingesting logs with both the process name and command line from your endpoints. The command-line arguments are mapped to the "process" field in the Endpoint data model. id: cde75cf6-3c7a-4dd6-af01-27cdb4511fd4 investigations: - id: bc91a8cf-35e7-4bb2-8140-e756cc06fd76 name: Get Authentication Logs For Endpoint type: splunk - id: fdcfb369-1725-4c24-824a-22972d7f0d55 name: Get Risk Modifiers For User type: splunk - id: bc91a8cf-35e7-4bb2-8140-e756cc06fd71 name: Get Process Info type: splunk - id: 3d6c3213-5fff-4a1e-b57d-b24c262171e7 name: Get Notable History type: splunk - id: f3fb4d1b-5f33-4b01-b541-c7af9534c242 name: Get Notable Info type: splunk - id: fdcfb369-1725-4c24-824a-22972d7f0d65 name: Get Risk Modifiers For Endpoint type: splunk - id: bc91a8cf-35e7-4bb2-8140-e756cc06fd74 name: Get User Information from Identity Table type: splunk known_false_positives: These characters might be legitimately on the command-line, but it is not common. maintainers: - company: Splunk email: jbrewer@splunk.com name: Jason Brewer - company: Splunk email: davidd@splunk.com name: David Dorsey mappings: cis20: - CIS 3 - CIS 7 - CIS 8 kill_chain_phases: - Command and Control - Actions on Objectives mitre_attack: - Execution - PowerShell - Scripting nist: - PR.PT - DE.CM - PR.IP modification_date: '2020-01-17' name: Malicious PowerShell Process With Obfuscation Techniques original_authors: - company: Splunk email: davidd@splunk.com name: David Dorsey references: [] security_domain: endpoint spec_version: 2 type: splunk version: '2.0'