mirror of
https://github.com/splunk/security_content
synced 2026-06-08 17:32:49 +00:00
Branch was auto-updated.
This commit is contained in:
@@ -9,32 +9,6 @@ class FindingReportObject():
|
||||
|
||||
@staticmethod
|
||||
def writeFindingReport(detection : Detection) -> None:
|
||||
|
||||
# if detection.tags.confidence < 33:
|
||||
# detection.tags.confidence_id = 1
|
||||
# elif detection.tags.confidence < 66:
|
||||
# detection.tags.confidence_id = 2
|
||||
# else:
|
||||
# detection.tags.confidence_id = 3
|
||||
|
||||
# detection.tags.context_ids = list()
|
||||
# for context in detection.tags.context:
|
||||
# detection.tags.context_ids.append(SES_CONTEXT_MAPPING[context])
|
||||
|
||||
# if detection.tags.impact < 20:
|
||||
# detection.tags.impact_id = 1
|
||||
# elif detection.tags.impact < 40:
|
||||
# detection.tags.impact_id = 2
|
||||
# elif detection.tags.impact < 60:
|
||||
# detection.tags.impact_id = 3
|
||||
# elif detection.tags.impact < 80:
|
||||
# detection.tags.impact_id = 4
|
||||
# else:
|
||||
# detection.tags.impact_id = 5
|
||||
|
||||
# detection.tags.kill_chain_phases_id = dict()
|
||||
# for kill_chain_phase in detection.tags.kill_chain_phases:
|
||||
# detection.tags.kill_chain_phases_id[kill_chain_phase] = SES_KILL_CHAIN_MAPPINGS[kill_chain_phase]
|
||||
|
||||
|
||||
if detection.tags.risk_score < 20:
|
||||
@@ -53,15 +27,6 @@ class FindingReportObject():
|
||||
detection.tags.risk_level_id = 4
|
||||
detection.tags.risk_level = "Critical"
|
||||
|
||||
# observable_str = "["
|
||||
# for i in range(len(detection.tags.observable)):
|
||||
# observable_str = observable_str + 'create_map("name", "' + detection.tags.observable[i]["name"] + '", "type_id", ' + str(SES_OBSERVABLE_TYPE_MAPPING[detection.tags.observable[i]["type"]]) + ', "value", ' + detection.tags.observable[i]["name"].replace(".", "_") + ')'
|
||||
# if not i == (len(detection.tags.observable) - 1):
|
||||
# observable_str = observable_str + ', '
|
||||
# observable_str = observable_str + ']'
|
||||
|
||||
# detection.tags.observable_str = observable_str
|
||||
|
||||
evidence_str = "create_map("
|
||||
for i in range(len(detection.tags.observable)):
|
||||
evidence_str = evidence_str + '"' + detection.tags.observable[i]["name"] + '", ' + detection.tags.observable[i]["name"].replace(".", "_")
|
||||
@@ -71,10 +36,15 @@ class FindingReportObject():
|
||||
|
||||
detection.tags.evidence_str = evidence_str
|
||||
|
||||
if "actor.user.name" in detection.tags.required_fields:
|
||||
actor_user_name = "actor_user_name"
|
||||
else:
|
||||
actor_user_name = "\"Unknown\""
|
||||
|
||||
j2_env = Environment(
|
||||
loader=FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates')),
|
||||
trim_blocks=True)
|
||||
template = j2_env.get_template('finding_report.j2')
|
||||
body = template.render(detection=detection, attack_tactics_id_mapping=SES_ATTACK_TACTICS_ID_MAPPING)
|
||||
body = template.render(detection=detection, attack_tactics_id_mapping=SES_ATTACK_TACTICS_ID_MAPPING, actor_user_name=actor_user_name)
|
||||
|
||||
return body
|
||||
|
||||
+2
-2
@@ -7,10 +7,10 @@
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", {{ detection.tags.evidence_str }},
|
||||
"message", concat("{{ detection.name }} has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"message", concat("{{ detection.name }} has been triggered on ", device_hostname, " by ", {{ actor_user_name }}, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", {{ actor_user_name }}, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
|
||||
@@ -28,7 +28,6 @@ class SigmaConverterInputDto:
|
||||
detection_folder : str
|
||||
input_path: str
|
||||
log_source: str
|
||||
cim_to_ocsf: bool
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
@@ -159,9 +158,9 @@ class SigmaConverter():
|
||||
|
||||
cim_to_ocsf_mapping = self.get_cim_to_ocsf_mapping(data_source_new)
|
||||
|
||||
elif input_dto.cim_to_ocsf:
|
||||
field_mapping = self.get_cim_to_ocsf_mapping(data_source)
|
||||
cim_to_ocsf_mapping = field_mapping
|
||||
# elif input_dto.cim_to_ocsf:
|
||||
# field_mapping = self.get_cim_to_ocsf_mapping(data_source)
|
||||
# cim_to_ocsf_mapping = field_mapping
|
||||
|
||||
else:
|
||||
field_mapping = self.find_mapping(data_source.field_mappings, 'data_model', 'ocsf')
|
||||
@@ -171,7 +170,7 @@ class SigmaConverter():
|
||||
for field in field_mapping_underline["mapping"].keys():
|
||||
field_mapping_underline["mapping"][field] = field_mapping_underline["mapping"][field].replace(".", "_")
|
||||
|
||||
self.add_required_fields(field_mapping, detection)
|
||||
self.add_required_fields(cim_to_ocsf_mapping, detection)
|
||||
self.add_mappings(cim_to_ocsf_mapping, detection)
|
||||
|
||||
self.update_observables(detection)
|
||||
@@ -189,7 +188,7 @@ class SigmaConverter():
|
||||
)
|
||||
)
|
||||
|
||||
detection = self.convert_detection_fields(detection, field_mapping_underline)
|
||||
detection = self.convert_detection_fields(detection)
|
||||
sigma_rule = self.get_sigma_rule(detection, data_source)
|
||||
sigma_processing_pipeline = self.get_pipeline_from_processing_items(processing_items)
|
||||
|
||||
@@ -248,15 +247,27 @@ class SigmaConverter():
|
||||
}])
|
||||
|
||||
|
||||
def convert_detection_fields(self, detection: Detection, mappings: dict) -> Detection:
|
||||
# def convert_detection_fields(self, detection: Detection, mappings: dict) -> Detection:
|
||||
# for selection in detection.search.keys():
|
||||
# if selection != "condition":
|
||||
# new_selection = copy.deepcopy(detection.search[selection])
|
||||
# for field in detection.search[selection].keys():
|
||||
# for mapping in mappings["mapping"].keys():
|
||||
# if mapping == field:
|
||||
# new_selection[mappings["mapping"][mapping]] = detection.search[selection][field]
|
||||
# new_selection.pop(field)
|
||||
# detection.search[selection] = new_selection
|
||||
|
||||
# return detection
|
||||
|
||||
def convert_detection_fields(self, detection: Detection) -> Detection:
|
||||
for selection in detection.search.keys():
|
||||
if selection != "condition":
|
||||
new_selection = copy.deepcopy(detection.search[selection])
|
||||
for field in detection.search[selection].keys():
|
||||
for mapping in mappings["mapping"].keys():
|
||||
if mapping == field:
|
||||
new_selection[mappings["mapping"][mapping]] = detection.search[selection][field]
|
||||
new_selection.pop(field)
|
||||
new_field_name = field.replace(".", "_")
|
||||
new_selection[new_field_name] = detection.search[selection][field]
|
||||
new_selection.pop(field)
|
||||
detection.search[selection] = new_selection
|
||||
|
||||
return detection
|
||||
@@ -337,14 +348,9 @@ class SigmaConverter():
|
||||
|
||||
def add_required_fields(self, field_mapping: dict, detection: Detection) -> None:
|
||||
required_fields = list()
|
||||
required_fields = ["process.user.name", "device.hostname"]
|
||||
# required_fields = ["process.user.name", "device.hostname"]
|
||||
for mapping in field_mapping["mapping"].keys():
|
||||
for selection in detection.search.keys():
|
||||
if selection != "condition":
|
||||
for detection_field in detection.search[selection]:
|
||||
if detection_field.startswith(mapping):
|
||||
if not field_mapping["mapping"][mapping] in required_fields:
|
||||
required_fields.append(field_mapping["mapping"][mapping])
|
||||
required_fields.append(field_mapping["mapping"][mapping])
|
||||
|
||||
detection.tags.required_fields = required_fields
|
||||
|
||||
@@ -361,14 +367,19 @@ class SigmaConverter():
|
||||
def update_observables(self, detection : Detection) -> None:
|
||||
mapping_field_to_type = {
|
||||
"process.user.name": "User Name",
|
||||
"actor.user.name": "User Name",
|
||||
"device.hostname": "Hostname",
|
||||
"process.file.name": "File Name",
|
||||
"actor.process.file.name": "File Name",
|
||||
"actor.process.file.path": "File Name",
|
||||
"actor.process.cmd_line": "Process",
|
||||
"actor.user.uid": "Other",
|
||||
"process.cmd_line": "Other",
|
||||
"process.file.path": "File",
|
||||
"process.file.name": "File"
|
||||
"process.file.name": "File",
|
||||
"process.uid": "Other",
|
||||
"process.pid": "Other",
|
||||
"actor.process.pid": "Other"
|
||||
}
|
||||
|
||||
observables = list()
|
||||
|
||||
+1
-5
@@ -312,8 +312,6 @@ def convert(args) -> None:
|
||||
data_model = SigmaConverterTarget.RAW
|
||||
elif args.data_model == 'ocsf':
|
||||
data_model = SigmaConverterTarget.OCSF
|
||||
elif args.data_model == 'all':
|
||||
data_model = SigmaConverterTarget.ALL
|
||||
else:
|
||||
print("ERROR: data model " + args.data_model + " not supported")
|
||||
sys.exit(1)
|
||||
@@ -323,8 +321,7 @@ def convert(args) -> None:
|
||||
detection_path = args.detection_path,
|
||||
detection_folder = args.detection_folder,
|
||||
input_path = args.path,
|
||||
log_source = args.log_source,
|
||||
cim_to_ocsf = args.cim_to_ocsf
|
||||
log_source = args.log_source
|
||||
)
|
||||
|
||||
convert_input_dto = ConvertInputDto(
|
||||
@@ -414,7 +411,6 @@ def main(args):
|
||||
convert_parser.add_argument("-lo", "--log_source", required=False, type=str, help="converter log source")
|
||||
convert_parser.add_argument("-dp", "--detection_path", required=False, type=str, help="path to a single detection")
|
||||
convert_parser.add_argument("-df", "--detection_folder", required=False, type=str, help="path to a detection folder")
|
||||
convert_parser.add_argument("-cto", "--cim_to_ocsf", action=argparse.BooleanOptionalAction, help="temp: cim to ocsf")
|
||||
convert_parser.add_argument("-o", "--output", required=True, type=str, help="output path to store the detections")
|
||||
convert_parser.set_defaults(func=convert)
|
||||
|
||||
|
||||
@@ -21,4 +21,21 @@ raw_fields:
|
||||
- MessageNumber
|
||||
- MessageTotal
|
||||
- ScriptBlockId
|
||||
- ScriptBlockText
|
||||
- ScriptBlockText
|
||||
- Path
|
||||
field_mappings:
|
||||
- data_model: cim
|
||||
data_set: Endpoint.Processes
|
||||
mapping:
|
||||
Computer: Processes.dest
|
||||
Path: Processes.process_path
|
||||
ScriptBlockId: Processes.process_id
|
||||
ScriptBlockText: Processes.process
|
||||
UserID: Processes.user_id
|
||||
- data_model: ocsf
|
||||
mapping:
|
||||
Computer: device.hostname
|
||||
Path: process.file.path
|
||||
ScriptBlockId: process.uid
|
||||
ScriptBlockText: process.cmd_line
|
||||
UserID: actor.user.uid
|
||||
|
||||
@@ -44,7 +44,7 @@ field_mappings:
|
||||
NewProcessName: process.file.path
|
||||
NewProcessName|endswith: process.file.name
|
||||
Process_Command_Line: process.cmd_line
|
||||
SubjectUserSid: process.user.name
|
||||
SubjectUserSid: actor.user.name
|
||||
ProcessId: actor.process.pid
|
||||
ParentProcessName: actor.process.file.path
|
||||
ParentProcessName|endswith: actor.process.file.name
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
name: Windows AdFind Exe
|
||||
id: bd3b0187-189b-46c0-be45-f52da2bae67f
|
||||
version: 2
|
||||
date: '2021-11-03'
|
||||
version: 3
|
||||
date: '2023-05-15'
|
||||
author: Jose Hernandez, Bhavin Patel, Splunk
|
||||
status: production
|
||||
type: TTP
|
||||
description: 'This search looks for the execution of `adfind.exe` with command-line
|
||||
arguments that it uses by default. Specifically the filter or search functions.
|
||||
arguments that it uses by default specifically the filter or search functions.
|
||||
It also considers the arguments necessary like objectcategory, see readme for more
|
||||
details: https://www.joeware.net/freetools/tools/adfind/usage.htm. This has been
|
||||
seen used before by Wizard Spider, FIN6 and actors whom also launched SUNBURST.
|
||||
AdFind.exe is usually used a recon tool to enumare a domain controller.'
|
||||
details: https://www.joeware.net/freetools/tools/adfind/usage.htm. AdFind.exe is a powerful tool that is commonly used for querying and retrieving information from Active Directory (AD). While it is primarily designed for AD administration and management, it has been seen used before by Wizard Spider, FIN6 and actors whom also launched SUNBURST.'
|
||||
data_source:
|
||||
- Sysmon Event ID 1
|
||||
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)
|
||||
@@ -23,11 +21,11 @@ search: '| tstats `security_content_summariesonly` count min(_time) as firstTime
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, and command-line executions from your endpoints. If
|
||||
you are using Sysmon, you must have at least version 6.0.4 of the Sysmon TA.
|
||||
known_false_positives: administrators rarely use adfind, usually not used for legitimate
|
||||
reasons
|
||||
known_false_positives: ADfind is a command-line tool for AD administration and management that is seen to be leveraged by various adversaries. Filter out legitimate administrator usage using the filter macro.
|
||||
references:
|
||||
- https://www.volexity.com/blog/2020/12/14/dark-halo-leverages-solarwinds-compromise-to-breach-organizations/
|
||||
- https://www.mandiant.com/resources/a-nasty-trick-from-credential-theft-malware-to-business-disruption
|
||||
- https://www.joeware.net/freetools/tools/adfind/index.htm
|
||||
tags:
|
||||
analytic_story:
|
||||
- NOBELIUM Group
|
||||
|
||||
@@ -11,13 +11,13 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: WinRAR.exe
|
||||
process.file.name: WinRAR.exe
|
||||
selection2:
|
||||
process_name|startswith: 7z
|
||||
process.file.name|startswith: 7z
|
||||
selection3:
|
||||
process_name|startswith: winzip
|
||||
process.file.name|startswith: winzip
|
||||
selection4:
|
||||
parent_process_name|endswith:
|
||||
actor.process.file.name|endswith:
|
||||
- powershell.exe
|
||||
- cmd.exe
|
||||
condition: (selection1 or selection2 or selection3) and selection4
|
||||
@@ -42,33 +42,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1560.001
|
||||
- T1560
|
||||
observable:
|
||||
- name: user
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- Processes.process_name
|
||||
- Processes.process
|
||||
- Processes.dest
|
||||
- Processes.user
|
||||
- Processes.parent_process_name
|
||||
- Processes.parent_process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 42
|
||||
|
||||
@@ -14,8 +14,8 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: sc.exe
|
||||
process|contains: delete
|
||||
process.file.name: sc.exe
|
||||
process.cmd_line|contains: delete
|
||||
condition: selection1
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -39,34 +39,10 @@ tags:
|
||||
- T1489
|
||||
- T1543
|
||||
- T1543.003
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 36
|
||||
|
||||
@@ -14,11 +14,11 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains: config
|
||||
process.cmd_line|contains: config
|
||||
selection2:
|
||||
process|contains: disabled
|
||||
process.cmd_line|contains: disabled
|
||||
selection3:
|
||||
process_name: sc.exe
|
||||
process.file.name: sc.exe
|
||||
condition: selection1 and selection2 and selection3
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -41,33 +41,10 @@ tags:
|
||||
on endpoint $dest_device_id$ by user $dest_user_id$ attempting to disable a service.
|
||||
mitre_attack_id:
|
||||
- T1489
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 36
|
||||
|
||||
@@ -12,11 +12,11 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name:
|
||||
process.file.name:
|
||||
- reg.exe
|
||||
- cmd.exe
|
||||
selection2:
|
||||
process|re:
|
||||
process.cmd_line|re:
|
||||
- HKEY_LOCAL_MACHINE\System
|
||||
- HKEY_LOCAL_MACHINE\SAM
|
||||
- HKEY_LOCAL_MACHINE\Security
|
||||
@@ -24,7 +24,7 @@ search:
|
||||
- HKLM\SAM
|
||||
- HKLM\Security
|
||||
selection3:
|
||||
process|re: save
|
||||
process.cmd_line|re: save
|
||||
condition: selection1 and (selection2) and selection3
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -40,32 +40,15 @@ tags:
|
||||
asset_type: Endpoint
|
||||
confidence: 90
|
||||
impact: 70
|
||||
message: An attempt to save registry keys storing credentials has been performed on
|
||||
message: An attempt to save registry keys storing credentials has been performed
|
||||
on
|
||||
mitre_attack_id:
|
||||
- T1003
|
||||
- T1003.002
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Actor
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- process_name
|
||||
- _time
|
||||
- dest_device_id
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 63
|
||||
|
||||
@@ -12,11 +12,11 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: bcdedit.exe
|
||||
process.file.name: bcdedit.exe
|
||||
selection2:
|
||||
process|contains: 'no'
|
||||
process.cmd_line|contains: 'no'
|
||||
selection3:
|
||||
process|contains: recoveryenabled
|
||||
process.cmd_line|contains: recoveryenabled
|
||||
condition: selection1 and (selection2 and selection3)
|
||||
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
|
||||
@@ -37,34 +37,10 @@ tags:
|
||||
to recover the endpoint.
|
||||
mitre_attack_id:
|
||||
- T1490
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 80
|
||||
|
||||
@@ -12,8 +12,8 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: cipher.exe
|
||||
process|contains: '/W:'
|
||||
process.file.name: cipher.exe
|
||||
process.cmd_line|contains: '/W:'
|
||||
condition: selection1
|
||||
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
|
||||
@@ -35,38 +35,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1070.004
|
||||
- T1070
|
||||
observable:
|
||||
- name: user
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- Processes.dest
|
||||
- Processes.user
|
||||
- Processes.parent_process_name
|
||||
- Processes.parent_process
|
||||
- Processes.original_file_name
|
||||
- Processes.process_name
|
||||
- Processes.process
|
||||
- Processes.process_id
|
||||
- Processes.parent_process_path
|
||||
- Processes.process_path
|
||||
- Processes.parent_process_id
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 90
|
||||
|
||||
@@ -15,11 +15,11 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains: user
|
||||
process.cmd_line|contains: user
|
||||
selection2:
|
||||
process|contains: /delete
|
||||
process.cmd_line|contains: /delete
|
||||
selection3:
|
||||
process_name:
|
||||
process.file.name:
|
||||
- net.exe
|
||||
- net1.exe
|
||||
condition: selection1 and selection2 and (selection3)
|
||||
@@ -43,34 +43,10 @@ tags:
|
||||
account.
|
||||
mitre_attack_id:
|
||||
- T1531
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 49
|
||||
|
||||
@@ -13,11 +13,11 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name:
|
||||
process.file.name:
|
||||
- icacls.exe
|
||||
- xcacls.exe
|
||||
- cacls.exe
|
||||
process|re: deny
|
||||
process.cmd_line|re: deny
|
||||
condition: (selection1)
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -34,30 +34,14 @@ tags:
|
||||
asset_type: Endpoint
|
||||
confidence: 70
|
||||
impact: 50
|
||||
message: A cacls process $process_name$ with commandline $process$ try to deny
|
||||
a permission of a file or directory in host $dest_device_id$
|
||||
message: A cacls process $process_name$ with commandline $process$ try to deny a
|
||||
permission of a file or directory in host $dest_device_id$
|
||||
mitre_attack_id:
|
||||
- T1222
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 35
|
||||
|
||||
@@ -11,27 +11,28 @@ description: The following analytic identifies parent processes, browsers, Windo
|
||||
need to be tuned to further enhance the risk.
|
||||
data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
search:
|
||||
selection1:
|
||||
parent_process_name:
|
||||
- winword.exe
|
||||
- excel.exe
|
||||
- outlook.exe
|
||||
- acrobat.exe
|
||||
- acrord32.exe
|
||||
- iexplore.exe
|
||||
- opera.exe
|
||||
- firefox.exe
|
||||
- powershell.exe
|
||||
actor.process.file.name:
|
||||
- winword.exe
|
||||
- excel.exe
|
||||
- outlook.exe
|
||||
- acrobat.exe
|
||||
- acrord32.exe
|
||||
- iexplore.exe
|
||||
- opera.exe
|
||||
- firefox.exe
|
||||
- powershell.exe
|
||||
selection2:
|
||||
parent_process_name: java.exe
|
||||
actor.process.file.name: java.exe
|
||||
selection3:
|
||||
parent_process_name|re: patch1-Hotfix1a
|
||||
actor.process.file.name|re: patch1-Hotfix1a
|
||||
selection4:
|
||||
parent_process_name: chrome.exe
|
||||
actor.process.file.name: chrome.exe
|
||||
selection5:
|
||||
process: chrome-extension
|
||||
condition: selection1 or (selection2 and not selection3) or (selection4 and not selection5)
|
||||
process.cmd_line: chrome-extension
|
||||
condition: selection1 or (selection2 and not selection3) or (selection4 and not
|
||||
selection5)
|
||||
how_to_implement: In order to successfully implement this analytic, you will need
|
||||
endpoint process data from a EDR product or Sysmon. This search has been modified
|
||||
to process raw sysmon data from attack_range's nxlogs on DSP.
|
||||
@@ -51,32 +52,10 @@ tags:
|
||||
that warrants investigating.
|
||||
mitre_attack_id:
|
||||
- T1059
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Actor
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- _time
|
||||
- dest_device_id
|
||||
- dest_user_id
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 35
|
||||
|
||||
@@ -16,7 +16,7 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- --multi-thread-streams
|
||||
- --transfers
|
||||
- --auto-confirm
|
||||
@@ -28,7 +28,7 @@ search:
|
||||
- pcloud
|
||||
- mega
|
||||
- copy
|
||||
process_name: rclone.exe
|
||||
process.file.name: rclone.exe
|
||||
condition: (selection1)
|
||||
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
|
||||
@@ -53,34 +53,10 @@ tags:
|
||||
remote cloud service to move files or folders.
|
||||
mitre_attack_id:
|
||||
- T1020
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 35
|
||||
|
||||
@@ -13,11 +13,11 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains: user
|
||||
process.cmd_line|contains: user
|
||||
selection2:
|
||||
process|contains: /active:no
|
||||
process.cmd_line|contains: /active:no
|
||||
selection3:
|
||||
process_name:
|
||||
process.file.name:
|
||||
- net.exe
|
||||
- net1.exe
|
||||
condition: selection1 and selection2 and (selection3)
|
||||
@@ -42,34 +42,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1489
|
||||
- T1078
|
||||
observable:
|
||||
- name: user
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 49
|
||||
|
||||
@@ -15,13 +15,13 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- -retry=
|
||||
- -type=
|
||||
- -q=
|
||||
- -qt=
|
||||
- -querytype=
|
||||
process_name: nslookup.exe
|
||||
process.file.name: nslookup.exe
|
||||
condition: (selection1)
|
||||
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
|
||||
@@ -46,34 +46,10 @@ tags:
|
||||
to DNS exfiltration.
|
||||
mitre_attack_id:
|
||||
- T1048
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 72
|
||||
|
||||
@@ -12,8 +12,8 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains: setzerodata
|
||||
process_name: fsutil.exe
|
||||
process.cmd_line|contains: setzerodata
|
||||
process.file.name: fsutil.exe
|
||||
condition: (selection1)
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -37,34 +37,10 @@ tags:
|
||||
deletion.
|
||||
mitre_attack_id:
|
||||
- T1070
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 54
|
||||
|
||||
@@ -13,11 +13,11 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name:
|
||||
process.file.name:
|
||||
- icacls.exe
|
||||
- xcacls.exe
|
||||
- cacls.exe
|
||||
process|re: grant
|
||||
process.cmd_line|re: grant
|
||||
condition: (selection1)
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -38,26 +38,10 @@ tags:
|
||||
user a permission to a file or directory in host $dest_device_id$
|
||||
mitre_attack_id:
|
||||
- T1222
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 35
|
||||
|
||||
@@ -13,8 +13,8 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: attrib.exe
|
||||
process|re: ''
|
||||
process.file.name: attrib.exe
|
||||
process.cmd_line|re: ''
|
||||
condition: selection1
|
||||
how_to_implement: You must be ingesting data that records process activity from your
|
||||
hosts to populate the Endpoint data model in the Processes node. You must also be
|
||||
@@ -38,24 +38,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1222.001
|
||||
- T1222
|
||||
observable:
|
||||
- name: user
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest
|
||||
type: Endpoint
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process
|
||||
type: Other
|
||||
role:
|
||||
- Attacker
|
||||
- Parent Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 72
|
||||
|
||||
@@ -15,12 +15,12 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|re:
|
||||
process.cmd_line|re:
|
||||
- 'S-1-1-0:'
|
||||
- 'SYSTEM:'
|
||||
- 'everyone:'
|
||||
selection2:
|
||||
process_name:
|
||||
process.file.name:
|
||||
- icacls.exe
|
||||
- xcacls.exe
|
||||
- cacls.exe
|
||||
@@ -43,26 +43,10 @@ tags:
|
||||
a permission of a file or directory in host $dest_device_id$
|
||||
mitre_attack_id:
|
||||
- T1222
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 35
|
||||
|
||||
@@ -12,10 +12,10 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name:
|
||||
process.file.name:
|
||||
- cscript.exe
|
||||
- wscript.exe
|
||||
parent_process_name|re:
|
||||
actor.process.file.name|re:
|
||||
- visio.exe
|
||||
- mspub.exe
|
||||
- powerpnt.exe
|
||||
@@ -41,33 +41,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1566
|
||||
- T1566.001
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 63
|
||||
|
||||
@@ -13,13 +13,13 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains: shadowstorage
|
||||
process.cmd_line|contains: shadowstorage
|
||||
selection2:
|
||||
process|contains: resize
|
||||
process.cmd_line|contains: resize
|
||||
selection3:
|
||||
process|contains: maxsize
|
||||
process.cmd_line|contains: maxsize
|
||||
selection4:
|
||||
process_name: vssadmin.exe
|
||||
process.file.name: vssadmin.exe
|
||||
condition: selection1 and selection2 and selection3 and selection4
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -42,34 +42,10 @@ tags:
|
||||
copy to perform offline password cracking.
|
||||
mitre_attack_id:
|
||||
- T1489
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 64
|
||||
|
||||
@@ -14,7 +14,7 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- .xls
|
||||
- .gz
|
||||
- .tar
|
||||
@@ -42,7 +42,7 @@ search:
|
||||
- '-p '
|
||||
- '-f '
|
||||
- '-c '
|
||||
process_name|contains: sdelete
|
||||
process.file.name|contains: sdelete
|
||||
condition: (selection1)
|
||||
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
|
||||
@@ -66,36 +66,10 @@ tags:
|
||||
- T1485
|
||||
- T1070.004
|
||||
- T1070
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest
|
||||
- user
|
||||
- parent_process_name
|
||||
- parent_process
|
||||
- process_name
|
||||
- process
|
||||
- process_id
|
||||
- process_path
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 42
|
||||
|
||||
@@ -15,7 +15,7 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name:
|
||||
process.file.name:
|
||||
- xwizard.exe
|
||||
- xpsrchvw.exe
|
||||
- xcopy.exe
|
||||
@@ -577,9 +577,9 @@ search:
|
||||
- adaptertroubleshooter.exe
|
||||
- arp.exe
|
||||
selection2:
|
||||
process_path|re: \\windows\\syswow64
|
||||
process.file.path|re: \\windows\\syswow64
|
||||
selection3:
|
||||
process_path|re: \\windows\\system32
|
||||
process.file.path|re: \\windows\\system32
|
||||
condition: selection1 and not selection2 and not selection3
|
||||
how_to_implement: Collect endpoint data such as sysmon or 4688 events.
|
||||
known_false_positives: None
|
||||
@@ -595,23 +595,10 @@ tags:
|
||||
folder path in host $dest_device_id$
|
||||
mitre_attack_id:
|
||||
- T1036
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- _time
|
||||
- dest_user_id
|
||||
- process_path
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 56
|
||||
|
||||
@@ -12,9 +12,9 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: wbadmin.exe
|
||||
process.file.name: wbadmin.exe
|
||||
selection2:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- systemstatebackup
|
||||
- catalog
|
||||
- delete
|
||||
@@ -40,34 +40,10 @@ tags:
|
||||
backups.
|
||||
mitre_attack_id:
|
||||
- T1490
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 15
|
||||
|
||||
@@ -12,15 +12,15 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|re:
|
||||
process.cmd_line|re:
|
||||
- powershell
|
||||
- setup
|
||||
- application
|
||||
- sysmon
|
||||
- system
|
||||
- security
|
||||
process|contains: ' cl '
|
||||
process_name: wevtutil.exe
|
||||
process.cmd_line|contains: ' cl '
|
||||
process.file.name: wevtutil.exe
|
||||
condition: (selection1)
|
||||
how_to_implement: You must be ingesting data that records process activity from your
|
||||
hosts to populate the Endpoint data model in the Processes node. You must also be
|
||||
@@ -41,30 +41,15 @@ tags:
|
||||
asset_type: Endpoint
|
||||
confidence: 90
|
||||
impact: 70
|
||||
message: A wevtutil process $process_name$ with commandline $process$ to clear
|
||||
event logs in host $dest_device_id$
|
||||
message: A wevtutil process $process_name$ with commandline $process$ to clear event
|
||||
logs in host $dest_device_id$
|
||||
mitre_attack_id:
|
||||
- T1070
|
||||
- T1070.001
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 63
|
||||
|
||||
@@ -12,11 +12,11 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains: /e:false
|
||||
process.cmd_line|contains: /e:false
|
||||
selection2:
|
||||
process|contains: ' sl '
|
||||
process.cmd_line|contains: ' sl '
|
||||
selection3:
|
||||
process_name: wevtutil.exe
|
||||
process.file.name: wevtutil.exe
|
||||
condition: selection1 and selection2 and selection3
|
||||
how_to_implement: You must be ingesting data that records process activity from your
|
||||
hosts to populate the Endpoint data model in the Processes node. You must also be
|
||||
@@ -41,25 +41,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1070
|
||||
- T1070.001
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 63
|
||||
|
||||
@@ -16,7 +16,7 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- resume
|
||||
- setcustomheaders
|
||||
- setminretrydelay
|
||||
@@ -24,7 +24,7 @@ search:
|
||||
- setnotifyflags
|
||||
- addfile
|
||||
- create
|
||||
process_name: bitsadmin.exe
|
||||
process.file.name: bitsadmin.exe
|
||||
condition: (selection1)
|
||||
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
|
||||
@@ -50,34 +50,10 @@ tags:
|
||||
on endpoint $dest$ by user $dest_user_id$ attempting to persist using BITS.
|
||||
mitre_attack_id:
|
||||
- T1197
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 56
|
||||
|
||||
@@ -21,8 +21,8 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains: transfer
|
||||
process_name: bitsadmin.exe
|
||||
process.cmd_line|contains: transfer
|
||||
process.file.name: bitsadmin.exe
|
||||
condition: (selection1)
|
||||
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
|
||||
@@ -50,34 +50,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1197
|
||||
- T1105
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 49
|
||||
|
||||
@@ -17,8 +17,8 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains: decode
|
||||
process_name: certutil.exe
|
||||
process.cmd_line|contains: decode
|
||||
process.file.name: certutil.exe
|
||||
condition: (selection1)
|
||||
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
|
||||
@@ -45,34 +45,10 @@ tags:
|
||||
on disk.
|
||||
mitre_attack_id:
|
||||
- T1140
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 40
|
||||
|
||||
@@ -16,13 +16,13 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: certutil.exe
|
||||
process.file.name: certutil.exe
|
||||
selection2:
|
||||
process|contains: split
|
||||
process.cmd_line|contains: split
|
||||
selection3:
|
||||
process|contains: urlcache
|
||||
process.cmd_line|contains: urlcache
|
||||
selection4:
|
||||
process|contains: urlcache
|
||||
process.cmd_line|contains: urlcache
|
||||
condition: selection1 and selection2 and selection3 or selection4
|
||||
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
|
||||
@@ -45,34 +45,10 @@ tags:
|
||||
on endpoint $dest_device_id$ by user $dest_user_id$ attempting to download a file.
|
||||
mitre_attack_id:
|
||||
- T1105
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 90
|
||||
|
||||
@@ -16,13 +16,13 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: certutil.exe
|
||||
process.file.name: certutil.exe
|
||||
selection2:
|
||||
process|contains: split
|
||||
process.cmd_line|contains: split
|
||||
selection3:
|
||||
process|contains: verifyctl
|
||||
process.cmd_line|contains: verifyctl
|
||||
selection4:
|
||||
process|contains: verifyctl
|
||||
process.cmd_line|contains: verifyctl
|
||||
condition: selection1 and selection2 and selection3 or selection4
|
||||
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
|
||||
@@ -46,34 +46,10 @@ tags:
|
||||
on endpoint $dest_device_id$ by user $dest_user_id$ attempting to download a file.
|
||||
mitre_attack_id:
|
||||
- T1105
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 90
|
||||
|
||||
@@ -17,8 +17,8 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|re: inprocserver32
|
||||
process_name: reg.exe
|
||||
process.cmd_line|re: inprocserver32
|
||||
process.file.name: reg.exe
|
||||
condition: selection1
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -40,34 +40,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1546.015
|
||||
- T1546
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 64
|
||||
|
||||
@@ -27,13 +27,13 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- '-F '
|
||||
- '--data '
|
||||
- '-d '
|
||||
- '--upload-file '
|
||||
- '-T '
|
||||
process_name|re: curl.exe
|
||||
process.file.name|re: curl.exe
|
||||
condition: selection1
|
||||
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
|
||||
@@ -56,34 +56,10 @@ tags:
|
||||
destination.
|
||||
mitre_attack_id:
|
||||
- T1105
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 80
|
||||
|
||||
@@ -11,11 +11,11 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name|re: mpcmdrun.exe
|
||||
process.file.name|re: mpcmdrun.exe
|
||||
selection2:
|
||||
process_path|re: \\windows defender
|
||||
process.file.path|re: \\windows defender
|
||||
selection3:
|
||||
process_path|re: \\microsoft\\windows defender\\platform
|
||||
process.file.path|re: \\microsoft\\windows defender\\platform
|
||||
condition: selection1 and not selection2 and not selection3
|
||||
how_to_implement: Collect endpoint data such as sysmon or 4688 events.
|
||||
known_false_positives: False positives may be present and filtering may be required.
|
||||
@@ -33,24 +33,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1036
|
||||
- T1036.003
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- _time
|
||||
- dest_user_id
|
||||
- process_path
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 56
|
||||
|
||||
@@ -15,10 +15,10 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- /s
|
||||
- -S
|
||||
process_name: diskshadow.exe
|
||||
process.file.name: diskshadow.exe
|
||||
condition: selection1
|
||||
how_to_implement: To successfully implement this search you need to be ingesting information
|
||||
on processes that include the name of the process responsible for the changes from
|
||||
@@ -37,34 +37,10 @@ tags:
|
||||
on endpoint $dest_device_id$ by user $dest_user_id$ attempting to run a script.
|
||||
mitre_attack_id:
|
||||
- T1218
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 49
|
||||
|
||||
@@ -15,7 +15,7 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name|re:
|
||||
process.file.name|re:
|
||||
- MSBuild.exe
|
||||
- comsvcconfig.exe
|
||||
- dfsradmin.exe
|
||||
@@ -60,7 +60,7 @@ search:
|
||||
- filehistory.exe
|
||||
- secureassessmentbrowser.exe
|
||||
selection2:
|
||||
process_path|re:
|
||||
process.file.path|re:
|
||||
- \\windows\\system32
|
||||
- \\windows\\syswow64
|
||||
- \\windows\\adws
|
||||
@@ -95,24 +95,10 @@ tags:
|
||||
- T1036.003
|
||||
- T1218
|
||||
- T1218.004
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- _time
|
||||
- dest_user_id
|
||||
- process_path
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 49
|
||||
|
||||
@@ -28,10 +28,10 @@ description: 'The following analytic identifies the usage of Exchange PowerShell
|
||||
This cmdlet returns all mail-enabled objects (for example, mailboxes, mail users,
|
||||
mail contacts, and distribution groups).'
|
||||
data_source:
|
||||
- Windows Security 4688
|
||||
- Powershell 4104
|
||||
search:
|
||||
selection1:
|
||||
process|re:
|
||||
process.cmd_line|re:
|
||||
- get-recipient
|
||||
- new-mailboxsearch
|
||||
- new-managementroleassignment
|
||||
@@ -63,22 +63,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1059
|
||||
- T1059.001
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 32
|
||||
|
||||
@@ -14,20 +14,20 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- ms-msdt:/id
|
||||
- ms-msdt:-id
|
||||
- ms-msdt:/id
|
||||
- 'ms-msdt:'
|
||||
- msdt
|
||||
process_name: msdt.exe
|
||||
process.file.name: msdt.exe
|
||||
selection2:
|
||||
process|re:
|
||||
process.cmd_line|re:
|
||||
- .xml
|
||||
- it_rebrowseforfile=
|
||||
- it_browseforfile=
|
||||
selection3:
|
||||
process|re: pcwdiagnostic
|
||||
process.cmd_line|re: pcwdiagnostic
|
||||
condition: selection1 and selection2 and selection3
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -54,30 +54,10 @@ tags:
|
||||
of indirect command execution.
|
||||
mitre_attack_id:
|
||||
- T1218
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 100
|
||||
|
||||
@@ -17,10 +17,10 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- https://
|
||||
- http://
|
||||
process_name: explorer.exe
|
||||
process.file.name: explorer.exe
|
||||
condition: (selection1)
|
||||
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
|
||||
@@ -40,34 +40,10 @@ tags:
|
||||
destination to download an additional payload.
|
||||
mitre_attack_id:
|
||||
- T1105
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 25
|
||||
|
||||
@@ -12,9 +12,9 @@ description: The following analytic identifies native living off the land binari
|
||||
regedit.exe) and DotNet binaries. It also does not include the category of OtherMSBinaries.
|
||||
data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
search:
|
||||
selection1:
|
||||
process_name:
|
||||
process.file.name:
|
||||
- bitsadmin.exe
|
||||
- certoc.exe
|
||||
- certreq.exe
|
||||
@@ -96,7 +96,7 @@ search:
|
||||
- wuauclt.exe
|
||||
- xwizard.exe
|
||||
selection2:
|
||||
process_path|re:
|
||||
process.file.path|re:
|
||||
- (?i)\\windows\\system32
|
||||
- (?i)\\windows\\syswow64
|
||||
- (?i)\\windows\\networkcontrolle
|
||||
@@ -128,24 +128,10 @@ tags:
|
||||
- T1036.003
|
||||
- T1218
|
||||
- T1218.004
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- _time
|
||||
- dest_user_id
|
||||
- process_path
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 49
|
||||
|
||||
@@ -13,7 +13,7 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name:
|
||||
process.file.name:
|
||||
- wscript.exe
|
||||
- cscript.exe
|
||||
- searchprotocolhost.exe
|
||||
@@ -23,7 +23,7 @@ search:
|
||||
- scrcons.exe
|
||||
- cmd.exe
|
||||
- powershell.exe
|
||||
parent_process_name|endswith: mshta.exe
|
||||
actor.process.file.name|endswith: mshta.exe
|
||||
condition: selection1
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -47,34 +47,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1218.005
|
||||
- T1218
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 80
|
||||
|
||||
@@ -16,10 +16,10 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- https://
|
||||
- http://
|
||||
process_name: mshta.exe
|
||||
process.file.name: mshta.exe
|
||||
condition: (selection1)
|
||||
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
|
||||
@@ -45,34 +45,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1218.005
|
||||
- T1218
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 80
|
||||
|
||||
@@ -14,11 +14,11 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- about
|
||||
- javascript
|
||||
- vbscript
|
||||
process_name: mshta.exe
|
||||
process.file.name: mshta.exe
|
||||
condition: (selection1)
|
||||
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
|
||||
@@ -44,34 +44,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1218.005
|
||||
- T1218
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 80
|
||||
|
||||
@@ -14,12 +14,12 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- '/f '
|
||||
- '-f '
|
||||
process_name: odbcconf.exe
|
||||
process.file.name: odbcconf.exe
|
||||
selection2:
|
||||
process|contains: .rsp
|
||||
process.cmd_line|contains: .rsp
|
||||
condition: (selection1) and selection2
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -41,30 +41,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1218.008
|
||||
- T1218
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 42
|
||||
|
||||
@@ -20,11 +20,11 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: ntdsutil.exe
|
||||
process.file.name: ntdsutil.exe
|
||||
selection2:
|
||||
process|contains: create
|
||||
process.cmd_line|contains: create
|
||||
selection3:
|
||||
process|contains: ntds
|
||||
process.cmd_line|contains: ntds
|
||||
condition: selection1 and (selection2 and selection3)
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -50,30 +50,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1003.003
|
||||
- T1003
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 50
|
||||
|
||||
@@ -19,14 +19,14 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- '-ma '
|
||||
- '-mm '
|
||||
process_name:
|
||||
process.file.name:
|
||||
- procdump64.exe
|
||||
- procdump.exe
|
||||
selection2:
|
||||
process|contains: lsass
|
||||
process.cmd_line|contains: lsass
|
||||
condition: (selection1) and selection2
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -49,30 +49,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1003.001
|
||||
- T1003
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 80
|
||||
|
||||
+4
-28
@@ -18,7 +18,7 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name:
|
||||
process.file.name:
|
||||
- powershell_ise.exe
|
||||
- powershell.exe
|
||||
- sqltoolsps.exe
|
||||
@@ -26,7 +26,7 @@ search:
|
||||
- pwsh.exe
|
||||
- pwsh.exe
|
||||
selection2:
|
||||
process|re: '(?i)[\-|\/]w(in*d*o*w*s*t*y*l*e*)*\s+[^-]'
|
||||
process.cmd_line|re: (?i)[\-|\/]w(in*d*o*w*s*t*y*l*e*)*\s+[^-]
|
||||
condition: selection1 and not selection2
|
||||
how_to_implement: You must be ingesting data that records process activity from your
|
||||
hosts to populate the Endpoint data model in the Processes node. You must also be
|
||||
@@ -55,34 +55,10 @@ tags:
|
||||
$dest$ executed by user $user$.
|
||||
mitre_attack_id:
|
||||
- T1020
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 35
|
||||
|
||||
+5
-17
@@ -14,12 +14,12 @@ description: The following analytic utilizes PowerShell Script Block Logging (Ev
|
||||
alike use may abuse Get-ADUSer to enumerate these accounts and attempt to crack
|
||||
their passwords offline.
|
||||
data_source:
|
||||
- Windows Security 4688
|
||||
- Powershell 4104
|
||||
search:
|
||||
selection1:
|
||||
process|contains: '4194304'
|
||||
process.cmd_line|contains: '4194304'
|
||||
selection2:
|
||||
process|re: get-aduser
|
||||
process.cmd_line|re: get-aduser
|
||||
condition: selection1 and selection2
|
||||
how_to_implement: To successfully implement this analytic, you will need to enable
|
||||
PowerShell Script Block Logging on some or all endpoints. Additional setup here
|
||||
@@ -40,22 +40,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1558
|
||||
- T1558.004
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 54
|
||||
|
||||
+5
-17
@@ -14,12 +14,12 @@ description: The following analytic utilizes PowerShell Script Block Logging (Ev
|
||||
Red Teams and adversaries alike use may leverage PowerView to enumerate these accounts
|
||||
and attempt to crack their passwords offline.
|
||||
data_source:
|
||||
- Windows Security 4688
|
||||
- Powershell 4104
|
||||
search:
|
||||
selection1:
|
||||
process|re: preauthnotrequired
|
||||
process.cmd_line|re: preauthnotrequired
|
||||
selection2:
|
||||
process|re: get-domainuser
|
||||
process.cmd_line|re: get-domainuser
|
||||
condition: selection1 and selection2
|
||||
how_to_implement: To successfully implement this analytic, you will need to enable
|
||||
PowerShell Script Block Logging on some or all endpoints. Additional setup here
|
||||
@@ -39,22 +39,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1558
|
||||
- T1558.004
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 54
|
||||
|
||||
@@ -14,7 +14,7 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name:
|
||||
process.file.name:
|
||||
- powershell_ise.exe
|
||||
- powershell.exe
|
||||
- sqltoolsps.exe
|
||||
@@ -22,7 +22,7 @@ search:
|
||||
- pwsh.exe
|
||||
- pwsh.exe
|
||||
selection2:
|
||||
process|re: downloadfile
|
||||
process.cmd_line|re: downloadfile
|
||||
condition: selection1 and selection2
|
||||
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
|
||||
@@ -49,34 +49,10 @@ tags:
|
||||
within PowerShell.
|
||||
mitre_attack_id:
|
||||
- T1020
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 35
|
||||
|
||||
@@ -16,7 +16,7 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name:
|
||||
process.file.name:
|
||||
- powershell_ise.exe
|
||||
- powershell.exe
|
||||
- sqltoolsps.exe
|
||||
@@ -24,7 +24,7 @@ search:
|
||||
- pwsh.exe
|
||||
- pwsh.exe
|
||||
selection2:
|
||||
process|re: start-bitstransfer
|
||||
process.cmd_line|re: start-bitstransfer
|
||||
condition: selection1 and selection2
|
||||
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
|
||||
@@ -47,34 +47,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1197
|
||||
- T1105
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 49
|
||||
|
||||
@@ -13,11 +13,11 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: rasautou.exe
|
||||
process.file.name: rasautou.exe
|
||||
selection2:
|
||||
process|re: '-p '
|
||||
process.cmd_line|re: '-p '
|
||||
selection3:
|
||||
process|re: '-d '
|
||||
process.cmd_line|re: '-d '
|
||||
condition: selection1 and selection2 and selection3
|
||||
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
|
||||
@@ -44,34 +44,10 @@ tags:
|
||||
- T1055.001
|
||||
- T1218
|
||||
- T1055
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 80
|
||||
|
||||
+4
-17
@@ -13,9 +13,9 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: acccheckconsole.exe
|
||||
process.file.name: acccheckconsole.exe
|
||||
selection2:
|
||||
process_path|re: \\program files (x86)\\windows kits\\10\\bin\\10.0.22000.0\\arm64\\accchecker
|
||||
process.file.path|re: \\program files (x86)\\windows kits\\10\\bin\\10.0.22000.0\\arm64\\accchecker
|
||||
condition: selection1 and not selection2
|
||||
how_to_implement: To successfully implement this search, you must be ingesting logs
|
||||
with the process name, command-line arguments, and parent processes from your endpoints.
|
||||
@@ -39,23 +39,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1036
|
||||
- T1036.003
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- _time
|
||||
- dest_user_id
|
||||
- process_path
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 14
|
||||
|
||||
+4
-17
@@ -13,9 +13,9 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: adplus.exe
|
||||
process.file.name: adplus.exe
|
||||
selection2:
|
||||
process_path|re: \\program files (x86)\\windows kits\\10\\debuggers\\x86
|
||||
process.file.path|re: \\program files (x86)\\windows kits\\10\\debuggers\\x86
|
||||
condition: selection1 and not selection2
|
||||
how_to_implement: To successfully implement this search, you must be ingesting logs
|
||||
with the process name, command-line arguments, and parent processes from your endpoints.
|
||||
@@ -39,23 +39,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1036
|
||||
- T1036.003
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- _time
|
||||
- dest_user_id
|
||||
- process_path
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 14
|
||||
|
||||
+4
-17
@@ -13,9 +13,9 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: advpack.dll
|
||||
process.file.name: advpack.dll
|
||||
selection2:
|
||||
process_path|re: \\windows\\syswow64
|
||||
process.file.path|re: \\windows\\syswow64
|
||||
condition: selection1 and not selection2
|
||||
how_to_implement: To successfully implement this search, you must be ingesting logs
|
||||
with the process name, command-line arguments, and parent processes from your endpoints.
|
||||
@@ -39,23 +39,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1036
|
||||
- T1036.003
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- _time
|
||||
- dest_user_id
|
||||
- process_path
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 14
|
||||
|
||||
+4
-17
@@ -13,9 +13,9 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: agentexecutor.exe
|
||||
process.file.name: agentexecutor.exe
|
||||
selection2:
|
||||
process_path|re: \\program files (x86)
|
||||
process.file.path|re: \\program files (x86)
|
||||
condition: selection1 and not selection2
|
||||
how_to_implement: To successfully implement this search, you must be ingesting logs
|
||||
with the process name, command-line arguments, and parent processes from your endpoints.
|
||||
@@ -39,23 +39,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1036
|
||||
- T1036.003
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- _time
|
||||
- dest_user_id
|
||||
- process_path
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 14
|
||||
|
||||
+4
-17
@@ -13,9 +13,9 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: appinstaller.exe
|
||||
process.file.name: appinstaller.exe
|
||||
selection2:
|
||||
process_path|re: \\program files\\windowsapps\\microsoft.desktopappinstaller_1.11.2521.0_x64__8wekyb3d8bbwe
|
||||
process.file.path|re: \\program files\\windowsapps\\microsoft.desktopappinstaller_1.11.2521.0_x64__8wekyb3d8bbwe
|
||||
condition: selection1 and not selection2
|
||||
how_to_implement: To successfully implement this search, you must be ingesting logs
|
||||
with the process name, command-line arguments, and parent processes from your endpoints.
|
||||
@@ -39,23 +39,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1036
|
||||
- T1036.003
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- _time
|
||||
- dest_user_id
|
||||
- process_path
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 14
|
||||
|
||||
+4
-17
@@ -13,9 +13,9 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: appvlp.exe
|
||||
process.file.name: appvlp.exe
|
||||
selection2:
|
||||
process_path|re: \\program files (x86)\\microsoft office\\root\\client
|
||||
process.file.path|re: \\program files (x86)\\microsoft office\\root\\client
|
||||
condition: selection1 and not selection2
|
||||
how_to_implement: To successfully implement this search, you must be ingesting logs
|
||||
with the process name, command-line arguments, and parent processes from your endpoints.
|
||||
@@ -39,23 +39,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1036
|
||||
- T1036.003
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- _time
|
||||
- dest_user_id
|
||||
- process_path
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 14
|
||||
|
||||
+4
-17
@@ -13,9 +13,9 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: aspnet_compiler.exe
|
||||
process.file.name: aspnet_compiler.exe
|
||||
selection2:
|
||||
process_path|re: \\windows\\microsoft.net\\framework64\\v4.0.30319
|
||||
process.file.path|re: \\windows\\microsoft.net\\framework64\\v4.0.30319
|
||||
condition: selection1 and not selection2
|
||||
how_to_implement: To successfully implement this search, you must be ingesting logs
|
||||
with the process name, command-line arguments, and parent processes from your endpoints.
|
||||
@@ -39,23 +39,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1036
|
||||
- T1036.003
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- _time
|
||||
- dest_user_id
|
||||
- process_path
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 14
|
||||
|
||||
+4
-17
@@ -13,9 +13,9 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: at.exe
|
||||
process.file.name: at.exe
|
||||
selection2:
|
||||
process_path|re: \\windows\\syswow64
|
||||
process.file.path|re: \\windows\\syswow64
|
||||
condition: selection1 and not selection2
|
||||
how_to_implement: To successfully implement this search, you must be ingesting logs
|
||||
with the process name, command-line arguments, and parent processes from your endpoints.
|
||||
@@ -39,23 +39,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1036
|
||||
- T1036.003
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- _time
|
||||
- dest_user_id
|
||||
- process_path
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 14
|
||||
|
||||
+4
-17
@@ -13,9 +13,9 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: atbroker.exe
|
||||
process.file.name: atbroker.exe
|
||||
selection2:
|
||||
process_path|re: \\windows\\syswow64
|
||||
process.file.path|re: \\windows\\syswow64
|
||||
condition: selection1 and not selection2
|
||||
how_to_implement: To successfully implement this search, you must be ingesting logs
|
||||
with the process name, command-line arguments, and parent processes from your endpoints.
|
||||
@@ -39,23 +39,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1036
|
||||
- T1036.003
|
||||
observable:
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- _time
|
||||
- dest_user_id
|
||||
- process_path
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 14
|
||||
|
||||
@@ -12,10 +12,10 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|re: minidump
|
||||
process_name: 'rundll32.exe'
|
||||
process.cmd_line|re: minidump
|
||||
process.file.name: rundll32.exe
|
||||
selection2:
|
||||
process|re: comsvcs.dll
|
||||
process.cmd_line|re: comsvcs.dll
|
||||
condition: selection1 and selection2
|
||||
how_to_implement: You must be ingesting endpoint data that tracks process activity,
|
||||
including Windows command line logging. You can see how we test this with [Event
|
||||
@@ -37,23 +37,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1003.003
|
||||
- T1003
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Actor
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- process_name
|
||||
- _tenant
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Actions on Objectives
|
||||
risk_score: 40
|
||||
|
||||
@@ -16,11 +16,11 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- about
|
||||
- javascript
|
||||
- vbscript
|
||||
process_name: rundll32.exe
|
||||
process.file.name: rundll32.exe
|
||||
condition: selection1
|
||||
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
|
||||
@@ -45,34 +45,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1218
|
||||
- T1218.005
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 56
|
||||
|
||||
@@ -15,10 +15,10 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: MSBuild.exe
|
||||
parent_process_name|re:
|
||||
- 'cscript.exe'
|
||||
- 'wscript.exe'
|
||||
process.file.name: MSBuild.exe
|
||||
actor.process.file.name|re:
|
||||
- cscript.exe
|
||||
- wscript.exe
|
||||
condition: selection1
|
||||
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
|
||||
@@ -42,34 +42,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1127.001
|
||||
- T1127
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process Name
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 80
|
||||
|
||||
+4
-24
@@ -15,8 +15,8 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains: -decompile
|
||||
process_name: hh.exe
|
||||
process.cmd_line|contains: -decompile
|
||||
process.file.name: hh.exe
|
||||
condition: selection1
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -40,30 +40,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1218.001
|
||||
- T1218
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 90
|
||||
|
||||
+4
-24
@@ -20,10 +20,10 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- https://
|
||||
- http://
|
||||
process_name: hh.exe
|
||||
process.file.name: hh.exe
|
||||
condition: (selection1)
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -50,30 +50,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1218.001
|
||||
- T1218
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 90
|
||||
|
||||
+4
-24
@@ -23,10 +23,10 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- 'mk:@MSITStore:'
|
||||
- 'its:'
|
||||
process_name: hh.exe
|
||||
process.file.name: hh.exe
|
||||
condition: (selection1)
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -53,30 +53,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1218.001
|
||||
- T1218
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 72
|
||||
|
||||
+4
-24
@@ -12,10 +12,10 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- '-y '
|
||||
- '/y '
|
||||
process_name: msiexec.exe
|
||||
process.file.name: msiexec.exe
|
||||
condition: (selection1)
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -36,30 +36,10 @@ tags:
|
||||
by user $dest_user_id$ attempting to register a file.
|
||||
mitre_attack_id:
|
||||
- T1218.007
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 35
|
||||
|
||||
+4
-24
@@ -12,10 +12,10 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- https://
|
||||
- http://
|
||||
process_name: msiexec.exe
|
||||
process.file.name: msiexec.exe
|
||||
condition: (selection1)
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -36,30 +36,10 @@ tags:
|
||||
by user $dest_user_id$ attempting to download a file.
|
||||
mitre_attack_id:
|
||||
- T1218.007
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 35
|
||||
|
||||
+4
-24
@@ -12,10 +12,10 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process|contains:
|
||||
process.cmd_line|contains:
|
||||
- '-z '
|
||||
- '/z '
|
||||
process_name: msiexec.exe
|
||||
process.file.name: msiexec.exe
|
||||
condition: (selection1)
|
||||
how_to_implement: To successfully implement this search, you need to be ingesting
|
||||
logs with the process name, parent process, and command-line executions from your
|
||||
@@ -36,30 +36,10 @@ tags:
|
||||
by user $dest_user_id$ attempting to unregister a DLL.
|
||||
mitre_attack_id:
|
||||
- T1218.007
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 35
|
||||
|
||||
@@ -16,8 +16,8 @@ data_source:
|
||||
- Windows Security 4688
|
||||
search:
|
||||
selection1:
|
||||
process_name: MSBuild.exe
|
||||
parent_process_name|re: wmiprvse.exe
|
||||
process.file.name: MSBuild.exe
|
||||
actor.process.file.name|re: wmiprvse.exe
|
||||
condition: selection1
|
||||
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
|
||||
@@ -41,34 +41,10 @@ tags:
|
||||
mitre_attack_id:
|
||||
- T1127
|
||||
- T1127.001
|
||||
observable:
|
||||
- name: dest_user_id
|
||||
type: User
|
||||
role:
|
||||
- Victim
|
||||
- name: dest_device_id
|
||||
type: Hostname
|
||||
role:
|
||||
- Victim
|
||||
- name: parent_process_name
|
||||
type: Process Name
|
||||
role:
|
||||
- Parent Process
|
||||
- name: process_name
|
||||
type: Process
|
||||
role:
|
||||
- Child Process
|
||||
observable: []
|
||||
product:
|
||||
- Splunk Behavioral Analytics
|
||||
required_fields:
|
||||
- _time
|
||||
- dest_device_id
|
||||
- process_name
|
||||
- parent_process_name
|
||||
- process_path
|
||||
- dest_user_id
|
||||
- process
|
||||
- process
|
||||
required_fields: []
|
||||
kill_chain_phases:
|
||||
- Exploitation
|
||||
risk_score: 80
|
||||
|
||||
+22
-18
@@ -11,18 +11,18 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
(process_file_name="WinRAR.exe" OR like(process_file_name, "7z%") OR like(process_file_name,
|
||||
"winzip%")) AND (like(actor_process_file_name, "%powershell.exe") OR like(actor_process_file_name,
|
||||
"%cmd.exe"))
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where (process_file_name="WinRAR.exe" OR like(process_file_name, "7z%")
|
||||
OR like(process_file_name, "winzip%")) AND (like(actor_process_file_name, "%powershell.exe")
|
||||
OR like(actor_process_file_name, "%cmd.exe"))
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -30,11 +30,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.process.file.name", actor_process_file_name),
|
||||
"message", concat("Anomalous usage of Archive Tools has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Anomalous usage of Archive Tools has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -59,11 +59,15 @@ references:
|
||||
- https://attack.mitre.org/techniques/T1560/001/
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 42
|
||||
security_domain: endpoint
|
||||
risk_severity: low
|
||||
@@ -78,7 +82,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+22
-16
@@ -14,16 +14,17 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
like(process_cmd_line, "%delete%") AND process_file_name="sc.exe"
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where process_file_name="sc.exe" AND like(process_cmd_line, "%delete%")
|
||||
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -31,11 +32,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Attempt To Delete Services has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Attempt To Delete Services has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -62,10 +63,15 @@ references:
|
||||
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1543.003/T1543.003.md
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 36
|
||||
security_domain: endpoint
|
||||
risk_severity: low
|
||||
@@ -80,7 +86,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+22
-17
@@ -14,17 +14,17 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
like(process_cmd_line, "%config%") AND like(process_cmd_line, "%disabled%") AND
|
||||
process_file_name="sc.exe"
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where like(process_cmd_line, "%config%") AND like(process_cmd_line, "%disabled%")
|
||||
AND process_file_name="sc.exe"
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -32,11 +32,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Attempt To Disable Services has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Attempt To Disable Services has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -64,10 +64,15 @@ references:
|
||||
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1562.001/T1562.001.md#atomic-test-14---disable-arbitrary-security-windows-service
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 36
|
||||
security_domain: endpoint
|
||||
risk_severity: low
|
||||
@@ -82,7 +87,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+21
-16
@@ -12,16 +12,16 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
(process_file_name="reg.exe" OR process_file_name="cmd.exe") AND (match_regex(process_cmd_line,
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where (process_file_name="reg.exe" OR process_file_name="cmd.exe") AND (match_regex(process_cmd_line,
|
||||
/(?i)HKEY_LOCAL_MACHINE\\System/)=true OR match_regex(process_cmd_line, /(?i)HKEY_LOCAL_MACHINE\\SAM/)=true
|
||||
OR match_regex(process_cmd_line, /(?i)HKEY_LOCAL_MACHINE\\Security/)=true OR match_regex(process_cmd_line,
|
||||
/(?i)HKLM\\System/)=true OR match_regex(process_cmd_line, /(?i)HKLM\\SAM/)=true
|
||||
@@ -34,11 +34,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Attempted Credential Dump From Registry via Reg exe has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Attempted Credential Dump From Registry via Reg exe has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -64,10 +64,15 @@ references:
|
||||
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1003.002/T1003.002.md#atomic-test-1---registry-dump-of-sam-creds-and-secrets
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 63
|
||||
security_domain: endpoint
|
||||
risk_severity: medium
|
||||
@@ -82,7 +87,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+22
-17
@@ -12,17 +12,17 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
process_file_name="bcdedit.exe" AND (like(process_cmd_line, "%no%") AND like(process_cmd_line,
|
||||
"%recoveryenabled%"))
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where process_file_name="bcdedit.exe" AND (like(process_cmd_line, "%no%")
|
||||
AND like(process_cmd_line, "%recoveryenabled%"))
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -30,11 +30,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("BCDEdit Failure Recovery Modification has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("BCDEdit Failure Recovery Modification has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -58,10 +58,15 @@ references:
|
||||
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1490/T1490.md#atomic-test-4---windows---disable-windows-recovery-console-repair
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 80
|
||||
security_domain: endpoint
|
||||
risk_severity: high
|
||||
@@ -76,7 +81,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
@@ -12,16 +12,17 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
like(process_cmd_line, "%/W:%") AND process_file_name="cipher.exe"
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where process_file_name="cipher.exe" AND like(process_cmd_line, "%/W:%")
|
||||
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -29,11 +30,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Clear Unallocated Sector Using Cipher App has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Clear Unallocated Sector Using Cipher App has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -58,10 +59,15 @@ references:
|
||||
- https://www.sophos.com/en-us/medialibrary/PDFs/technical-papers/sophoslabs-ransomware-behavior-report.pdf
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 90
|
||||
security_domain: endpoint
|
||||
risk_severity: high
|
||||
@@ -76,7 +82,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+22
-17
@@ -15,17 +15,17 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
like(process_cmd_line, "%user%") AND like(process_cmd_line, "%/delete%") AND (process_file_name="net.exe"
|
||||
OR process_file_name="net1.exe")
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where like(process_cmd_line, "%user%") AND like(process_cmd_line, "%/delete%")
|
||||
AND (process_file_name="net.exe" OR process_file_name="net1.exe")
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -33,11 +33,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Delete A Net User has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Delete A Net User has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -63,10 +63,15 @@ references:
|
||||
- https://thedfirreport.com/2020/04/20/sqlserver-or-the-miner-in-the-basement/
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 49
|
||||
security_domain: endpoint
|
||||
risk_severity: low
|
||||
@@ -81,7 +86,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+23
-17
@@ -13,17 +13,18 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
match_regex(process_cmd_line, /(?i)deny/)=true AND (process_file_name="icacls.exe"
|
||||
OR process_file_name="xcacls.exe" OR process_file_name="cacls.exe")
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where (process_file_name="icacls.exe" OR process_file_name="xcacls.exe"
|
||||
OR process_file_name="cacls.exe") AND match_regex(process_cmd_line, /(?i)deny/)=true
|
||||
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -31,11 +32,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Deny Permission using Cacls Utility has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Deny Permission using Cacls Utility has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -61,10 +62,15 @@ references:
|
||||
- https://thedfirreport.com/2020/04/20/sqlserver-or-the-miner-in-the-basement/
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 35
|
||||
security_domain: endpoint
|
||||
risk_severity: low
|
||||
@@ -79,7 +85,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
@@ -13,18 +13,18 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
(actor_process_file_name="winword.exe" OR actor_process_file_name="excel.exe" OR
|
||||
actor_process_file_name="outlook.exe" OR actor_process_file_name="acrobat.exe" OR
|
||||
actor_process_file_name="acrord32.exe" OR actor_process_file_name="iexplore.exe"
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where (actor_process_file_name="winword.exe" OR actor_process_file_name="excel.exe"
|
||||
OR actor_process_file_name="outlook.exe" OR actor_process_file_name="acrobat.exe"
|
||||
OR actor_process_file_name="acrord32.exe" OR actor_process_file_name="iexplore.exe"
|
||||
OR actor_process_file_name="opera.exe" OR actor_process_file_name="firefox.exe"
|
||||
OR actor_process_file_name="powershell.exe") OR (actor_process_file_name="java.exe"
|
||||
AND (NOT match_regex(actor_process_file_name, /(?i)patch1-Hotfix1a/)=true)) OR (actor_process_file_name="chrome.exe"
|
||||
@@ -36,11 +36,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.cmd_line", process_cmd_line, "actor.process.file.name", actor_process_file_name),
|
||||
"message", concat("Detect Prohibited Applications Spawning cmd exe has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Detect Prohibited Applications Spawning cmd exe has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -65,10 +65,15 @@ references:
|
||||
- https://attack.mitre.org/techniques/T1059/
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 35
|
||||
security_domain: endpoint
|
||||
risk_severity: low
|
||||
@@ -83,7 +88,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+27
-21
@@ -16,21 +16,22 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
(like(process_cmd_line, "%--multi-thread-streams%") OR like(process_cmd_line, "%--transfers%")
|
||||
OR like(process_cmd_line, "%--auto-confirm%") OR like(process_cmd_line, "%--ignore-existing%")
|
||||
OR like(process_cmd_line, "%--no-check-certificate%") OR like(process_cmd_line,
|
||||
"%--progress%") OR like(process_cmd_line, "%--config%") OR like(process_cmd_line,
|
||||
"%ftp%") OR like(process_cmd_line, "%pcloud%") OR like(process_cmd_line, "%mega%")
|
||||
OR like(process_cmd_line, "%copy%")) AND process_file_name="rclone.exe"
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where (like(process_cmd_line, "%--multi-thread-streams%") OR like(process_cmd_line,
|
||||
"%--transfers%") OR like(process_cmd_line, "%--auto-confirm%") OR like(process_cmd_line,
|
||||
"%--ignore-existing%") OR like(process_cmd_line, "%--no-check-certificate%") OR
|
||||
like(process_cmd_line, "%--progress%") OR like(process_cmd_line, "%--config%") OR
|
||||
like(process_cmd_line, "%ftp%") OR like(process_cmd_line, "%pcloud%") OR like(process_cmd_line,
|
||||
"%mega%") OR like(process_cmd_line, "%copy%")) AND process_file_name="rclone.exe"
|
||||
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -38,11 +39,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Detect RClone Command-Line Usage has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Detect RClone Command-Line Usage has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -70,10 +71,15 @@ references:
|
||||
- https://thedfirreport.com/2021/11/29/continuing-the-bazar-ransomware-story/
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 35
|
||||
security_domain: endpoint
|
||||
risk_severity: low
|
||||
@@ -88,7 +94,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+22
-17
@@ -13,17 +13,17 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
like(process_cmd_line, "%user%") AND like(process_cmd_line, "%/active:no%") AND
|
||||
(process_file_name="net.exe" OR process_file_name="net1.exe")
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where like(process_cmd_line, "%user%") AND like(process_cmd_line, "%/active:no%")
|
||||
AND (process_file_name="net.exe" OR process_file_name="net1.exe")
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -31,11 +31,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Disable Net User Account has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Disable Net User Account has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -62,10 +62,15 @@ references:
|
||||
- https://thedfirreport.com/2020/04/20/sqlserver-or-the-miner-in-the-basement/
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 49
|
||||
security_domain: endpoint
|
||||
risk_severity: low
|
||||
@@ -80,7 +85,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+23
-18
@@ -15,18 +15,18 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
(like(process_cmd_line, "%-retry=%") OR like(process_cmd_line, "%-type=%") OR like(process_cmd_line,
|
||||
"%-q=%") OR like(process_cmd_line, "%-qt=%") OR like(process_cmd_line, "%-querytype=%"))
|
||||
AND process_file_name="nslookup.exe"
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where (like(process_cmd_line, "%-retry=%") OR like(process_cmd_line, "%-type=%")
|
||||
OR like(process_cmd_line, "%-q=%") OR like(process_cmd_line, "%-qt=%") OR like(process_cmd_line,
|
||||
"%-querytype=%")) AND process_file_name="nslookup.exe"
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -34,11 +34,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("DNS Exfiltration Using Nslookup App has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("DNS Exfiltration Using Nslookup App has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -65,10 +65,15 @@ references:
|
||||
- https://www.microsoft.com/security/blog/2021/01/20/deep-dive-into-the-solorigate-second-stage-activation-from-sunburst-to-teardrop-and-raindrop/
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 72
|
||||
security_domain: endpoint
|
||||
risk_severity: medium
|
||||
@@ -83,7 +88,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+22
-16
@@ -12,16 +12,17 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
like(process_cmd_line, "%setzerodata%") AND process_file_name="fsutil.exe"
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where like(process_cmd_line, "%setzerodata%") AND process_file_name="fsutil.exe"
|
||||
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -29,11 +30,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Fsutil Zeroing File has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Fsutil Zeroing File has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -60,10 +61,15 @@ references:
|
||||
- https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-file
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 54
|
||||
security_domain: endpoint
|
||||
risk_severity: medium
|
||||
@@ -78,7 +84,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+23
-17
@@ -13,17 +13,18 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
match_regex(process_cmd_line, /(?i)grant/)=true AND (process_file_name="icacls.exe"
|
||||
OR process_file_name="xcacls.exe" OR process_file_name="cacls.exe")
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where (process_file_name="icacls.exe" OR process_file_name="xcacls.exe"
|
||||
OR process_file_name="cacls.exe") AND match_regex(process_cmd_line, /(?i)grant/)=true
|
||||
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -31,11 +32,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Grant Permission Using Cacls Utility has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Grant Permission Using Cacls Utility has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -61,10 +62,15 @@ references:
|
||||
- https://thedfirreport.com/2020/04/20/sqlserver-or-the-miner-in-the-basement/
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 35
|
||||
security_domain: endpoint
|
||||
risk_severity: low
|
||||
@@ -79,7 +85,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
@@ -13,16 +13,17 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
match_regex(process_cmd_line, /(?i)/)=true AND process_file_name="attrib.exe"
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where process_file_name="attrib.exe" AND match_regex(process_cmd_line, /(?i)/)=true
|
||||
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -30,11 +31,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Hiding Files And Directories With Attrib exe has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Hiding Files And Directories With Attrib exe has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -61,10 +62,15 @@ references:
|
||||
- https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/attrib
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 72
|
||||
security_domain: endpoint
|
||||
risk_severity: medium
|
||||
@@ -79,7 +85,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
@@ -15,16 +15,16 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
(match_regex(process_cmd_line, /(?i)S-1-1-0:/)=true OR match_regex(process_cmd_line,
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where (match_regex(process_cmd_line, /(?i)S-1-1-0:/)=true OR match_regex(process_cmd_line,
|
||||
/(?i)SYSTEM:/)=true OR match_regex(process_cmd_line, /(?i)everyone:/)=true) AND
|
||||
(process_file_name="icacls.exe" OR process_file_name="xcacls.exe" OR process_file_name="cacls.exe")
|
||||
|
||||
@@ -35,11 +35,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Modify ACLs Permission Of Files Or Folders has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Modify ACLs Permission Of Files Or Folders has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -65,10 +65,15 @@ references:
|
||||
- https://thedfirreport.com/2020/04/20/sqlserver-or-the-miner-in-the-basement/
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 35
|
||||
security_domain: endpoint
|
||||
risk_severity: low
|
||||
@@ -83,7 +88,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
@@ -12,20 +12,20 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
(match_regex(actor_process_file_name, /(?i)visio.exe/)=true OR match_regex(actor_process_file_name,
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where (process_file_name="cscript.exe" OR process_file_name="wscript.exe")
|
||||
AND (match_regex(actor_process_file_name, /(?i)visio.exe/)=true OR match_regex(actor_process_file_name,
|
||||
/(?i)mspub.exe/)=true OR match_regex(actor_process_file_name, /(?i)powerpnt.exe/)=true
|
||||
OR match_regex(actor_process_file_name, /(?i)excel.exe/)=true OR match_regex(actor_process_file_name,
|
||||
/(?i)winword.exe/)=true) AND (process_file_name="cscript.exe" OR process_file_name="wscript.exe")
|
||||
|
||||
/(?i)winword.exe/)=true)
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -33,11 +33,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.process.file.name", actor_process_file_name),
|
||||
"message", concat("Office Product Spawning Windows Script Host has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Office Product Spawning Windows Script Host has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -63,11 +63,15 @@ references:
|
||||
- https://blog.cluster25.duskrise.com/2022/09/23/in-the-footsteps-of-the-fancy-bear-powerpoint-graphite/
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 63
|
||||
security_domain: endpoint
|
||||
risk_severity: medium
|
||||
@@ -82,7 +86,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+23
-17
@@ -13,17 +13,18 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
like(process_cmd_line, "%shadowstorage%") AND like(process_cmd_line, "%resize%")
|
||||
AND like(process_cmd_line, "%maxsize%") AND process_file_name="vssadmin.exe"
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where like(process_cmd_line, "%shadowstorage%") AND like(process_cmd_line,
|
||||
"%resize%") AND like(process_cmd_line, "%maxsize%") AND process_file_name="vssadmin.exe"
|
||||
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -31,11 +32,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Resize Shadowstorage Volume has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Resize Shadowstorage Volume has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -62,10 +63,15 @@ references:
|
||||
- https://blog.virustotal.com/2020/11/keep-your-friends-close-keep-ransomware.html
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 64
|
||||
security_domain: endpoint
|
||||
risk_severity: medium
|
||||
@@ -80,7 +86,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+32
-27
@@ -14,27 +14,27 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
(like(process_cmd_line, "%.xls%") OR like(process_cmd_line, "%.gz%") OR like(process_cmd_line,
|
||||
"%.tar%") OR like(process_cmd_line, "%.rar%") OR like(process_cmd_line, "%.zip%")
|
||||
OR like(process_cmd_line, "%.7z%") OR like(process_cmd_line, "%.bmp%") OR like(process_cmd_line,
|
||||
"%.gif%") OR like(process_cmd_line, "%.png%") OR like(process_cmd_line, "%.jpg%")
|
||||
OR like(process_cmd_line, "%.txt%") OR like(process_cmd_line, "%.log%") OR like(process_cmd_line,
|
||||
"%.key%") OR like(process_cmd_line, "%.pdf%") OR like(process_cmd_line, "%.rtf%")
|
||||
OR like(process_cmd_line, "%.ppt%") OR like(process_cmd_line, "%.xls%") OR like(process_cmd_line,
|
||||
"%.doc%") OR like(process_cmd_line, "%-nobanner%") OR like(process_cmd_line, "%/accepteula%")
|
||||
OR like(process_cmd_line, "%-z %") OR like(process_cmd_line, "%-s %") OR like(process_cmd_line,
|
||||
"%-q %") OR like(process_cmd_line, "%-r %") OR like(process_cmd_line, "%-p %") OR
|
||||
like(process_cmd_line, "%-f %") OR like(process_cmd_line, "%-c %")) AND like(process_file_name,
|
||||
"%sdelete%")
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where (like(process_cmd_line, "%.xls%") OR like(process_cmd_line, "%.gz%")
|
||||
OR like(process_cmd_line, "%.tar%") OR like(process_cmd_line, "%.rar%") OR like(process_cmd_line,
|
||||
"%.zip%") OR like(process_cmd_line, "%.7z%") OR like(process_cmd_line, "%.bmp%")
|
||||
OR like(process_cmd_line, "%.gif%") OR like(process_cmd_line, "%.png%") OR like(process_cmd_line,
|
||||
"%.jpg%") OR like(process_cmd_line, "%.txt%") OR like(process_cmd_line, "%.log%")
|
||||
OR like(process_cmd_line, "%.key%") OR like(process_cmd_line, "%.pdf%") OR like(process_cmd_line,
|
||||
"%.rtf%") OR like(process_cmd_line, "%.ppt%") OR like(process_cmd_line, "%.xls%")
|
||||
OR like(process_cmd_line, "%.doc%") OR like(process_cmd_line, "%-nobanner%") OR
|
||||
like(process_cmd_line, "%/accepteula%") OR like(process_cmd_line, "%-z %") OR like(process_cmd_line,
|
||||
"%-s %") OR like(process_cmd_line, "%-q %") OR like(process_cmd_line, "%-r %") OR
|
||||
like(process_cmd_line, "%-p %") OR like(process_cmd_line, "%-f %") OR like(process_cmd_line,
|
||||
"%-c %")) AND like(process_file_name, "%sdelete%")
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -42,11 +42,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Sdelete Application Execution has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Sdelete Application Execution has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -73,10 +73,15 @@ references:
|
||||
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1485/T1485.md
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 42
|
||||
security_domain: endpoint
|
||||
risk_severity: low
|
||||
@@ -91,7 +96,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
name: System Process Running from Unexpected Location
|
||||
id: 28179107-099a-464a-94d3-08301e6c055f
|
||||
version: 5
|
||||
description: An attacker might try to use a different version of a system command
|
||||
without overriding the original, or they might try to avoid some detections by running
|
||||
the process from a different folder. This detection checks that a list of system
|
||||
processes are run inside C:\\Windows\System32 or C:\\Windows\SysWOW64. The list
|
||||
of system processes has been extracted from https://github.com/splunk/security_content/blob/develop/lookups/is_windows_system_file.csv
|
||||
version: 4
|
||||
description: An attacker tries might try to use different version of a system command
|
||||
without overriding original, or they might try to avoid some detection running the
|
||||
process from a different folder. This detection checks that a list of system processes
|
||||
run inside C:\\Windows\System32 or C:\\Windows\SysWOW64 The list of system processes
|
||||
has been extracted from https://github.com/splunk/security_content/blob/develop/lookups/is_windows_system_file.csv
|
||||
and the original detection https://github.com/splunk/security_content/blob/develop/detections/system_processes_run_from_unexpected_locations.yml
|
||||
search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(input_event,"time"),"long",
|
||||
null) | eval metadata = ucast(map_get(input_event, "metadata"),"map<string, any>",
|
||||
@@ -15,64 +15,64 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
(process_file_name="xwizard.exe" OR process_file_name="xpsrchvw.exe" OR process_file_name="xcopy.exe"
|
||||
OR process_file_name="wusa.exe" OR process_file_name="wuauclt.exe" OR process_file_name="wuapp.exe"
|
||||
OR process_file_name="wuapihost.exe" OR process_file_name="wsqmcons.exe" OR process_file_name="wsmprovhost.exe"
|
||||
OR process_file_name="wscript.exe" OR process_file_name="write.exe" OR process_file_name="wpr.exe"
|
||||
OR process_file_name="wpnpinst.exe" OR process_file_name="wowreg32.exe" OR process_file_name="wlrmdr.exe"
|
||||
OR process_file_name="wlanext.exe" OR process_file_name="wksprt.exe" OR process_file_name="wkspbroker.exe"
|
||||
OR process_file_name="wisptis.exe" OR process_file_name="winver.exe" OR process_file_name="winrshost.exe"
|
||||
OR process_file_name="winrs.exe" OR process_file_name="winresume.exe" OR process_file_name="winlogon.exe"
|
||||
OR process_file_name="winload.exe" OR process_file_name="wininit.exe" OR process_file_name="wimserv.exe"
|
||||
OR process_file_name="wifitask.exe" OR process_file_name="wiawow64.exe" OR process_file_name="wiaacmgr.exe"
|
||||
OR process_file_name="whoami.exe" OR process_file_name="where.exe" OR process_file_name="wextract.exe"
|
||||
OR process_file_name="wevtutil.exe" OR process_file_name="wermgr.exe" OR process_file_name="wecutil.exe"
|
||||
OR process_file_name="wbengine.exe" OR process_file_name="wbadmin.exe" OR process_file_name="waitfor.exe"
|
||||
OR process_file_name="w32tm.exe" OR process_file_name="vssadmin.exe" OR process_file_name="vmicsvc.exe"
|
||||
OR process_file_name="verifiergui.exe" OR process_file_name="verifier.exe" OR process_file_name="verclsid.exe"
|
||||
OR process_file_name="vdsldr.exe" OR process_file_name="vds.exe" OR process_file_name="userinit.exe"
|
||||
OR process_file_name="upnpcont.exe" OR process_file_name="unregmp2.exe" OR process_file_name="unlodctr.exe"
|
||||
OR process_file_name="ucsvc.exe" OR process_file_name="tzutil.exe" OR process_file_name="tzsync.exe"
|
||||
OR process_file_name="typeperf.exe" OR process_file_name="tskill.exe" OR process_file_name="tsdiscon.exe"
|
||||
OR process_file_name="tscon.exe" OR process_file_name="tracerpt.exe" OR process_file_name="tpmvscmgrsvr.exe"
|
||||
OR process_file_name="tpmvscmgr.exe" OR process_file_name="timeout.exe" OR process_file_name="tcmsetup.exe"
|
||||
OR process_file_name="taskmgr.exe" OR process_file_name="tasklist.exe" OR process_file_name="taskkill.exe"
|
||||
OR process_file_name="taskhostw.exe" OR process_file_name="taskhost.exe" OR process_file_name="taskeng.exe"
|
||||
OR process_file_name="takeown.exe" OR process_file_name="tabcal.exe" OR process_file_name="systray.exe"
|
||||
OR process_file_name="systemreset.exe" OR process_file_name="systeminfo.exe" OR
|
||||
process_file_name="syskey.exe" OR process_file_name="sxstrace.exe" OR process_file_name="svchost.exe"
|
||||
OR process_file_name="subst.exe" OR process_file_name="srdelayed.exe" OR process_file_name="spreview.exe"
|
||||
OR process_file_name="sppsvc.exe" OR process_file_name="spoolsv.exe" OR process_file_name="spinstall.exe"
|
||||
OR process_file_name="sort.exe" OR process_file_name="snmptrap.exe" OR process_file_name="smss.exe"
|
||||
OR process_file_name="slui.exe" OR process_file_name="sihost.exe" OR process_file_name="sigverif.exe"
|
||||
OR process_file_name="shutdown.exe" OR process_file_name="shrpubw.exe" OR process_file_name="shadow.exe"
|
||||
OR process_file_name="setx.exe" OR process_file_name="setupugc.exe" OR process_file_name="setupcl.exe"
|
||||
OR process_file_name="setspn.exe" OR process_file_name="sethc.exe" OR process_file_name="sessionmsg.exe"
|
||||
OR process_file_name="services.exe" OR process_file_name="secinit.exe" OR process_file_name="sdiagnhost.exe"
|
||||
OR process_file_name="sdclt.exe" OR process_file_name="sdchange.exe" OR process_file_name="sdbinst.exe"
|
||||
OR process_file_name="schtasks.exe" OR process_file_name="sc.exe" OR process_file_name="sbunattend.exe"
|
||||
OR process_file_name="rwinsta.exe" OR process_file_name="runonce.exe" OR process_file_name="rundll32.exe"
|
||||
OR process_file_name="runas.exe" OR process_file_name="rstrui.exe" OR process_file_name="rrinstaller.exe"
|
||||
OR process_file_name="rmttpmvscmgrsvr.exe" OR process_file_name="resmon.exe" OR
|
||||
process_file_name="reset.exe" OR process_file_name="replace.exe" OR process_file_name="repair-bde.exe"
|
||||
OR process_file_name="relog.exe" OR process_file_name="rekeywiz.exe" OR process_file_name="regsvr32.exe"
|
||||
OR process_file_name="regini.exe" OR process_file_name="regedt32.exe" OR process_file_name="reg.exe"
|
||||
OR process_file_name="recover.exe" OR process_file_name="recdisc.exe" OR process_file_name="rdrleakdiag.exe"
|
||||
OR process_file_name="rdpinput.exe" OR process_file_name="rdpclip.exe" OR process_file_name="rasphone.exe"
|
||||
OR process_file_name="raserver.exe" OR process_file_name="rasdial.exe" OR process_file_name="rasautou.exe"
|
||||
OR process_file_name="qwinsta.exe" OR process_file_name="quser.exe" OR process_file_name="query.exe"
|
||||
OR process_file_name="qprocess.exe" OR process_file_name="qappsrv.exe" OR process_file_name="pwlauncher.exe"
|
||||
OR process_file_name="psr.exe" OR process_file_name="provtool.exe" OR process_file_name="proquota.exe"
|
||||
OR process_file_name="printui.exe" OR process_file_name="printfilterpipelinesvc.exe"
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where (process_file_name="xwizard.exe" OR process_file_name="xpsrchvw.exe"
|
||||
OR process_file_name="xcopy.exe" OR process_file_name="wusa.exe" OR process_file_name="wuauclt.exe"
|
||||
OR process_file_name="wuapp.exe" OR process_file_name="wuapihost.exe" OR process_file_name="wsqmcons.exe"
|
||||
OR process_file_name="wsmprovhost.exe" OR process_file_name="wscript.exe" OR process_file_name="write.exe"
|
||||
OR process_file_name="wpr.exe" OR process_file_name="wpnpinst.exe" OR process_file_name="wowreg32.exe"
|
||||
OR process_file_name="wlrmdr.exe" OR process_file_name="wlanext.exe" OR process_file_name="wksprt.exe"
|
||||
OR process_file_name="wkspbroker.exe" OR process_file_name="wisptis.exe" OR process_file_name="winver.exe"
|
||||
OR process_file_name="winrshost.exe" OR process_file_name="winrs.exe" OR process_file_name="winresume.exe"
|
||||
OR process_file_name="winlogon.exe" OR process_file_name="winload.exe" OR process_file_name="wininit.exe"
|
||||
OR process_file_name="wimserv.exe" OR process_file_name="wifitask.exe" OR process_file_name="wiawow64.exe"
|
||||
OR process_file_name="wiaacmgr.exe" OR process_file_name="whoami.exe" OR process_file_name="where.exe"
|
||||
OR process_file_name="wextract.exe" OR process_file_name="wevtutil.exe" OR process_file_name="wermgr.exe"
|
||||
OR process_file_name="wecutil.exe" OR process_file_name="wbengine.exe" OR process_file_name="wbadmin.exe"
|
||||
OR process_file_name="waitfor.exe" OR process_file_name="w32tm.exe" OR process_file_name="vssadmin.exe"
|
||||
OR process_file_name="vmicsvc.exe" OR process_file_name="verifiergui.exe" OR process_file_name="verifier.exe"
|
||||
OR process_file_name="verclsid.exe" OR process_file_name="vdsldr.exe" OR process_file_name="vds.exe"
|
||||
OR process_file_name="userinit.exe" OR process_file_name="upnpcont.exe" OR process_file_name="unregmp2.exe"
|
||||
OR process_file_name="unlodctr.exe" OR process_file_name="ucsvc.exe" OR process_file_name="tzutil.exe"
|
||||
OR process_file_name="tzsync.exe" OR process_file_name="typeperf.exe" OR process_file_name="tskill.exe"
|
||||
OR process_file_name="tsdiscon.exe" OR process_file_name="tscon.exe" OR process_file_name="tracerpt.exe"
|
||||
OR process_file_name="tpmvscmgrsvr.exe" OR process_file_name="tpmvscmgr.exe" OR
|
||||
process_file_name="timeout.exe" OR process_file_name="tcmsetup.exe" OR process_file_name="taskmgr.exe"
|
||||
OR process_file_name="tasklist.exe" OR process_file_name="taskkill.exe" OR process_file_name="taskhostw.exe"
|
||||
OR process_file_name="taskhost.exe" OR process_file_name="taskeng.exe" OR process_file_name="takeown.exe"
|
||||
OR process_file_name="tabcal.exe" OR process_file_name="systray.exe" OR process_file_name="systemreset.exe"
|
||||
OR process_file_name="systeminfo.exe" OR process_file_name="syskey.exe" OR process_file_name="sxstrace.exe"
|
||||
OR process_file_name="svchost.exe" OR process_file_name="subst.exe" OR process_file_name="srdelayed.exe"
|
||||
OR process_file_name="spreview.exe" OR process_file_name="sppsvc.exe" OR process_file_name="spoolsv.exe"
|
||||
OR process_file_name="spinstall.exe" OR process_file_name="sort.exe" OR process_file_name="snmptrap.exe"
|
||||
OR process_file_name="smss.exe" OR process_file_name="slui.exe" OR process_file_name="sihost.exe"
|
||||
OR process_file_name="sigverif.exe" OR process_file_name="shutdown.exe" OR process_file_name="shrpubw.exe"
|
||||
OR process_file_name="shadow.exe" OR process_file_name="setx.exe" OR process_file_name="setupugc.exe"
|
||||
OR process_file_name="setupcl.exe" OR process_file_name="setspn.exe" OR process_file_name="sethc.exe"
|
||||
OR process_file_name="sessionmsg.exe" OR process_file_name="services.exe" OR process_file_name="secinit.exe"
|
||||
OR process_file_name="sdiagnhost.exe" OR process_file_name="sdclt.exe" OR process_file_name="sdchange.exe"
|
||||
OR process_file_name="sdbinst.exe" OR process_file_name="schtasks.exe" OR process_file_name="sc.exe"
|
||||
OR process_file_name="sbunattend.exe" OR process_file_name="rwinsta.exe" OR process_file_name="runonce.exe"
|
||||
OR process_file_name="rundll32.exe" OR process_file_name="runas.exe" OR process_file_name="rstrui.exe"
|
||||
OR process_file_name="rrinstaller.exe" OR process_file_name="rmttpmvscmgrsvr.exe"
|
||||
OR process_file_name="resmon.exe" OR process_file_name="reset.exe" OR process_file_name="replace.exe"
|
||||
OR process_file_name="repair-bde.exe" OR process_file_name="relog.exe" OR process_file_name="rekeywiz.exe"
|
||||
OR process_file_name="regsvr32.exe" OR process_file_name="regini.exe" OR process_file_name="regedt32.exe"
|
||||
OR process_file_name="reg.exe" OR process_file_name="recover.exe" OR process_file_name="recdisc.exe"
|
||||
OR process_file_name="rdrleakdiag.exe" OR process_file_name="rdpinput.exe" OR process_file_name="rdpclip.exe"
|
||||
OR process_file_name="rasphone.exe" OR process_file_name="raserver.exe" OR process_file_name="rasdial.exe"
|
||||
OR process_file_name="rasautou.exe" OR process_file_name="qwinsta.exe" OR process_file_name="quser.exe"
|
||||
OR process_file_name="query.exe" OR process_file_name="qprocess.exe" OR process_file_name="qappsrv.exe"
|
||||
OR process_file_name="pwlauncher.exe" OR process_file_name="psr.exe" OR process_file_name="provtool.exe"
|
||||
OR process_file_name="proquota.exe" OR process_file_name="printui.exe" OR process_file_name="printfilterpipelinesvc.exe"
|
||||
OR process_file_name="print.exe" OR process_file_name="prevhost.exe" OR process_file_name="powercfg.exe"
|
||||
OR process_file_name="poqexec.exe" OR process_file_name="plasrv.exe" OR process_file_name="phoneactivate.exe"
|
||||
OR process_file_name="perfmon.exe" OR process_file_name="pcwrun.exe" OR process_file_name="pcawrk.exe"
|
||||
@@ -243,11 +243,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("System Process Running from Unexpected Location has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("System Process Running from Unexpected Location has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -268,11 +268,15 @@ known_false_positives: None
|
||||
references: []
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 56
|
||||
security_domain: endpoint
|
||||
risk_severity: medium
|
||||
@@ -287,7 +291,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+21
-16
@@ -12,16 +12,16 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
process_file_name="wbadmin.exe" AND (like(process_cmd_line, "%systemstatebackup%")
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where process_file_name="wbadmin.exe" AND (like(process_cmd_line, "%systemstatebackup%")
|
||||
OR like(process_cmd_line, "%catalog%") OR like(process_cmd_line, "%delete%"))
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
@@ -30,11 +30,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("WBAdmin Delete System Backups has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("WBAdmin Delete System Backups has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -61,10 +61,15 @@ references:
|
||||
- https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/wbadmin
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 15
|
||||
security_domain: endpoint
|
||||
risk_severity: low
|
||||
@@ -79,7 +84,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+21
-16
@@ -12,16 +12,16 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
(match_regex(process_cmd_line, /(?i)powershell/)=true OR match_regex(process_cmd_line,
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where (match_regex(process_cmd_line, /(?i)powershell/)=true OR match_regex(process_cmd_line,
|
||||
/(?i)setup/)=true OR match_regex(process_cmd_line, /(?i)application/)=true OR match_regex(process_cmd_line,
|
||||
/(?i)sysmon/)=true OR match_regex(process_cmd_line, /(?i)system/)=true OR match_regex(process_cmd_line,
|
||||
/(?i)security/)=true) AND like(process_cmd_line, "% cl %") AND process_file_name="wevtutil.exe"
|
||||
@@ -33,11 +33,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("WevtUtil Usage To Clear Logs has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("WevtUtil Usage To Clear Logs has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -64,10 +64,15 @@ references:
|
||||
- https://www.splunk.com/en_us/blog/security/detecting-clop-ransomware.html
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 63
|
||||
security_domain: endpoint
|
||||
risk_severity: medium
|
||||
@@ -82,7 +87,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+22
-17
@@ -12,17 +12,17 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
like(process_cmd_line, "%/e:false%") AND like(process_cmd_line, "% sl %") AND process_file_name="wevtutil.exe"
|
||||
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where like(process_cmd_line, "%/e:false%") AND like(process_cmd_line, "%
|
||||
sl %") AND process_file_name="wevtutil.exe"
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -30,11 +30,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Wevtutil Usage To Disable Logs has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Wevtutil Usage To Disable Logs has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -61,10 +61,15 @@ references:
|
||||
- https://www.bleepingcomputer.com/news/security/new-ransom-x-ransomware-used-in-texas-txdot-cyberattack/
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 63
|
||||
security_domain: endpoint
|
||||
risk_severity: medium
|
||||
@@ -79,7 +84,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+21
-16
@@ -16,16 +16,16 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
(like(process_cmd_line, "%resume%") OR like(process_cmd_line, "%setcustomheaders%")
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where (like(process_cmd_line, "%resume%") OR like(process_cmd_line, "%setcustomheaders%")
|
||||
OR like(process_cmd_line, "%setminretrydelay%") OR like(process_cmd_line, "%setnotifycmdline%")
|
||||
OR like(process_cmd_line, "%setnotifyflags%") OR like(process_cmd_line, "%addfile%")
|
||||
OR like(process_cmd_line, "%create%")) AND process_file_name="bitsadmin.exe"
|
||||
@@ -36,11 +36,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Windows Bits Job Persistence has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Windows Bits Job Persistence has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -71,10 +71,15 @@ references:
|
||||
- https://lolbas-project.github.io/lolbas/Binaries/Bitsadmin/
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 56
|
||||
security_domain: endpoint
|
||||
risk_severity: medium
|
||||
@@ -89,7 +94,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
+22
-16
@@ -21,16 +21,17 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
any>", null) | eval process_file_path=ucast(map_get(process_file,"path"), "string",
|
||||
null) | eval process_file_name=ucast(map_get(process_file,"name"), "string", null)
|
||||
| eval process_cmd_line=ucast(map_get(process,"cmd_line"), "string", null) | eval
|
||||
process_user=ucast(map_get(process,"user"), "map<string, any>", null) | eval process_user_name=ucast(map_get(process_user,"name"),
|
||||
"string", null) | eval actor=ucast(map_get(input_event,"actor"), "map<string, any>",
|
||||
null) | eval actor_process=ucast(map_get(actor,"process"), "map<string, any>", null)
|
||||
| eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string", null) | eval
|
||||
actor_process_file=ucast(map_get(actor_process,"file"), "map<string, any>", null)
|
||||
| eval actor_process_file_path=ucast(map_get(actor_process_file,"path"), "string",
|
||||
null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"), "string",
|
||||
null) | eval device=ucast(map_get(input_event,"device"), "map<string, any>", null)
|
||||
| eval device_hostname=ucast(map_get(device,"hostname"), "string", null) | where
|
||||
like(process_cmd_line, "%transfer%") AND process_file_name="bitsadmin.exe"
|
||||
actor=ucast(map_get(input_event,"actor"), "map<string, any>", null) | eval actor_user=ucast(map_get(actor,"user"),
|
||||
"map<string, any>", null) | eval actor_user_name=ucast(map_get(actor_user,"name"),
|
||||
"string", null) | eval actor_process=ucast(map_get(actor,"process"), "map<string,
|
||||
any>", null) | eval actor_process_pid=ucast(map_get(actor_process,"pid"), "string",
|
||||
null) | eval actor_process_file=ucast(map_get(actor_process,"file"), "map<string,
|
||||
any>", null) | eval actor_process_file_path=ucast(map_get(actor_process_file,"path"),
|
||||
"string", null) | eval actor_process_file_name=ucast(map_get(actor_process_file,"name"),
|
||||
"string", null) | eval device=ucast(map_get(input_event,"device"), "map<string,
|
||||
any>", null) | eval device_hostname=ucast(map_get(device,"hostname"), "string",
|
||||
null) | where like(process_cmd_line, "%transfer%") AND process_file_name="bitsadmin.exe"
|
||||
|
||||
| eval body=create_map(
|
||||
"devices", [
|
||||
create_map(
|
||||
@@ -38,11 +39,11 @@ search: ' | from read_ba_enriched_events() | eval timestamp = ucast(map_get(inpu
|
||||
)
|
||||
],
|
||||
"time", timestamp,
|
||||
"evidence", create_map("process.user.name", process_user_name, "device.hostname", device_hostname, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line),
|
||||
"message", concat("Windows Bitsadmin Download File has been triggered on ", device_hostname, " by ", process_user_name, "."),
|
||||
"evidence", create_map("process.pid", process_pid, "process.file.path", process_file_path, "process.file.name", process_file_name, "process.cmd_line", process_cmd_line, "actor.user.name", actor_user_name, "actor.process.pid", actor_process_pid, "actor.process.file.path", actor_process_file_path, "actor.process.file.name", actor_process_file_name, "device.hostname", device_hostname),
|
||||
"message", concat("Windows Bitsadmin Download File has been triggered on ", device_hostname, " by ", actor_user_name, "."),
|
||||
"users", [
|
||||
create_map(
|
||||
"name", process_user_name, "uuid", ucast(map_get(process_user,"uuid"), "string", null)
|
||||
"name", actor_user_name, "uid", ucast(map_get(actor_user,"uid"), "string", null)
|
||||
)
|
||||
],
|
||||
"activity_id", 1,
|
||||
@@ -72,10 +73,15 @@ references:
|
||||
- https://thedfirreport.com/2021/03/29/sodinokibi-aka-revil-ransomware/
|
||||
tags:
|
||||
required_fields:
|
||||
- process.user.name
|
||||
- device.hostname
|
||||
- process.pid
|
||||
- process.file.path
|
||||
- process.file.name
|
||||
- process.cmd_line
|
||||
- actor.user.name
|
||||
- actor.process.pid
|
||||
- actor.process.file.path
|
||||
- actor.process.file.name
|
||||
- device.hostname
|
||||
risk_score: 49
|
||||
security_domain: endpoint
|
||||
risk_severity: low
|
||||
@@ -90,7 +96,7 @@ tags:
|
||||
cim: process_name
|
||||
- ocsf: process.cmd_line
|
||||
cim: process
|
||||
- ocsf: process.user.name
|
||||
- ocsf: actor.user.name
|
||||
cim: user
|
||||
- ocsf: actor.process.pid
|
||||
cim: parent_process_id
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user