Branch was auto-updated.

This commit is contained in:
github-actions[bot]
2021-04-22 20:59:48 +00:00
committed by GitHub
41 changed files with 1140 additions and 10 deletions
@@ -0,0 +1,47 @@
name: AWS IAM AccessDenied Discovery Events
id: 3e1f1568-9633-11eb-a69c-acde48001122
version: 1
date: '2021-04-05'
author: Michael Haag, Splunk
type: batch
datamodel: []
description: The following detection identifies excessive AccessDenied events within
an hour timeframe. It is possible that an access key to AWS may have been stolen
and is being misused to perform discovery events. In these instances, the access
is not available with the key stolen therefore these events will be generated.
search: '`cloudtrail` (errorCode = "AccessDenied") user_type=IAMUser (userAgent!=*.amazonaws.com)
| bucket _time span=1h | stats count as failures min(_time) as firstTime max(_time)
as lastTime, dc(eventName) as methods, dc(eventSource) as sources values(userIdentity.arn)
by src_ip, userIdentity.arn, _time | where failures >= 5 and methods >= 1 and sources
>= 1 | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
| `aws_iam_accessdenied_discovery_events_filter`'
how_to_implement: The Splunk AWS Add-on and Splunk App for AWS is required to utilize
this data. The search requires AWS Cloudtrail logs.
known_false_positives: It is possible to start this detection will need to be tuned
by source IP or user. In addition, change the count values to an upper threshold
to restrict false positives.
references:
- https://aws.amazon.com/premiumsupport/knowledge-center/troubleshoot-iam-permission-errors/
tags:
analytic_story:
- Suspicious Cloud User Activities
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1580/aws_iam_accessdenied_discovery_events/aws_iam_accessdenied_discovery_events.json
kill_chain_phases:
- Reconnaissance
mitre_attack_id:
- T1580
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
- Splunk Security Analytics for AWS
required_fields:
- _time
- eventName
- eventSource
- userAgent
- errorCode
- userIdentity.type
security_domain: access
automated_detection_testing: passed
@@ -0,0 +1,49 @@
name: AWS IAM Assume Role Policy Brute Force
id: f19e09b0-9308-11eb-b7ec-acde48001122
version: 1
date: '2021-04-01'
author: Michael Haag, Splunk
type: batch
datamodel: []
description: The following detection identifies any malformed policy document exceptions
with a status of `failure`. A malformed policy document exception occurs in instances where roles are attempted to be assumed, or brute forced. In a brute force attempt, using a tool like CloudSploit or Pacu, an attempt will look like `arn:aws:iam::111111111111:role/aws-service-role/rds.amazonaws.com/AWSServiceRoleForRDS`. Meaning, when an adversary is attempting to identify
a role name, multiple failures will occur. This detection focuses on the errors of a remote attempt that is failing.
search: '`cloudtrail` (errorCode=MalformedPolicyDocumentException) status=failure
(userAgent!=*.amazonaws.com) | stats count min(_time) as firstTime max(_time) as
lastTime values(requestParameters.policyName) as policy_name by src eventName eventSource
aws_account_id errorCode requestParameters.policyDocument userAgent eventID awsRegion
userIdentity.principalId user_arn | where count >= 2 | `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)` | `aws_iam_assume_role_policy_brute_force_filter`'
how_to_implement: The Splunk AWS Add-on and Splunk App for AWS is required to utilize
this data. The search requires AWS Cloudtrail logs. Set the `where count` greater
than a value to identify suspicious activity in your environment.
known_false_positives: This detection will require tuning to provide high fidelity
detection capabilties. Tune based on src addresses (corporate offices, VPN terminations)
or by groups of users.
references:
- https://www.praetorian.com/blog/aws-iam-assume-role-vulnerabilities
- https://rhinosecuritylabs.com/aws/assume-worst-aws-assume-role-enumeration/
- https://www.elastic.co/guide/en/security/current/aws-iam-brute-force-of-assume-role-policy.html
tags:
analytic_story:
- AWS IAM Privilege Escalation
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1580/aws_iam_assume_role_policy_brute_force/aws_iam_assume_role_policy_brute_force.json
kill_chain_phases:
- Reconnaissance
mitre_attack_id:
- T1580
- T1110
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
- Splunk Security Analytics for AWS
required_fields:
- _time
- eventName
- userAgent
- errorCode
- requestParameters.policyName
security_domain: access
automated_detection_testing: passed
@@ -0,0 +1,49 @@
name: AWS IAM Delete Policy
id: ec3a9362-92fe-11eb-99d0-acde48001122
version: 1
date: '2021-04-01'
author: Michael Haag, Splunk
type: batch
datamodel: []
description: The following detection identifes when a policy is deleted on AWS. This
does not identify whether successful or failed, but the error messages tell a story
of suspicious attempts. There is a specific process to follow when deleting a policy.
First, detach the policy from all users, groups, and roles that the policy is attached
to, using DetachUserPolicy , DetachGroupPolicy , or DetachRolePolicy.
search: '`cloudtrail` eventName=DeletePolicy (userAgent!=*.amazonaws.com) | stats
count min(_time) as firstTime max(_time) as lastTime values(requestParameters.policyArn)
as policyArn by src eventName eventSource aws_account_id errorCode errorMessage
userAgent eventID awsRegion userIdentity.principalId userIdentity.arn | `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)` | `aws_iam_delete_policy_filter`'
how_to_implement: The Splunk AWS Add-on and Splunk App for AWS is required to utilize
this data. The search requires AWS Cloudtrail logs.
known_false_positives: This detection will require tuning to provide high fidelity
detection capabilties. Tune based on src addresses (corporate offices, VPN terminations)
or by groups of users. Not every user with AWS access should have permission to
delete policies (least privilege). In addition, this may be saved seperately and
tuned for failed or success attempts only.
references:
- https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeletePolicy.html
- https://docs.aws.amazon.com/cli/latest/reference/iam/delete-policy.html
tags:
analytic_story:
- AWS IAM Privilege Escalation
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1098/aws_iam_delete_policy/aws_iam_delete_policy.json
kill_chain_phases:
- Actions on Objectives
mitre_attack_id:
- T1098
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
- Splunk Security Analytics for AWS
required_fields:
- _time
- eventName
- userAgent
- errorCode
- requestParameters.policyArn
security_domain: access
automated_detection_testing: passed
@@ -0,0 +1,49 @@
name: AWS IAM Failure Group Deletion
id: 723b861a-92eb-11eb-93b8-acde48001122
version: 1
date: '2021-04-01'
author: Michael Haag, Splunk
type: batch
datamodel: []
description: This detection identifies failure attempts to delete groups. We want to identify
when a group is attempting to be deleted, but either access is denied, there is
a conflict or there is no group. This is indicative of administrators performing
an action, but also could be suspicious behavior occurring. Review parallel IAM
events - recently added users, new groups and so forth.
search: '`cloudtrail` eventSource=iam.amazonaws.com eventName=DeleteGroup errorCode
IN (NoSuchEntityException,DeleteConflictException, AccessDenied) (userAgent!=*.amazonaws.com)
| stats count min(_time) as firstTime max(_time) as lastTime values(requestParameters.groupName)
as group_name by src eventName eventSource aws_account_id errorCode errorMessage
userAgent eventID awsRegion userIdentity.principalId user_arn | `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)` | `aws_iam_failure_group_deletion_filter`'
how_to_implement: The Splunk AWS Add-on and Splunk App for AWS is required to utilize
this data. The search requires AWS Cloudtrail logs.
known_false_positives: This detection will require tuning to provide high fidelity
detection capabilties. Tune based on src addresses (corporate offices, VPN terminations)
or by groups of users. Not every user with AWS access should have permission to
delete groups (least privilege).
references:
- https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/delete-group.html
- https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroup.html
tags:
analytic_story:
- AWS IAM Privilege Escalation
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1098/aws_iam_failure_group_deletion/aws_iam_failure_group_deletion.json
kill_chain_phases:
- Actions on Objectives
mitre_attack_id:
- T1098
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
- Splunk Security Analytics for AWS
required_fields:
- _time
- eventName
- userAgent
- errorCode
- requestParameters.groupName
security_domain: identity
automated_detection_testing: passed
@@ -0,0 +1,48 @@
name: AWS IAM Successful Group Deletion
id: e776d06c-9267-11eb-819b-acde48001122
version: 1
date: '2021-03-31'
author: Michael Haag, Splunk
type: batch
datamodel: []
description: The following query uses IAM events to track the success of a group being
deleted on AWS. This is typically not indicative of malicious behavior, but a precurser
to additional events thay may unfold. Review parallel IAM events - recently added
users, new groups and so forth. Inversely, review failed attempts in a similar manner.
search: '`cloudtrail` eventSource=iam.amazonaws.com eventName=DeleteGroup errorCode=success
(userAgent!=*.amazonaws.com) | stats count min(_time) as firstTime max(_time) as
lastTime values(requestParameters.groupName) by src eventName eventSource errorCode
user_agent awsRegion userIdentity.principalId user_arn | `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)` | `aws_iam_successful_group_deletion_filter`'
how_to_implement: The Splunk AWS Add-on and Splunk App for AWS is required to utilize
this data. The search requires AWS Cloudtrail logs.
known_false_positives: This detection will require tuning to provide high fidelity
detection capabilties. Tune based on src addresses (corporate offices, VPN terminations)
or by groups of users. Not every user with AWS access should have permission to
delete groups (least privilege).
references:
- https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/delete-group.html
- https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteGroup.html
tags:
analytic_story:
- AWS IAM Privilege Escalation
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1098/aws_iam_successful_group_deletion/aws_iam_successful_group_deletion.json
kill_chain_phases:
- Actions on Objectives
mitre_attack_id:
- T1069.003
- T1098
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
- Splunk Security Analytics for AWS
required_fields:
- _time
- eventName
- userAgent
- errorCode
- requestParameters.groupName
security_domain: identity
automated_detection_testing: passed
@@ -0,0 +1,54 @@
name: DLLHost with no Command Line Arguments with Network
id: f1c07594-a141-11eb-8407-acde48001122
version: 1
date: '2021-04-19'
author: Michael Haag, Splunk
type: batch
datamodel:
- Endpoint
description: The following analytic identifies DLLHost.exe with no command line arguments
with a network connection. It is unusual for DLLHost.exe to execute with no command
line arguments present. This particular behavior is common with malicious software,
including Cobalt Strike. During investigation, triage any network connections and
parallel processes. Identify any suspicious module loads related to credential dumping
or file writes. DLLHost.exe is natively found in C:\Windows\system32 and C:\Windows\syswow64.
search: '| tstats `security_content_summariesonly` count FROM datamodel=Endpoint.Processes
where Processes.process_name=dllhost.exe by _time span=1h Processes.process_id
Processes.process_name Processes.dest Processes.process_path Processes.process Processes.parent_process_name
| `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
| regex process="(dllhost\.exe.{0,4}$)" | join process_id [| tstats `security_content_summariesonly`
count FROM datamodel=Endpoint.Ports where Ports.dest_port !="0" by Ports.process_id
Ports.dest Ports.dest_port | `drop_dm_object_name(Ports)` | rename dest as connection_to_CNC]
| table _time dest parent_process_name process_name process_path process process_id
connection_to_CNC dest_port | `dllhost_with_no_command_line_arguments_with_network_filter`'
how_to_implement: To successfully implement this search you need to be ingesting information
on process that include the name of the process responsible for the changes from
your endpoints into the `Endpoint` datamodel in the `Processes` and `port` node.
known_false_positives: Although unlikely, some legitimate third party applications
may use a moved copy of dllhost, triggering a false positive.
references:
- https://raw.githubusercontent.com/threatexpress/malleable-c2/c3385e481159a759f79b8acfe11acf240893b830/jquery-c2.4.2.profile
- https://blog.cobaltstrike.com/2021/02/09/learn-pipe-fitting-for-all-of-your-offense-projects/
tags:
analytic_story:
- Cobalt Strike
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1055/cobalt_strike/windows-sysmon_dllhost.log
kill_chain_phases:
- Exploitation
mitre_attack_id:
- T1055
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- EventID
- process_name
- process_id
- parent_process_name
- dest_port
- process_path
security_domain: endpoint
automated_detection_testing: passed
@@ -0,0 +1,52 @@
name: Excel Spawning PowerShell
id: 42d40a22-9be3-11eb-8f08-acde48001122
version: 1
date: '2021-04-12'
author: Michael Haag, Splunk
type: batch
datamodel:
- Endpoint
description: The following detection identifies Microsoft Excel spawning PowerShell.
Typically, this is not common behavior and not default with Excel.exe. Excel.exe
will generally be found in the following path `C:\Program Files\Microsoft Office\root\Office16`
(version will vary). PowerShell spawning from Excel.exe is common for a spearphishing
attachment and is actively used. Albeit, the command executed will most likely be
encoded and captured via another detection. During triage, review parallel processes
and identify any files that may have been written.
search: '| tstats `security_content_summariesonly` count values(Processes.process)
min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes
where Processes.parent_process_name="excel.exe" Processes.process_name IN ("powershell.exe",
"pwsh.exe") by Processes.parent_process Processes.process_name Processes.user Processes.dest
| `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)`|`security_content_ctime(lastTime)`
| `excel_spawning_powershell_filter`'
how_to_implement: To successfully implement this search you need to be ingesting information
on process that include the name of the process responsible for the changes from
your endpoints into the `Endpoint` datamodel in the `Processes` node.
known_false_positives: False positives should be limited, but if any are present,
filter as needed.
references:
- https://redcanary.com/threat-detection-report/techniques/powershell/
- https://attack.mitre.org/techniques/T1566/001/
tags:
analytic_story:
- Spearphishing Attachments
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1566.001/macro/windows-sysmon.log
kill_chain_phases:
- Exploitation
mitre_attack_id:
- T1003.002
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- process_name
- process_id
- parent_process_name
- dest
- user
- parent_process_id
security_domain: endpoint
automated_detection_testing: passed
@@ -0,0 +1,56 @@
name: Excel Spawning Windows Script Host
id: 57fe880a-9be3-11eb-9bf3-acde48001122
version: 1
date: '2021-04-12'
author: Michael Haag, Splunk
type: batch
datamodel:
- Endpoint
description: The following detection identifies Microsoft Excel spawning Windows Script
Host - `cscript.exe` or `wscript.exe`. Typically, this is not common behavior and
not default with Excel.exe. Excel.exe will generally be found in the following path
`C:\Program Files\Microsoft Office\root\Office16` (version will vary). `cscript.exe`
or `wscript.exe` default location is `c:\windows\system32\` or c:windows\syswow64`.
`cscript.exe` or `wscript.exe` spawning from Excel.exe is common for a spearphishing
attachment and is actively used. Albeit, the command-line executed will most likely
be obfuscated and captured via another detection. During triage, review parallel
processes and identify any files that may have been written. Review the reputation
of the remote destination and block accordingly.
search: '| tstats `security_content_summariesonly` count values(Processes.process)
min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes
where Processes.parent_process_name="excel.exe" Processes.process_name IN ("cscript.exe",
"wscript.exe") by Processes.parent_process Processes.process_name Processes.user
Processes.dest | `drop_dm_object_name("Processes")` | `security_content_ctime(firstTime)`|`security_content_ctime(lastTime)`
| `excel_spawning_windows_script_host_filter`'
how_to_implement: To successfully implement this search you need to be ingesting information
on process that include the name of the process responsible for the changes from
your endpoints into the `Endpoint` datamodel in the `Processes` node.
known_false_positives: False positives should be limited, but if any are present,
filter as needed. In some instances, `cscript.exe` is used for legitimate business
practices.
references:
- https://app.any.run/tasks/8ecfbc29-03d0-421c-a5bf-3905d29192a2/
- https://attack.mitre.org/techniques/T1566/001/
tags:
analytic_story:
- Spearphishing Attachments
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1566.001/macro/windows-sysmon.log
kill_chain_phases:
- Exploitation
mitre_attack_id:
- T1003.002
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- process_name
- process_id
- parent_process_name
- dest
- user
- parent_process_id
security_domain: endpoint
automated_detection_testing: passed
@@ -0,0 +1,55 @@
name: GPUpdate with no Command Line Arguments with Network
id: 2c853856-a140-11eb-a5b5-acde48001122
version: 1
date: '2021-04-19'
author: Michael Haag, Splunk
type: batch
datamodel:
- Endpoint
description: The following analytic identifies gpupdate.exe with no command line arguments
and with a network connection. It is unusual for gpupdate.exe to execute with no
command line arguments present. This particular behavior is common with malicious
software, including Cobalt Strike. During investigation, triage any network connections
and parallel processes. Identify any suspicious module loads related to credential
dumping or file writes. gpupdate.exe is natively found in C:\Windows\system32 and
C:\Windows\syswow64.
search: '| tstats `security_content_summariesonly` count FROM datamodel=Endpoint.Processes
where Processes.process_name=gpupdate.exe by _time span=1h Processes.process_id
Processes.process_name Processes.dest Processes.process_path Processes.process Processes.parent_process_name
| `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
| regex process="(gpupdate\.exe.{0,4}$)" | join process_id [| tstats `security_content_summariesonly`
count FROM datamodel=Endpoint.Ports where Ports.dest_port !="0" by Ports.process_id
Ports.dest Ports.dest_port| `drop_dm_object_name(Ports)` | rename dest as connection_to_CNC]
| table _time dest parent_process_name process_name process_path process process_id connection_to_CNC
dest_port | `gpupdate_with_no_command_line_arguments_with_network_filter`'
how_to_implement: To successfully implement this search you need to be ingesting information
on process that include the name of the process responsible for the changes from
your endpoints into the `Endpoint` datamodel in the `Processes` node.
known_false_positives: Limited false positives may be present in small environments.
Tuning may be required based on parent process.
references:
- https://raw.githubusercontent.com/xx0hcd/Malleable-C2-Profiles/0ef8cf4556e26f6d4190c56ba697c2159faa5822/crimeware/trick_ryuk.profile
- https://blog.cobaltstrike.com/2021/02/09/learn-pipe-fitting-for-all-of-your-offense-projects/
tags:
analytic_story:
- Cobalt Strike
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1055/cobalt_strike/windows-sysmon.log
kill_chain_phases:
- Exploitation
mitre_attack_id:
- T1055
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- EventID
- process_name
- process_id
- parent_process_name
- dest_port
- process_path
security_domain: endpoint
automated_detection_testing: passed
@@ -28,7 +28,7 @@ references:
- https://any.run/report/47561b4e949041eff0a0f4693c59c81726591779fe21183ae9185b5eb6a69847/aba3722a-b373-4dae-8273-8730fb40cdbe
tags:
analytic_story:
- Phishing Payloads
- Spearphishing Attachments
kill_chain_phases:
- Exploitation
mitre_attack_id:
@@ -34,7 +34,7 @@ references:
- https://redcanary.com/threat-detection-report/techniques/scheduled-task-job/
tags:
analytic_story:
- Phishing Payloads
- Spearphishing Attachments
kill_chain_phases:
- Exploitation
mitre_attack_id:
@@ -27,7 +27,7 @@ references:
- https://www.joesandbox.com/analysis/386500/0/html
tags:
analytic_story:
- Phishing Payloads
- Spearphishing Attachments
kill_chain_phases:
- Exploitation
mitre_attack_id:
@@ -26,7 +26,7 @@ references:
- https://app.any.run/tasks/92d7ef61-bfd7-4c92-bc15-322172b4ebec/#
tags:
analytic_story:
- Phishing Payloads
- Spearphishing Attachments
kill_chain_phases:
- Exploitation
mitre_attack_id:
@@ -0,0 +1,57 @@
name: Office Product Spawning Rundll32 with no DLL
id: c661f6be-a38c-11eb-be57-acde48001122
version: 1
date: '2021-04-22'
author: Michael Haag, Splunk
type: batch
datamodel:
- Endpoint
description: The following detection identifies the latest behavior utilized by IcedID
malware family. This detection identifies any Windows Office Product spawning `rundll32.exe`
without a `.dll` file extension. In malicious instances, the command-line of `rundll32.exe`
will look like `rundll32 ..\oepddl.igk2,DllRegisterServer`. In addition, Threat
Research has released a detection identifying the use of `DllRegisterServer` on
the command-line of `rundll32.exe`. In this instance, we narrow our detection down
to the Office suite as a parent process. During triage, review all file modifications.
Capture and analyze the `DLL` that was dropped to disk. The Office Product will
have reached out to a remote destination, capture and block the IPs or domain. Review
additional parallel processes for further activity.
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
as lastTime from datamodel=Endpoint.Processes where Processes.parent_process_name
IN ("winword.exe","excel.exe","powerpnt.exe","mspub.exe","visio.exe") Processes.process_name=rundll32.exe
(Processes.process!=*.dll*) by Processes.dest Processes.user Processes.parent_process
Processes.process_name Processes.process Processes.process_id Processes.parent_process_id
| `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`
| `office_product_spawning_rundll32_with_no_dll_filter`'
how_to_implement: To successfully implement this search you need to be ingesting information
on process that include the name of the process responsible for the changes from
your endpoints into the `Endpoint` datamodel in the `Processes` node.
known_false_positives: False positives should be limited, but if any are present,
filter as needed.
references:
- https://www.joesandbox.com/analysis/395471/0/html
- https://app.any.run/tasks/cef4b8ba-023c-4b3b-b2ef-6486a44f6ed9/
- https://any.run/malware-trends/icedid
tags:
analytic_story:
- Spearphishing Attachments
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1566.001/macro/windows-sysmon_icedid.log
kill_chain_phases:
- Exploitation
mitre_attack_id:
- T1566.001
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- process_name
- process_id
- parent_process_name
- dest
- user
- parent_process_id
security_domain: endpoint
automated_detection_testing: passed
@@ -30,7 +30,7 @@ references:
- https://www.trendmicro.com/en_us/research/17/e/rising-trend-attackers-using-lnk-files-download-malware.html
tags:
analytic_story:
- Phishing Payloads
- Spearphishing Attachments
asset_type: Endpoint
automated_detection_testing: passed
cis20:
@@ -0,0 +1,58 @@
name: Rundll32 with no Command Line Arguments with Network
id: 35307032-a12d-11eb-835f-acde48001122
version: 1
date: '2021-04-19'
author: Michael Haag, Splunk
type: batch
datamodel:
- Endpoint
description: The following analytic identifies rundll32.exe with no command line arguments
and performing a network connection. It is unusual for rundll32.exe to execute with
no command line arguments present. This particular behavior is common with malicious
software, including Cobalt Strike. During investigation, triage any network connections
and parallel processes. Identify any suspicious module loads related to credential
dumping or file writes. Rundll32.exe is natively found in C:\Windows\system32 and
C:\Windows\syswow64.
search: '| tstats `security_content_summariesonly` count FROM datamodel=Endpoint.Processes
where Processes.process_name=rundll32.exe by _time span=1h Processes.process_id
Processes.process_name Processes.dest Processes.process_path Processes.process Processes.parent_process_name
| `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
| regex process="(rundll32\.exe.{0,4}$)" | join process_id [| tstats `security_content_summariesonly`
count FROM datamodel=Endpoint.Ports where Ports.dest_port !="0" by Ports.process_id
Ports.dest Ports.dest_port| `drop_dm_object_name(Ports)` | rename dest as connection_to_CNC]
| table _time dest parent_process_name process_name process_path process process_id connection_to_CNC
dest_port | `rundll32_with_no_command_line_arguments_with_network_filter`'
how_to_implement: To successfully implement this search you need to be ingesting information
on process that include the name of the process responsible for the changes from
your endpoints into the `Endpoint` datamodel in the `Processes` and `port` node.
known_false_positives: Although unlikely, some legitimate applications may use a moved
copy of rundll32, triggering a false positive.
references:
- https://attack.mitre.org/techniques/T1218/011/
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1218.011/T1218.011.md
- https://lolbas-project.github.io/lolbas/Binaries/Rundll32
- https://bohops.com/2018/02/26/leveraging-inf-sct-fetch-execute-techniques-for-bypass-evasion-persistence/
tags:
analytic_story:
- Suspicious Rundll32 Activity
- Cobalt Strike
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1055/cobalt_strike/windows-sysmon.log
kill_chain_phases:
- Exploitation
mitre_attack_id:
- T1218.011
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- EventID
- process_name
- process_id
- parent_process_name
- dest_port
- process_path
security_domain: endpoint
automated_detection_testing: passed
@@ -0,0 +1,53 @@
name: SearchProtocolHost with no Command Line with Network
id: b690df8c-a145-11eb-a38b-acde48001122
version: 1
date: '2021-04-19'
author: Michael Haag, Splunk
type: batch
datamodel:
- Endpoint
description: The following analytic identifies searchprotocolhost.exe with no command
line arguments and with a network connection. It is unusual for searchprotocolhost.exe
to execute with no command line arguments present. This particular behavior is common
with malicious software, including Cobalt Strike. During investigation, identify
any network connections and parallel processes. Identify any suspicious module loads
related to credential dumping or file writes. searchprotocolhost.exe is natively
found in C:\Windows\system32 and C:\Windows\syswow64.
search: '| tstats `security_content_summariesonly` count FROM datamodel=Endpoint.Processes
where Processes.process_name=searchprotocolhost.exe by _time span=1h Processes.process_id
Processes.process_name Processes.dest Processes.process_path Processes.process Processes.parent_process_name
| `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
| regex process="(searchprotocolhost\.exe.{0,4}$)" | join process_id [| tstats
`security_content_summariesonly` count FROM datamodel=Endpoint.Ports where Ports.dest_port
!="0" by Ports.process_id Ports.dest Ports.dest_port | `drop_dm_object_name(Ports)`
| rename dest as connection_to_CNC] | table _time dest parent_process_name process_name
process_path process process_id connection_to_CNC dest_port | `searchprotocolhost_with_no_command_line_with_network_filter`'
how_to_implement: To successfully implement this search you need to be ingesting information
on process that include the name of the process responsible for the changes from
your endpoints into the `Endpoint` datamodel in the `Processes` and `ports` node.
known_false_positives: Limited false positives may be present in small environments.
Tuning may be required based on parent process.
references:
- https://github.com/fireeye/red_team_tool_countermeasures/blob/master/rules/PGF/supplemental/hxioc/SUSPICIOUS%20EXECUTION%20OF%20SEARCHPROTOCOLHOST%20(METHODOLOGY).ioc
tags:
analytic_story:
- Cobalt Strike
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1055/cobalt_strike/windows-sysmon_searchprotocolhost.log
kill_chain_phases:
- Exploitation
mitre_attack_id:
- T1055
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- process_name
- process_id
- parent_process_name
- dest_port
- process_path
security_domain: endpoint
automated_detection_testing: passed
@@ -0,0 +1,66 @@
name: WinEvent Scheduled Task Created to Spawn Shell
id: 203ef0ea-9bd8-11eb-8201-acde48001122
version: 1
date: '2021-04-12'
author: Michael Haag, Splunk
type: batch
datamodel: []
description: 'The following query utilizes Windows Security EventCode 4698, `A scheduled
task was created`, to identify suspicious tasks registered on Windows either via
schtasks.exe OR TaskService with a command to be executed with a native Windows
shell (PowerShell, Cmd, Wscript, Cscript).\
The search will return the first time and last time the task was registered, as
well as the `Command` to be executed, `Task Name`, `Author`, `Enabled`, and whether
it is `Hidden` or not.\
schtasks.exe is natively found in `C:\Windows\system32` and `C:\Windows\syswow64`.\
The following DLL(s) are loaded when schtasks.exe or TaskService is launched -`taskschd.dll`.
If found loaded by another process, it is possible a scheduled task is being registered
within that process context in memory.\
Upon triage, identify the task scheduled source. Was it schtasks.exe or via TaskService?
Review the job created and the Command to be executed. Capture any artifacts on
disk and review. Identify any parallel processes within the same timeframe to identify
source.'
search: '`wineventlog_security` EventCode=4698 | xmlkv Message | search Command IN
("*powershell.exe*", "*wscript.exe*", "*cscript.exe*", "*cmd.exe*", "*sh.exe*",
"*ksh.exe*", "*zsh.exe*", "*bash.exe*", "*scrcons.exe*", "*pwsh.exe*") | stats count
min(_time) as firstTime max(_time) as lastTime by dest, Task_Name, Command, Author,
Enabled, Hidden | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
| `winevent_scheduled_task_created_to_spawn_shell_filter`'
how_to_implement: To successfully implement this search, you need to be ingesting
Windows Security Event Logs with 4698 EventCode enabled. The Windows TA is also
required.
known_false_positives: False positives are possible if legitimate applications are
allowed to register tasks that call a shell to be spawned. Filter as needed based
on command-line or processes that are used legitimately.
references:
- https://research.checkpoint.com/2021/irans-apt34-returns-with-an-updated-arsenal/
- https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventID=4698
- https://redcanary.com/threat-detection-report/techniques/scheduled-task-job/
- https://docs.microsoft.com/en-us/windows/win32/taskschd/time-trigger-example--scripting-?redirectedfrom=MSDN
tags:
analytic_story:
- Windows Persistence Techniques
- Ransomware
- Ryuk Ransomware
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1053.005/atomic_red_team/windows-security.log
kill_chain_phases:
- Privilege Escalation
mitre_attack_id:
- T1053.005
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- dest
- Task_Name
- Description
- Command
security_domain: endpoint
automated_detection_testing: passed
@@ -0,0 +1,66 @@
name: WinEvent Scheduled Task Created Within Public Path
id: 5d9c6eee-988c-11eb-8253-acde48001122
version: 1
date: '2021-04-08'
author: Michael Haag, Splunk
type: batch
datamodel: []
description: 'The following query utilizes Windows Security EventCode 4698, `A scheduled
task was created`, to identify suspicious tasks registered on Windows either via
schtasks.exe OR TaskService with a command to be executed from a user writeable
file path.\
The search will return the first time and last time the task was registered, as
well as the `Command` to be executed, `Task Name`, `Author`, `Enabled`, and whether
it is `Hidden` or not.\
schtasks.exe is natively found in `C:\Windows\system32` and `C:\Windows\syswow64`.\
The following DLL(s) are loaded when schtasks.exe or TaskService is launched -`taskschd.dll`.
If found loaded by another process, it is possible a scheduled task is being registered
within that process context in memory.\
Upon triage, identify the task scheduled source. Was it schtasks.exe or was it via
TaskService. Review the job created and the Command to be executed. Capture any
artifacts on disk and review. Identify any parallel processes within the same timeframe
to identify source.'
search: '`wineventlog_security` EventCode=4698 | xmlkv Message | search Command IN
("*\\users\\public\\*", "*\\programdata\\*", "*\\temp\\*", "*\\Windows\\Tasks\\*",
"*\\appdata\\*") | stats count min(_time) as firstTime max(_time) as lastTime by
dest, Task_Name, Command, Author, Enabled, Hidden | `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)` | `winevent_scheduled_task_created_within_public_path_filter`'
how_to_implement: To successfully implement this search, you need to be ingesting
Windows Security Event Logs with 4698 EventCode enabled. The Windows TA is also
required.
known_false_positives: False positives are possible if legitimate applications are
allowed to register tasks in public paths. Filter as needed based on paths that
are used legitimately.
references:
- https://research.checkpoint.com/2021/irans-apt34-returns-with-an-updated-arsenal/
- https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventID=4698
- https://redcanary.com/threat-detection-report/techniques/scheduled-task-job/
- https://docs.microsoft.com/en-us/windows/win32/taskschd/time-trigger-example--scripting-?redirectedfrom=MSDN
- https://app.any.run/tasks/e26f1b2e-befa-483b-91d2-e18636e2faf3/
tags:
analytic_story:
- Windows Persistence Techniques
- Ransomware
- Ryuk Ransomware
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1053.005/taskschedule/windows-security.log
kill_chain_phases:
- Privilege Escalation
mitre_attack_id:
- T1053.005
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- dest
- Task_Name
- Description
- Command
security_domain: endpoint
automated_detection_testing: passed
@@ -0,0 +1,52 @@
name: Winword Spawning Cmd
id: 6fcbaedc-a37b-11eb-956b-acde48001122
version: 1
date: '2021-04-22'
author: Michael Haag, Splunk
type: batch
datamodel:
- Endpoint
description: The following detection identifies Microsoft Word spawning `cmd.exe`.
Typically, this is not common behavior and not default with winword.exe. Winword.exe
will generally be found in the following path `C:\Program Files\Microsoft Office\root\Office16`
(version will vary). Cmd.exe spawning from winword.exe is common for a spearphishing
attachment and is actively used. Albeit, the command-line will indicate what is
being executed. During triage, review parallel processes and identify any files
that may have been written. It is possible that COM is utilized to trampoline the
child process to `explorer.exe` or `wmiprvse.exe`.
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
as lastTime from datamodel=Endpoint.Processes where Processes.parent_process_name=winword.exe
Processes.process_name=cmd.exe by Processes.dest Processes.user Processes.parent_process
Processes.process_name Processes.process Processes.process_id Processes.parent_process_id
| `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
| `winword_spawning_cmd_filter`'
how_to_implement: To successfully implement this search you need to be ingesting information
on process that include the name of the process responsible for the changes from
your endpoints into the `Endpoint` datamodel in the `Processes` node.
known_false_positives: False positives should be limited, but if any are present,
filter as needed.
references:
- https://app.any.run/tasks/73af0064-a785-4c0a-ab0d-cde593fe16ef/
tags:
analytic_story:
- Spearphishing Attachments
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1566.001/macro/windows-sysmon.log
kill_chain_phases:
- Exploitation
mitre_attack_id:
- T1566.001
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- process_name
- process_id
- parent_process_name
- dest
- user
- parent_process_id
security_domain: endpoint
automated_detection_testing: passed
@@ -0,0 +1,54 @@
name: Winword Spawning PowerShell
id: b2c950b8-9be2-11eb-8658-acde48001122
version: 1
date: '2021-04-12'
author: Michael Haag, Splunk
type: batch
datamodel:
- Endpoint
description: The following detection identifies Microsoft Word spawning PowerShell.
Typically, this is not common behavior and not default with winword.exe. Winword.exe
will generally be found in the following path `C:\Program Files\Microsoft Office\root\Office16`
(version will vary). PowerShell spawning from winword.exe is common for a spearphishing
attachment and is actively used. Albeit, the command executed will most likely be
encoded and captured via another detection. During triage, review parallel processes
and identify any files that may have been written.
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
as lastTime from datamodel=Endpoint.Processes where Processes.parent_process_name="winword.exe"
Processes.process_name IN ("powershell.exe", "pwsh.exe") by Processes.dest Processes.user
Processes.parent_process Processes.process_name Processes.process Processes.process_id
Processes.parent_process_id | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`|
`security_content_ctime(lastTime)` | `winword_spawning_powershell_filter`'
how_to_implement: To successfully implement this search you need to be ingesting information
on process that include the name of the process responsible for the changes from
your endpoints into the `Endpoint` datamodel in the `Processes` node.
known_false_positives: False positives should be limited, but if any are present,
filter as needed.
references:
- https://redcanary.com/threat-detection-report/techniques/powershell/
- https://attack.mitre.org/techniques/T1566/001/
- https://app.any.run/tasks/b79fa381-f35c-4b3e-8d02-507e7ee7342f/
- https://app.any.run/tasks/181ac90b-0898-4631-8701-b778a30610ad/
tags:
analytic_story:
- Spearphishing Attachments
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1566.001/macro/windows-sysmon.log
kill_chain_phases:
- Exploitation
mitre_attack_id:
- T1566.001
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- process_name
- process_id
- parent_process_name
- dest
- user
- parent_process_id
security_domain: endpoint
automated_detection_testing: passed
@@ -0,0 +1,54 @@
name: Winword Spawning Windows Script Host
id: 637e1b5c-9be1-11eb-9c32-acde48001122
version: 1
date: '2021-04-12'
author: Michael Haag, Splunk
type: batch
datamodel:
- Endpoint
description: The following detection identifies Microsoft Winword.exe spawning Windows
Script Host - `cscript.exe` or `wscript.exe`. Typically, this is not common behavior
and not default with Winword.exe. Winword.exe will generally be found in the following
path `C:\Program Files\Microsoft Office\root\Office16` (version will vary). `cscript.exe`
or `wscript.exe` default location is `c:\windows\system32\` or c:windows\syswow64\`.
`cscript.exe` or `wscript.exe` spawning from Winword.exe is common for a spearphishing
attachment and is actively used. Albeit, the command-line executed will most likely
be obfuscated and captured via another detection. During triage, review parallel
processes and identify any files that may have been written. Review the reputation
of the remote destination and block accordingly.
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
as lastTime from datamodel=Endpoint.Processes where Processes.parent_process_name="winword.exe"
Processes.process_name IN ("cscript.exe", "wscript.exe") by Processes.dest Processes.user
Processes.parent_process Processes.process_name Processes.process Processes.process_id
Processes.parent_process_id | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)` | `winword_spawning_windows_script_host_filter`'
how_to_implement: To successfully implement this search you need to be ingesting information
on process that include the name of the process responsible for the changes from
your endpoints into the `Endpoint` datamodel in the `Processes` node.
known_false_positives: There will be limited false positives and it will be different
for every environment. Tune by child process or command-line as needed.
references:
- https://attack.mitre.org/techniques/T1566/001/
tags:
analytic_story:
- Spearphishing Attachment
dataset:
- https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1566.001/macro/windows-sysmon_wsh.log
kill_chain_phases:
- Exploitation
mitre_attack_id:
- T1566.001
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- process_name
- process_id
- parent_process_name
- dest
- user
- parent_process_id
security_domain: endpoint
automated_detection_testing: passed
@@ -1,4 +1,4 @@
name: Detect Oulook exe writing a zip file
name: Detect Outlook exe writing a zip file
id: a51bfe1a-94f0-4822-b1e4-16ae10145893
version: 3
date: '2020-07-21'
@@ -22,7 +22,7 @@ search: '| tstats `security_content_summariesonly` min(_time) as firstTime max(
| rename process_id as malicious_id| fields malicious_id outlook_id dest file_path
file_name file_hash count file_id] | table firstTime lastTime user malicious_id
outlook_id process_name parent_process_name file_name file_path | where file_name
!= "" | `detect_oulook_exe_writing_a__zip_file_filter` '
!= "" | `detect_outlook_exe_writing_a_zip_file_filter` '
how_to_implement: You must be ingesting data that records filesystem and process activity
from your hosts to populate the Endpoint data model. This is typically populated
via endpoint detection-and-response product, such as Carbon Black, or endpoint data
@@ -32,7 +32,7 @@ known_false_positives: It is not uncommon for outlook to write legitimate zip fi
references: []
tags:
analytic_story:
- Phishing Payloads
- Spearphishing Attachments
asset_type: Endpoint
cis20:
- CIS 7
@@ -1,4 +1,4 @@
name: Phishing Payloads
name: Spearphishing Attachments
id: 57226b40-94f3-4ce5-b101-a75f67759c27
version: 1
date: '2019-04-29'
@@ -46,7 +46,7 @@ narrative: 'Despite its simplicity, phishing remains the most pervasive and dang
references:
- https://www.fireeye.com/blog/threat-research/2019/04/spear-phishing-campaign-targets-ukraine-government.html
tags:
analytic_story: Phishing Payloads
analytic_story: Spearphishing Attachments
category:
- Adversary Tactics
product:
@@ -0,0 +1,13 @@
name: AWS IAM AccessDenied Discovery Events Unit Test
tests:
- name: AWS IAM AccessDenied Discovery Events
file: cloud/aws_iam_accessdenied_discovery_events.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: aws_iam_accessdenied_discovery_events.json
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1580/aws_iam_accessdenied_discovery_events/aws_iam_accessdenied_discovery_events.json
sourcetype: aws:cloudtrail
source: aws_cloudtrail
update_timestamp: True
@@ -0,0 +1,13 @@
name: AWS IAM Assume Role Policy Brute Force Unit Test
tests:
- name: AWS IAM Assume Role Policy Brute Force
file: cloud/aws_iam_assume_role_policy_brute_force.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: aws_iam_assume_role_policy_brute_force.json
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1580/aws_iam_assume_role_policy_brute_force/aws_iam_assume_role_policy_brute_force.json
sourcetype: aws:cloudtrail
source: aws_cloudtrail
update_timestamp: True
@@ -0,0 +1,13 @@
name: AWS IAM Delete Policy Unit Test
tests:
- name: AWS IAM Delete Policy
file: cloud/aws_iam_delete_policy.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: aws_iam_delete_policy.json
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1098/aws_iam_delete_policy/aws_iam_delete_policy.json
sourcetype: aws:cloudtrail
source: aws_cloudtrail
update_timestamp: True
@@ -0,0 +1,13 @@
name: AWS IAM Failure Group Deletion Unit Test
tests:
- name: AWS IAM Failure Group Deletion
file: cloud/aws_iam_failure_group_deletion.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: aws_iam_delete_policy.json
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1098/aws_iam_failure_group_deletion/aws_iam_failure_group_deletion.json
sourcetype: aws:cloudtrail
source: aws_cloudtrail
update_timestamp: True
@@ -0,0 +1,13 @@
name: AWS IAM Successful Group Deletion Unit Test
tests:
- name: AWS IAM Successful Group Deletion
file: cloud/aws_iam_successful_group_deletion.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: aws_iam_successful_group_deletion.json
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1098/aws_iam_successful_group_deletion/aws_iam_successful_group_deletion.json
sourcetype: aws:cloudtrail
source: aws_cloudtrail
update_timestamp: True
@@ -0,0 +1,12 @@
name: DLLHost with no Command Line Arguments with Network Unit Test
tests:
- name: DLLHost with no Command Line Arguments with Network
file: endpoint/dllhost_with_no_command_line_arguments_with_network.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: windows-sysmon.log
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1055/cobalt_strike/windows-sysmon_dllhost.log
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
sourcetype: xmlwineventlog
@@ -0,0 +1,12 @@
name: Excel Spawning PowerShell Unit Test
tests:
- name: Excel Spawning PowerShell
file: endpoint/excel_spawning_powershell.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: windows-sysmon.log
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1566.001/macro/windows-sysmon.log
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
sourcetype: xmlwineventlog
@@ -0,0 +1,12 @@
name: Excel Spawning Windows Script Host Unit Test
tests:
- name: Excel Spawning Windows Script Host
file: endpoint/excel_spawning_windows_script_host.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: windows-sysmon.log
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1566.001/macro/windows-sysmon.log
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
sourcetype: xmlwineventlog
@@ -0,0 +1,12 @@
name: GPUpdate with no Command Line Arguments with Network Unit Test
tests:
- name: GPUpdate with no Command Line Arguments with Network
file: endpoint/gpupdate_with_no_command_line_arguments_with_network.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: windows-sysmon.log
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1055/cobalt_strike/windows-sysmon.log
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
sourcetype: xmlwineventlog
@@ -0,0 +1,12 @@
name: Office Product Spawning Rundll32 with no DLL Unit Test
tests:
- name: Office Product Spawning Rundll32 with no DLL
file: endpoint/office_product_spawning_rundll32_with_no_dll.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: windows-sysmon_icedid.log
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1566.001/macro/windows-sysmon_icedid.log
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
sourcetype: xmlwineventlog
@@ -0,0 +1,12 @@
name: Rundll32 with no Command Line Arguments with Network Unit Test
tests:
- name: Rundll32 with no Command Line Arguments with Network
file: endpoint/rundll32_with_no_command_line_arguments_with_network.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: windows-sysmon.log
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1055/cobalt_strike/windows-sysmon.log
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
sourcetype: xmlwineventlog
@@ -0,0 +1,12 @@
name: SearchProtocolHost with no Command Line with Network Unit Test
tests:
- name: SearchProtocolHost with no Command Line with Network
file: endpoint/searchprotocolhost_with_no_command_line_with_network.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: windows-sysmon.log
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1055/cobalt_strike/windows-sysmon_searchprotocolhost.log
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
sourcetype: xmlwineventlog
@@ -0,0 +1,13 @@
name: WinEvent Scheduled Task Created to Spawn Shell Unit Test
tests:
- name: WinEvent Scheduled Task Created to Spawn Shell
file: endpoint/winevent_scheduled_task_created_to_spawn_shell.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: windows-sysmon.log
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1053.005/atomic_red_team/windows-security.log
source: WinEventLog:Security
sourcetype: WinEventLog
update_timestamp: True
@@ -0,0 +1,13 @@
name: WinEvent Scheduled Task Created Within Public Path Unit Test
tests:
- name: WinEvent Scheduled Task Created Within Public Path
file: endpoint/winevent_scheduled_task_created_within_public_path.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: windows-sysmon.log
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1053.005/taskschedule/windows-security.log
source: WinEventLog:Security
sourcetype: WinEventLog
update_timestamp: True
@@ -0,0 +1,12 @@
name: Winword Spawning Cmd Unit Test
tests:
- name: Winword Spawning Cmd
file: endpoint/winword_spawning_cmd.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: windows-sysmon.log
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1566.001/macro/windows-sysmon.log
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
sourcetype: xmlwineventlog
@@ -0,0 +1,12 @@
name: Winword Spawning PowerShell Unit Test
tests:
- name: Winword Spawning PowerShell
file: endpoint/winword_spawning_powershell.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: windows-sysmon.log
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1566.001/macro/windows-sysmon.log
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
sourcetype: xmlwineventlog
@@ -0,0 +1,12 @@
name: Winword Spawning Windows Script Host Unit Test
tests:
- name: Winword Spawning Windows Script Host
file: endpoint/winword_spawning_windows_script_host.yml
pass_condition: '| stats count | where count > 0'
earliest_time: '-24h'
latest_time: 'now'
attack_data:
- file_name: windows-sysmon.log
data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1566.001/macro/windows-sysmon_wsh.log
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
sourcetype: xmlwineventlog