Suspicious Powershell Script

A machine learning job detected a PowerShell script with unusual data characteristics, such as obfuscation, that may be a characteristic of malicious PowerShell script text blocks.

Elastic rule (View on GitHub)

  1[metadata]
  2creation_date = "2020/03/25"
  3integration = ["endpoint", "windows"]
  4maturity = "production"
  5updated_date = "2025/01/15"
  6min_stack_version = "8.14.0"
  7min_stack_comments = "Breaking change at 8.14.0 for the Windows Integration."
  8
  9[rule]
 10anomaly_threshold = 50
 11author = ["Elastic"]
 12description = """
 13A machine learning job detected a PowerShell script with unusual data characteristics, such as obfuscation, that may be
 14a characteristic of malicious PowerShell script text blocks.
 15"""
 16false_positives = [
 17    """
 18    Certain kinds of security testing may trigger this alert. PowerShell scripts that use high levels of obfuscation or
 19    have unusual script block payloads may trigger this alert.
 20    """,
 21]
 22from = "now-45m"
 23interval = "15m"
 24license = "Elastic License v2"
 25machine_learning_job_id = ["v3_windows_anomalous_script"]
 26name = "Suspicious Powershell Script"
 27setup = """## Setup
 28
 29This rule requires the installation of associated Machine Learning jobs, as well as data coming in from one of the following integrations:
 30- Elastic Defend
 31- Windows
 32
 33### Anomaly Detection Setup
 34
 35Once the rule is enabled, the associated Machine Learning job will start automatically. You can view the Machine Learning job linked under the "Definition" panel of the detection rule. If the job does not start due to an error, the issue must be resolved for the job to commence successfully. For more details on setting up anomaly detection jobs, refer to the [helper guide](https://www.elastic.co/guide/en/kibana/current/xpack-ml-anomalies.html).
 36
 37### Elastic Defend Integration Setup
 38Elastic Defend is integrated into the Elastic Agent using Fleet. Upon configuration, the integration allows the Elastic Agent to monitor events on your host and send data to the Elastic Security app.
 39
 40#### Prerequisite Requirements:
 41- Fleet is required for Elastic Defend.
 42- To configure Fleet Server refer to the [documentation](https://www.elastic.co/guide/en/fleet/current/fleet-server.html).
 43
 44#### The following steps should be executed in order to add the Elastic Defend integration to your system:
 45- Go to the Kibana home page and click "Add integrations".
 46- In the query bar, search for "Elastic Defend" and select the integration to see more details about it.
 47- Click "Add Elastic Defend".
 48- Configure the integration name and optionally add a description.
 49- Select the type of environment you want to protect, either "Traditional Endpoints" or "Cloud Workloads".
 50- Select a configuration preset. Each preset comes with different default settings for Elastic Agent, you can further customize these later by configuring the Elastic Defend integration policy. [Helper guide](https://www.elastic.co/guide/en/security/current/configure-endpoint-integration-policy.html).
 51- We suggest selecting "Complete EDR (Endpoint Detection and Response)" as a configuration setting, that provides "All events; all preventions"
 52- Enter a name for the agent policy in "New agent policy name". If other agent policies already exist, you can click the "Existing hosts" tab and select an existing policy instead.
 53For more details on Elastic Agent configuration settings, refer to the [helper guide](https://www.elastic.co/guide/en/fleet/current/agent-policy.html).
 54- Click "Save and Continue".
 55- To complete the integration, select "Add Elastic Agent to your hosts" and continue to the next section to install the Elastic Agent on your hosts.
 56For more details on Elastic Defend refer to the [helper guide](https://www.elastic.co/guide/en/security/current/install-endpoint.html).
 57
 58### Windows Integration Setup
 59The Windows integration allows you to monitor the Windows OS, services, applications, and more.
 60
 61#### The following steps should be executed in order to add the Elastic Agent System integration "windows" to your system:
 62- Go to the Kibana home page and click “Add integrations”.
 63- In the query bar, search for “Windows” and select the integration to see more details about it.
 64- Click “Add Windows”.
 65- Configure the integration name and optionally add a description.
 66- Review optional and advanced settings accordingly.
 67- Add the newly installed “windows” to an existing or a new agent policy, and deploy the agent on your system from which windows log files are desirable.
 68- Click “Save and Continue”.
 69- For more details on the integration refer to the [helper guide](https://docs.elastic.co/integrations/windows).
 70"""
 71references = [
 72    "https://www.elastic.co/guide/en/security/current/prebuilt-ml-jobs.html",
 73    "https://www.elastic.co/security-labs/detecting-living-off-the-land-attacks-with-new-elastic-integration",
 74]
 75risk_score = 21
 76rule_id = "1781d055-5c66-4adf-9d60-fc0fa58337b6"
 77severity = "low"
 78tags = [
 79    "Domain: Endpoint",
 80    "OS: Windows",
 81    "Use Case: Threat Detection",
 82    "Rule Type: ML",
 83    "Rule Type: Machine Learning",
 84    "Tactic: Execution",
 85    "Resources: Investigation Guide",
 86]
 87type = "machine_learning"
 88note = """## Triage and analysis
 89
 90> **Disclaimer**:
 91> This investigation guide was created using generative AI technology and has been reviewed to improve its accuracy and relevance. While every effort has been made to ensure its quality, we recommend validating the content and adapting it to suit your specific environment and operational needs.
 92
 93### Investigating Suspicious Powershell Script
 94
 95PowerShell is a powerful scripting language used for task automation and configuration management in Windows environments. Adversaries often exploit its capabilities to execute malicious scripts, leveraging obfuscation to evade detection. The 'Suspicious Powershell Script' detection rule employs machine learning to identify unusual script characteristics, such as obfuscation, indicating potential threats. By analyzing these anomalies, the rule aids in early threat detection and mitigation.
 96
 97### Possible investigation steps
 98
 99- Review the alert details to identify the specific PowerShell script or command that triggered the detection, focusing on any obfuscated elements.
100- Examine the source endpoint and user account associated with the alert to determine if the activity aligns with expected behavior or if it appears suspicious.
101- Check the execution history on the affected endpoint for any other unusual or unauthorized PowerShell commands or scripts executed around the same time.
102- Investigate the network activity from the source endpoint to identify any connections to known malicious IP addresses or domains.
103- Correlate the alert with other security events or logs, such as antivirus alerts or firewall logs, to gather additional context and assess the potential impact.
104- Consult threat intelligence sources to determine if the detected script or its components are associated with known malware or attack campaigns.
105
106### False positive analysis
107
108- Legitimate administrative scripts may trigger the rule due to obfuscation techniques used for efficiency or security. Review the script's purpose and source to determine its legitimacy.
109- Automated deployment tools often use PowerShell scripts that appear obfuscated. Identify and whitelist these tools to prevent unnecessary alerts.
110- Security software updates might use obfuscated scripts for protection against tampering. Verify the update source and add exceptions for known trusted vendors.
111- Custom scripts developed in-house for specific tasks may use obfuscation for intellectual property protection. Document and exclude these scripts after confirming their safety.
112- Regularly review and update the list of exceptions to ensure that only verified non-threatening scripts are excluded, maintaining the effectiveness of the detection rule.
113
114### Response and remediation
115
116- Isolate the affected system from the network to prevent further spread of the potential threat and to contain any malicious activity.
117- Terminate any suspicious PowerShell processes identified on the affected system to halt the execution of potentially harmful scripts.
118- Conduct a thorough review of the PowerShell script logs and execution history on the affected system to identify any unauthorized or malicious commands executed.
119- Restore the affected system from a known good backup if any malicious activity is confirmed, ensuring that the backup is free from compromise.
120- Update and patch the affected system to the latest security standards to close any vulnerabilities that may have been exploited.
121- Implement enhanced monitoring for PowerShell activity across the network, focusing on detecting obfuscation and unusual script characteristics.
122- Escalate the incident to the security operations center (SOC) or incident response team for further investigation and to determine if additional systems are affected."""
123[[rule.threat]]
124framework = "MITRE ATT&CK"
125[[rule.threat.technique]]
126id = "T1059"
127name = "Command and Scripting Interpreter"
128reference = "https://attack.mitre.org/techniques/T1059/"
129[[rule.threat.technique.subtechnique]]
130id = "T1059.001"
131name = "PowerShell"
132reference = "https://attack.mitre.org/techniques/T1059/001/"
133
134
135
136[rule.threat.tactic]
137id = "TA0002"
138name = "Execution"
139reference = "https://attack.mitre.org/tactics/TA0002/"

Triage and analysis

Disclaimer: This investigation guide was created using generative AI technology and has been reviewed to improve its accuracy and relevance. While every effort has been made to ensure its quality, we recommend validating the content and adapting it to suit your specific environment and operational needs.

Investigating Suspicious Powershell Script

PowerShell is a powerful scripting language used for task automation and configuration management in Windows environments. Adversaries often exploit its capabilities to execute malicious scripts, leveraging obfuscation to evade detection. The 'Suspicious Powershell Script' detection rule employs machine learning to identify unusual script characteristics, such as obfuscation, indicating potential threats. By analyzing these anomalies, the rule aids in early threat detection and mitigation.

Possible investigation steps

  • Review the alert details to identify the specific PowerShell script or command that triggered the detection, focusing on any obfuscated elements.
  • Examine the source endpoint and user account associated with the alert to determine if the activity aligns with expected behavior or if it appears suspicious.
  • Check the execution history on the affected endpoint for any other unusual or unauthorized PowerShell commands or scripts executed around the same time.
  • Investigate the network activity from the source endpoint to identify any connections to known malicious IP addresses or domains.
  • Correlate the alert with other security events or logs, such as antivirus alerts or firewall logs, to gather additional context and assess the potential impact.
  • Consult threat intelligence sources to determine if the detected script or its components are associated with known malware or attack campaigns.

False positive analysis

  • Legitimate administrative scripts may trigger the rule due to obfuscation techniques used for efficiency or security. Review the script's purpose and source to determine its legitimacy.
  • Automated deployment tools often use PowerShell scripts that appear obfuscated. Identify and whitelist these tools to prevent unnecessary alerts.
  • Security software updates might use obfuscated scripts for protection against tampering. Verify the update source and add exceptions for known trusted vendors.
  • Custom scripts developed in-house for specific tasks may use obfuscation for intellectual property protection. Document and exclude these scripts after confirming their safety.
  • Regularly review and update the list of exceptions to ensure that only verified non-threatening scripts are excluded, maintaining the effectiveness of the detection rule.

Response and remediation

  • Isolate the affected system from the network to prevent further spread of the potential threat and to contain any malicious activity.
  • Terminate any suspicious PowerShell processes identified on the affected system to halt the execution of potentially harmful scripts.
  • Conduct a thorough review of the PowerShell script logs and execution history on the affected system to identify any unauthorized or malicious commands executed.
  • Restore the affected system from a known good backup if any malicious activity is confirmed, ensuring that the backup is free from compromise.
  • Update and patch the affected system to the latest security standards to close any vulnerabilities that may have been exploited.
  • Implement enhanced monitoring for PowerShell activity across the network, focusing on detecting obfuscation and unusual script characteristics.
  • Escalate the incident to the security operations center (SOC) or incident response team for further investigation and to determine if additional systems are affected.

References

Related rules

to-top