Merge branch 'develop' into new-research-detection-endpoint

This commit is contained in:
zake
2025-01-11 22:57:41 +07:00
committed by GitHub
80 changed files with 353 additions and 95 deletions
+14 -8
View File
@@ -32,9 +32,9 @@ apps:
- uid: 1621
title: Splunk Common Information Model (CIM)
appid: Splunk_SA_CIM
version: 6.0.0
version: 6.0.1
description: description of app
hardcoded_path: https://attack-range-appbinaries.s3.us-west-2.amazonaws.com/splunk-common-information-model-cim_600.tgz
hardcoded_path: https://attack-range-appbinaries.s3.us-west-2.amazonaws.com/splunk-common-information-model-cim_601.tgz
- uid: 6553
title: Splunk Add-on for Okta Identity Cloud
appid: Splunk_TA_okta_identity_cloud
@@ -137,9 +137,9 @@ apps:
- uid: 1876
title: Splunk Add-on for AWS
appid: Splunk_TA_aws
version: 7.8.0
version: 7.9.0
description: description of app
hardcoded_path: https://attack-range-appbinaries.s3.us-west-2.amazonaws.com/splunk-add-on-for-amazon-web-services-aws_780.tgz
hardcoded_path: https://attack-range-appbinaries.s3.us-west-2.amazonaws.com/splunk-add-on-for-amazon-web-services-aws_790.tgz
- uid: 3088
title: Splunk Add-on for Google Cloud Platform
appid: SPLUNK_ADD_ON_FOR_GOOGLE_CLOUD_PLATFORM
@@ -149,9 +149,9 @@ apps:
- uid: 5556
title: Splunk Add-on for Google Workspace
appid: SPLUNK_ADD_ON_FOR_GOOGLE_WORKSPACE
version: 3.0.1
version: 3.0.2
description: description of app
hardcoded_path: https://attack-range-appbinaries.s3.us-west-2.amazonaws.com/splunk-add-on-for-google-workspace_301.tgz
hardcoded_path: https://attack-range-appbinaries.s3.us-west-2.amazonaws.com/splunk-add-on-for-google-workspace_302.tgz
- uid: 3110
title: Splunk Add-on for Microsoft Cloud Services
appid: SPLUNK_TA_MICROSOFT_CLOUD_SERVICES
@@ -161,9 +161,9 @@ apps:
- uid: 4055
title: Splunk Add-on for Microsoft Office 365
appid: SPLUNK_ADD_ON_FOR_MICROSOFT_OFFICE_365
version: 4.6.0
version: 4.7.0
description: description of app
hardcoded_path: https://attack-range-appbinaries.s3.us-west-2.amazonaws.com/splunk-add-on-for-microsoft-office-365_460.tgz
hardcoded_path: https://attack-range-appbinaries.s3.us-west-2.amazonaws.com/splunk-add-on-for-microsoft-office-365_470.tgz
- uid: 2890
title: Splunk Machine Learning Toolkit
appid: SPLUNK_MACHINE_LEARNING_TOOLKIT
@@ -200,4 +200,10 @@ apps:
version: 3.2.1
description: description of app
hardcoded_path: https://attack-range-appbinaries.s3.us-west-2.amazonaws.com/crowdstrike-falcon-event-streams-technical-add-on_321.tgz
- uid: 2882
title: Python for Scientific Computing (for Linux 64-bit)
appid: Splunk_SA_Scientific_Python_linux_x86_64
version: 4.2.2
description: PSC for MLTK
hardcoded_path: https://attack-range-appbinaries.s3.us-west-2.amazonaws.com/python-for-scientific-computing-for-linux-64-bit_422.tgz
githash: d6fac80e6d50ae06b40f91519a98489d4ce3a3fd
+1 -1
View File
@@ -9,7 +9,7 @@ sourcetype: aws:cloudfront:accesslogs
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
+1 -1
View File
@@ -10,4 +10,4 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- additionalEventData.AuthenticationMethod
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- apiVersion
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- apiVersion
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- apiVersion
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- apiVersion
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- additionalEventData.AuthenticationMethod
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- additionalEventData.AuthenticationMethod
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- additionalEventData.AuthenticationMethod
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- additionalEventData.AuthenticationMethod
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- action
+1 -1
View File
@@ -10,7 +10,7 @@ separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- app
+1 -1
View File
@@ -9,7 +9,7 @@ sourcetype: aws:cloudwatchlogs:vpcflow
separator: eventName
supported_TA:
- name: Splunk Add-on for AWS
version: 7.8.0
version: 7.9.0
url: https://splunkbase.splunk.com/app/1876
fields:
- _raw
+1 -1
View File
@@ -9,7 +9,7 @@ sourcetype: aws:securityhub:finding
supported_TA:
- name: Splunk Add-on for AWS
url: https://splunkbase.splunk.com/app/1876
version: 7.8.0
version: 7.9.0
fields:
- _time
- AwsAccountId
+1 -1
View File
@@ -9,7 +9,7 @@ sourcetype: gsuite:drive:json
supported_TA:
- name: Splunk Add-on for Google Workspace
url: https://splunkbase.splunk.com/app/5556
version: 3.0.1
version: 3.0.2
fields:
- _time
- email
+1 -1
View File
@@ -9,7 +9,7 @@ sourcetype: gsuite:gmail:bigquery
supported_TA:
- name: Splunk Add-on for Google Workspace
url: https://splunkbase.splunk.com/app/5556
version: 3.0.1
version: 3.0.2
fields:
- _time
- action_type
@@ -10,7 +10,7 @@ separator: event.name
supported_TA:
- name: Splunk Add-on for Google Workspace
url: https://splunkbase.splunk.com/app/5556
version: 3.0.1
version: 3.0.2
fields:
- _time
- actor.email
@@ -10,7 +10,7 @@ separator: event.name
supported_TA:
- name: Splunk Add-on for Google Workspace
url: https://splunkbase.splunk.com/app/5556
version: 3.0.1
version: 3.0.2
fields:
- _time
- actor.email
+1 -1
View File
@@ -10,4 +10,4 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
+1 -1
View File
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- AccessRights
+1 -1
View File
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
+1 -1
View File
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
+1 -1
View File
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
+1 -1
View File
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- AppId
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- AppId
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
+1 -1
View File
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- AppId
+1 -1
View File
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
+1 -1
View File
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
+1 -1
View File
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
+1 -1
View File
@@ -10,7 +10,7 @@ separator: Operation
supported_TA:
- name: Splunk Add-on for Microsoft Office 365
url: https://splunkbase.splunk.com/app/4055
version: 4.6.0
version: 4.7.0
fields:
- _time
- ActorContextId
@@ -1,7 +1,7 @@
name: Detect Exchange Web Shell
id: 8c14eeee-2af1-4a4b-bda8-228da0f4862a
version: '8'
date: '2024-11-28'
version: 9
date: '2024-12-12'
author: Michael Haag, Shannon Davis, David Dorsey, Splunk
status: production
type: TTP
@@ -16,16 +16,18 @@ description: The following analytic identifies the creation of suspicious .aspx
data_source:
- Sysmon EventID 1 AND Sysmon EventID 11
search: '| tstats `security_content_summariesonly` count FROM datamodel=Endpoint.Processes
where Processes.process_name=System by _time span=1h Processes.process_id Processes.process_name
Processes.dest Processes.user | `drop_dm_object_name(Processes)` | join process_guid,
_time [| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
as lastTime FROM datamodel=Endpoint.Filesystem where Filesystem.file_path IN ("*\\HttpProxy\\owa\\auth\\*",
"*\\inetpub\\wwwroot\\aspnet_client\\*", "*\\HttpProxy\\OAB\\*") Filesystem.file_name
IN( "*.aspx", "*.ashx") by _time span=1h Filesystem.user Filesystem.dest Filesystem.file_create_time
Filesystem.file_name Filesystem.file_path | `drop_dm_object_name(Filesystem)` |
fields _time dest user file_create_time file_name file_path process_name process_path
process] | dedup file_create_time | table dest user file_create_time, file_name,
file_path, process_name | `detect_exchange_web_shell_filter`'
where Processes.process_name=System by _time span=1h Processes.process_guid Processes.process_name Processes.process
Processes.dest Processes.user
| `drop_dm_object_name(Processes)`
| join process_guid, _time
[| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
as lastTime FROM datamodel=Endpoint.Filesystem where Filesystem.file_path IN ("*\\HttpProxy\\owa\\auth\\*",
"*\\inetpub\\wwwroot\\aspnet_client\\*", "*\\HttpProxy\\OAB\\*") Filesystem.file_name
IN( "*.aspx", "*.ashx") by _time span=1h Filesystem.process_guid Filesystem.user Filesystem.dest Filesystem.file_create_time
Filesystem.file_name Filesystem.file_path
| `drop_dm_object_name(Filesystem)` ]
| dedup file_create_time
| table _time dest user file_create_time file_name file_path process_name process process_guid | `detect_exchange_web_shell_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 and `Filesystem`
@@ -0,0 +1,92 @@
name: Detect Remote Access Software Usage Registry
id: 33804986-25dd-43cf-bb6b-dc14956c7cbc
version: 1
date: '2024-11-21'
author: Steven Dick
status: production
type: Anomaly
description: The following analytic detects when a known remote access software is added to common persistence locations on a device within the environment. Adversaries use these utilities to retain remote access capabilities to the environment. Utilities in the lookup include AnyDesk, GoToMyPC, LogMeIn, TeamViewer and much more. Review the lookup for the entire list and add any others.
data_source:
- Sysmon EventID 12
- Sysmon EventID 13
search: '| tstats `security_content_summariesonly` latest(Registry.process_guid) as process_guid count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Registry where (Registry.registry_path="*\\Microsoft\\Windows\\CurrentVersion\\Run*" OR (Registry.registry_path="*\\SYSTEM\\CurrentControlSet\\Services\\*" AND Registry.registry_value_name="ImagePath")) by Registry.dest Registry.user Registry.registry_path Registry.registry_value_name Registry.registry_value_data Registry.registry_key_name
| `drop_dm_object_name(Registry)`
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
| rex field=registry_value_data "(\")?.+\\\(?<file_name_1>[^\"=]+\.[^\" ]{1,5})(\")?"
| rex field=registry_value_data "(?<file_name_2>[^\.]+\.[^\" ]{1,5}$)"
| eval file_name = coalesce(file_name_1,file_name_2)
| lookup remote_access_software remote_utility AS file_name OUTPUT isutility, description as signature, comment_reference as desc, category
| search isutility = TRUE
| `remote_access_software_usage_exceptions`
| `detect_remote_access_software_usage_registry_filter`'
how_to_implement: The detection is based on data that originates from Endpoint Detection and Response (EDR) agents. These agents are designed to provide security-related telemetry from the endpoints where the agent is installed. To implement this search, you must ingest logs that contain the file path, file name, and the user that created the file. These logs must be processed using the appropriate Splunk Technology Add-ons that are specific to the EDR product. The logs must also be mapped to the `Registry` node of the `Endpoint` data model. Use the Splunk Common Information Model (CIM) to normalize the field names and speed up the data modeling process. The "exceptions" macro leverages both an Assets and Identities lookup, as well as a KVStore collection called "remote_software_exceptions" that lets you track and maintain device-based exceptions for this set of detections.
known_false_positives: Known or approved applications used by the organization or usage of built-in functions. Known false positives can be added to the remote_access_software_usage_exception.csv lookup to globally suppress these situations across all remote access content
references:
- https://attack.mitre.org/techniques/T1219/
- https://thedfirreport.com/2022/08/08/bumblebee-roasts-its-way-to-domain-admin/
- https://thedfirreport.com/2022/11/28/emotet-strikes-again-lnk-file-leads-to-domain-wide-ransomware/
drilldown_searches:
- name: View the detection results for - "$dest$" and "$user$"
search: '%original_detection_search% | search dest = "$dest$" user = "$user$"'
earliest_offset: $info_min_time$
latest_offset: $info_max_time$
- name: View risk events for the last 7 days for - "$dest$" and "$user$"
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$","$user$") starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
earliest_offset: $info_min_time$
latest_offset: $info_max_time$
- name: Investigate registry changes on $dest$
search: '| from datamodel:Endpoint.Registry| search dest=$dest$ registry_path=$registry_path$'
earliest_offset: $info_min_time$
latest_offset: $info_max_time$
tags:
analytic_story:
- Insider Threat
- Command And Control
- Ransomware
- Gozi Malware
- CISA AA24-241A
asset_type: Endpoint
confidence: 50
impact: 50
message: A process for a known remote access software [$signature$] was detected on $dest$
mitre_attack_id:
- T1219
observable:
- name: dest
type: Hostname
role:
- Victim
- name: user
type: User
role:
- Victim
- name: registry_path
type: Other
role:
- Attacker
- name: signature
type: Other
role:
- Attacker
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- Registry.dest
- Registry.user
- Registry.registry_path
- Registry.registry_value_name
- Registry.registry_value_data
- Registry.registry_key_name
risk_score: 25
security_domain: endpoint
manual_test: This detection uses A&I lookups from Enterprise Security.
tests:
- name: True Positive Test
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1219/screenconnect/screenconnect_sysmon.log
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
sourcetype: XmlWinEventLog
@@ -0,0 +1,76 @@
name: Windows Detect Network Scanner Behavior
id: 78e678d2-bf64-4fe6-aa52-2f7b11dddee7
version: 1
date: '2024-12-26'
author: Steven Dick
status: production
type: Anomaly
description: The following analytic detects when an application is used to connect a large number of unique ports/targets within a short time frame. Network enumeration may be used by adversaries as a method of discovery, lateral movement, or remote execution. This analytic may require significant tuning depending on the organization and applications being actively used, highly recommended to pre-populate the filter macro prior to activation.
data_source:
- Sysmon EventID 3
search: '| tstats `security_content_summariesonly` count latest(All_Traffic.dest_port) as dest_port dc(All_Traffic.dest_port) as port_count dc(All_Traffic.dest) as dest_count min(_time) as firstTime max(_time) as lastTime values(All_Traffic.process_id) as process_id from datamodel=Network_Traffic.All_Traffic where sourcetype=XmlWinEventLog All_Traffic.app = "*\\*" All_Traffic.dest_port < 32000 NOT All_Traffic.dest_port IN (8443,8080,5353,3268,443,389,88,80,53,25) by host,All_Traffic.app,All_Traffic.src,All_Traffic.src_ip,All_Traffic.user _time span=5m
| `drop_dm_object_name(All_Traffic)`
| rex field=app ".*\\\(?<process_name>.*)$"
| where port_count > 10 OR dest_count > 10
| stats latest(src) as src, latest(src_ip) as src_ip, max(dest_count) as dest_count, max(port_count) as port_count, latest(dest_port) as dest_port, min(firstTime) as firstTime, max(lastTime) as lastTime, max(count) as count by host,user,app,process_name
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
| `windows_detect_network_scanner_behavior_filter`'
how_to_implement: This detection relies on Sysmon EventID 3 events being ingested AND tagged into the Network_Traffic datamodel.
known_false_positives: Various, could be noisy depending on processes in the organization and sysmon configuration used. Adjusted port/dest count thresholds as needed.
references:
- https://attack.mitre.org/techniques/T1595
drilldown_searches:
- name: View the detection results for - "$src$" and "$user$"
search: '%original_detection_search% | search src = "$src$" user = "$user$"'
earliest_offset: $info_min_time$
latest_offset: $info_max_time$
- name: View risk events for the last 7 days for - "$src$" and "$user$"
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$src$") starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
earliest_offset: $info_min_time$
latest_offset: $info_max_time$
tags:
analytic_story:
- Network Discovery
- Windows Discovery Techniques
asset_type: Endpoint
confidence: 50
impact: 50
message: A process exhibiting network scanning behavior [$process_name$] was detected on $src$
mitre_attack_id:
- T1595
- T1595.001
- T1595.002
observable:
- name: src
type: IP Address
role:
- Victim
- name: user
type: User
role:
- Victim
- name: process_name
type: Process
role:
- Attacker
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- All_Traffic.dest_port
- host
- All_Traffic.app
- All_Traffic.src
- All_Traffic.src_ip
- All_Traffic.user
- _time
risk_score: 25
security_domain: network
tests:
- name: True Positive Test
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1595/sysmon_scanning_events/sysmon_scanning_events.log
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
sourcetype: XmlWinEventLog
@@ -0,0 +1,82 @@
name: Windows Process With NetExec Command Line Parameters
id: adbff89c-c1f2-4a2e-88a4-b5e645856510
version: 1
date: '2024-12-19'
author: Steven Dick, Github Community
status: production
type: TTP
description: The following analytic detects the use of NetExec (formally CrackmapExec) a toolset used for post-exploitation enumeration and attack within Active Directory environments through command line parameters. It leverages Endpoint Detection and Response (EDR) data to identify specific command-line arguments associated with actions like ticket manipulation, kerberoasting, and password spraying. This activity is significant as NetExec is used by adversaries to exploit Kerberos for privilege escalation and lateral movement. If confirmed malicious, this could lead to unauthorized access, persistence, and potential compromise of sensitive information within the network.
data_source:
- Windows Security Event ID 4688
- Sysmon Event ID 1
- CrowdStrike ProcessRollup2
search: '| tstats `security_content_summariesonly` values(Processes.parent_process) as Processes.parent_process, values(Processes.process) as Processes.process values(Processes.process_current_directory) AS process_current_directory, values(Processes.process_id) as Processes.process_id, values(Processes.process_guid) as Processes.process_guid, count min(_time) AS firstTime, max(_time) AS lastTime FROM datamodel=Endpoint.Processes where Processes.process_name IN ("nxc.exe") OR Processes.original_file_name IN ("nxc.exe") OR (Processes.process IN ("* smb *","* ssh *","* ldap *","* ftp *","* wmi *","* winrm *","* rdp *","* vnc *","* mssql *","* nfs *") AND ((Processes.process = "* -p *" AND Processes.process = "* -u *") OR Processes.process IN ("* -x *","* -M *","* --*"))) BY _time span=1h Processes.user Processes.dest Processes.process_name Processes.parent_process_name
|`drop_dm_object_name(Processes)`
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
| `windows_process_with_netexec_command_line_parameters_filter`'
how_to_implement: The detection is based on data that originates from Endpoint Detection and Response (EDR) agents. These agents are designed to provide security-related telemetry from the endpoints where the agent is installed. To implement this search, you must ingest logs that contain the process GUID, process name, and parent process. Additionally, you must ingest complete command-line executions. These logs must be processed using the appropriate Splunk Technology Add-ons that are specific to the EDR product. The logs must also be mapped to the `Processes` node of the `Endpoint` data model. Use the Splunk Common Information Model (CIM) to normalize the field names and speed up the data modeling process.
known_false_positives: Although unlikely, legitimate applications may use the same command line parameters as NetExec. Filter as needed.
references:
- https://www.netexec.wiki/
- https://www.johnvictorwolfe.com/2024/07/21/the-successor-to-crackmapexec/
- https://attack.mitre.org/software/S0488/
drilldown_searches:
- name: View the detection results for - "$dest$" and "$user$"
search: '%original_detection_search% | search dest = "$dest$" user = "$user$"'
earliest_offset: $info_min_time$
latest_offset: $info_max_time$
- name: View risk events for the last 7 days for - "$dest$" and "$user$"
search: '| from datamodel Risk.All_Risk | search normalized_risk_object IN ("$dest$","$user$") starthoursago=168 | stats count min(_time) as firstTime max(_time) as lastTime values(search_name) as "Search Name" values(risk_message) as "Risk Message" values(analyticstories) as "Analytic Stories" values(annotations._all) as "Annotations" values(annotations.mitre_attack.mitre_tactic) as "ATT&CK Tactics" by normalized_risk_object | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`'
earliest_offset: $info_min_time$
latest_offset: $info_max_time$
- name: Investigate processes on $dest$
search: '| from datamodel:Endpoint.Processes | search dest=$dest$ process_name = $process_name$'
earliest_offset: $info_min_time$
latest_offset: $info_max_time$
tags:
analytic_story:
- Active Directory Kerberos Attacks
- Active Directory Privilege Escalation
asset_type: Endpoint
confidence: 80
impact: 80
message: NetExec command line parameters were used on $dest$ by $user$
mitre_attack_id:
- T1550
- T1550.003
- T1558
- T1558.003
- T1558.004
observable:
- name: user
type: User
role:
- Victim
- name: dest
type: Hostname
role:
- Victim
- name: parent_process_name
type: Process
role:
- Attacker
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- Processes.process
- Processes.user
- Processes.dest
- Processes.process_name
- Processes.parent_process_name
risk_score: 64
security_domain: endpoint
tests:
- name: True Positive Test
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1550/netexec_toolkit_usage/netexec_toolkit_usage.log
source: XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
sourcetype: XmlWinEventLog