Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
9c61d5b
[New/Tuning] Windows Top Threats 2024/2025
Samirbous Aug 19, 2025
5d02c4d
Update defense_evasion_mshta_susp_child.toml
Samirbous Aug 19, 2025
4a26857
Update defense_evasion_script_via_html_app.toml
Samirbous Aug 19, 2025
e1c879f
Update defense_evasion_mshta_susp_child.toml
Samirbous Aug 19, 2025
cebec1e
Create defense_evasion_msiexec_remote_payload.toml
Samirbous Aug 19, 2025
2ffb41e
Update defense_evasion_msiexec_remote_payload.toml
Samirbous Aug 19, 2025
74980d5
++
Samirbous Aug 19, 2025
a8dfabc
Create execution_scripting_remote_webdav.toml
Samirbous Aug 19, 2025
0cdbf8a
Create execution_windows_fakecaptcha_cmd_ps.toml
Samirbous Aug 20, 2025
098be4f
Create command_and_control_rmm_netsupport_susp_path.toml
Samirbous Aug 20, 2025
96a216b
Update command_and_control_rmm_netsupport_susp_path.toml
Samirbous Aug 20, 2025
75846bf
++
Samirbous Aug 20, 2025
f480138
Update execution_jscript_fake_updates.toml
Samirbous Aug 20, 2025
5dc4175
Create command_and_control_dns_susp_tld.toml
Samirbous Aug 20, 2025
3b4b0fb
++
Samirbous Aug 20, 2025
5be9890
Create command_and_control_remcos_rat_iocs.toml
Samirbous Aug 20, 2025
018fc92
Update execution_windows_fakecaptcha_cmd_ps.toml
Samirbous Aug 21, 2025
927b530
Update execution_scripts_archive_file.toml
Samirbous Aug 21, 2025
6cc236b
Update defense_evasion_masquerading_renamed_autoit.toml
Samirbous Aug 21, 2025
1fd1227
++
Samirbous Aug 21, 2025
78d46ee
Create execution_nodejs_susp_patterns.toml
Samirbous Aug 21, 2025
530c88c
Update execution_nodejs_susp_patterns.toml
Samirbous Aug 21, 2025
8a48da0
Update execution_windows_fakecaptcha_cmd_ps.toml
Samirbous Aug 21, 2025
46585b2
Fix unit test errors
eric-forte-elastic Aug 21, 2025
9836ba0
Update defense_evasion_network_connection_from_windows_binary.toml
Samirbous Aug 21, 2025
65bf148
Merge branch 'main' into top-threats-july24-june25
Samirbous Aug 21, 2025
c0e9633
Add system index
eric-forte-elastic Aug 21, 2025
e8ac542
Merge branch 'top-threats-july24-june25' of github.com:elastic/detect…
eric-forte-elastic Aug 21, 2025
7bcb28d
Add tag
eric-forte-elastic Aug 21, 2025
91f2088
Update rules/windows/command_and_control_remcos_rat_iocs.toml
eric-forte-elastic Aug 21, 2025
db2514d
Remove duplicate
eric-forte-elastic Aug 21, 2025
04a6efc
Update defense_evasion_msiexec_child_proc_netcon.toml
Samirbous Aug 21, 2025
10913ce
Update defense_evasion_masquerading_renamed_autoit.toml
Samirbous Aug 21, 2025
f2fcc37
Update defense_evasion_masquerading_renamed_autoit.toml
Samirbous Aug 22, 2025
2c0b7ed
Update defense_evasion_masquerading_renamed_autoit.toml
Samirbous Aug 22, 2025
69045ba
Merge branch 'main' into top-threats-july24-june25
Samirbous Aug 26, 2025
f369888
Create credential_access_browsers_unusual_parent.toml
Samirbous Aug 27, 2025
769800d
Update credential_access_browsers_unusual_parent.toml
Samirbous Aug 27, 2025
ead4274
++
Samirbous Aug 27, 2025
73c3631
Update defense_evasion_masquerading_renamed_autoit.toml
Samirbous Aug 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions rules/windows/command_and_control_dns_susp_tld.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
[metadata]
creation_date = "2025/08/20"
integration = ["endpoint", "windows", "sentinel_one_cloud_funnel", "crowdstrike"]
maturity = "production"
updated_date = "2025/08/20"

[rule]
author = ["Elastic"]
description = """
Identifies DNS queries to commonly abused Top Level Domains by common LOLBINs or executable running from world writable
directories or unsigned binaries. This behavior matches on common malware C2 abusing less formal domain names.
"""
from = "now-9m"
index = [
"endgame-*",
"logs-endpoint.events.network-*",
"logs-sentinel_one_cloud_funnel.*",
"logs-crowdstrike.fdr*",
"logs-windows.forwarded*",
"logs-windows.sysmon_operational-*",
"winlogbeat-*"
]
language = "eql"
license = "Elastic License v2"
name = "Network Activity to a Suspicious Top Level Domain"
note = """## Triage and analysis

### Investigating Network Activity to a Suspicious Top Level Domain

#### Possible investigation steps

- Investigate the process execution chain (parent process tree) for unknown processes or malicious scripts.
- Review if the domain reputation and the frequency of network activities as well as any download/upload activity.
- Verify if the executed process is persistent on the host like common mechanisms Startup folder, task or Run key.
- Investigate other alerts associated with the user/host during the past 48 hours.
- Extract this communication's indicators of compromise (IoCs) and use traffic logs to search for other potentially compromised hosts.

### False positive analysis

- Trusted domain from an expected process running in the environment.

### Response and remediation

- Initiate the incident response process based on the outcome of the triage.
- Isolate the involved host to prevent further post-compromise behavior.
- Immediately block the identified indicators of compromise (IoCs).
- Implement any temporary network rules, procedures, and segmentation required to contain the attack.
- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are identified. Reset passwords for these accounts and other potentially compromised credentials, such as email, business systems, and web services.
- Update firewall rules to be more restrictive.
- Reimage the host operating system or restore the compromised files to clean versions.
- Run a full antimalware scan. This may reveal additional artifacts left in the system, persistence mechanisms, and malware components.
- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.
- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the mean time to respond (MTTR).
"""
references = ["https://www.cybercrimeinfocenter.org/top-20-tlds-by-malicious-phishing-domains"]
risk_score = 73
rule_id = "e516bf56-d51b-43e8-91ec-9e276331f433"
severity = "high"
tags = [
"Domain: Endpoint",
"OS: Windows",
"Use Case: Threat Detection",
"Tactic: Command and Control",
"Resources: Investigation Guide",
"Data Source: Elastic Endgame",
"Data Source: Elastic Defend",
"Data Source: Windows Security Event Logs",
"Data Source: SentinelOne",
"Data Source: Crowdstrike",
"Data Source: Sysmon",
]
timestamp_override = "event.ingested"
type = "eql"

query = '''
network where host.os.type == "windows" and dns.question.name != null and
(
process.name : ("MSBuild.exe", "mshta.exe", "wscript.exe", "powershell.exe", "pwsh.exe", "msiexec.exe", "rundll32.exe",
"bitsadmin.exe", "InstallUtil.exe", "python.exe", "regsvr32.exe", "dllhost.exe", "node.exe",
"java.exe", "javaw.exe", "*.pif", "*.com", "*.scr") or
?process.code_signature.exists == false or ?process.code_signature.trused == false or
?process.code_signature.subject_name in ("AUTOIT CONSULTING LTD", "AutoIt Consulting Ltd", "OpenJS Foundation", "Python Software Foundation") or
process.executable : ("?:\\Users\\*.exe", "", "?:\\ProgramData\\*.exe", "?\\Device\\HarddiskVolume?\\Users\\*.exe", "?\\Device\\HarddiskVolume?\\ProgramData\\*.exe")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
process.executable : ("?:\\Users\\*.exe", "", "?:\\ProgramData\\*.exe", "?\\Device\\HarddiskVolume?\\Users\\*.exe", "?\\Device\\HarddiskVolume?\\ProgramData\\*.exe")
process.executable : ("?:\\Users\\*.exe", "", "?:\\ProgramData\\*.exe")

Crowdstrike doesn't have process.executable in network events :this-is-fine-fire:

) and
dns.question.name regex """.*\.(top|buzz|xyz|rest|ml|cf|gq|ga|onion|monster|cyou|quest|cc|bar|cfd|click|cam|surf|tk|shop|club|icu|pw|ws|online|fun|life|boats|store|hair|skin|motorcycles|christmas|lol|makeup|mom|bond|beauty|biz|live|work|zip|country|accountant|date|party|science|loan|win|men|faith|review|racing|download|host)"""
'''


[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1071"
name = "Application Layer Protocol"
reference = "https://attack.mitre.org/techniques/T1071/"
[[rule.threat.technique.subtechnique]]
id = "T1071.004"
name = "DNS"
reference = "https://attack.mitre.org/techniques/T1071/004/"


[rule.threat.tactic]
id = "TA0011"
name = "Command and Control"
reference = "https://attack.mitre.org/tactics/TA0011/"


102 changes: 102 additions & 0 deletions rules/windows/command_and_control_remcos_rat_iocs.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
[metadata]
creation_date = "2025/08/20"
integration = ["endpoint", "windows", "sentinel_one_cloud_funnel", "m365_defender", "system"]
maturity = "production"
updated_date = "2025/08/20"

[rule]
author = ["Elastic"]
description = """
Identifies known execution traces of the REMCOS Remote Access Trojan. Remcos RAT is used by attackers to perform actions on infected machines remotely.
"""
from = "now-9m"
index = [
"endgame-*",
"logs-endpoint.events.registry-*",
"logs-endpoint.events.file-*",
"logs-m365_defender.event-*",
"logs-sentinel_one_cloud_funnel.*",
"logs-system.security*",
"logs-windows.sysmon_operational-*",
"winlogbeat-*",
]
language = "eql"
license = "Elastic License v2"
name = "Potential REMCOS Trojan Execution"
note = """## Triage and analysis

### Investigating Potential REMCOS Trojan Execution

Remcos RAT is used by attackers to perform actions on infected machines remotely.

### Possible investigation steps

- Review the origin of the REMCOS file and the execution chain to identify the initial vector..
- Examine if the process is set to persist in the affected system via scheduled task, Startup folder or Run key.
- Check the network, files and child processes activity associated with the every suspicious process in the execution chain of REMCOS.
- Correlate the event with other security alerts or logs from data sources like Elastic Defend or Microsoft Defender for Endpoint to gather additional context and identify any related malicious activities.

### Response and remediation

- Immediately isolate the affected system from the network to prevent further unauthorized access or lateral movement by the attacker.
- Terminate any suspicious processes identified in the alert, such as PowerShell, cmd.exe, or other flagged executables, to halt any ongoing malicious activity.
- Review and revoke any unauthorized user accounts or privileges that may have been created or modified using tools like net.exe or schtasks.exe.
- Conduct a thorough scan of the affected system using endpoint protection tools to identify and remove any malware or unauthorized software installed by the attacker.
- Restore the system from a known good backup if any critical system files or configurations have been altered or compromised.
- Escalate the incident to the security operations center (SOC) or incident response team for further investigation and to determine if additional systems are affected.
- Implement enhanced monitoring and logging for ScreenConnect and other remote access tools to detect similar activities in the future, ensuring that alerts are promptly reviewed and acted upon."""
references = [
"https://any.run/malware-trends/remcos",
"https://attack.mitre.org/software/S0332/",
"https://www.elastic.co/security-labs/exploring-the-ref2731-intrusion-set"
]
risk_score = 73
rule_id = "d8b2f85a-cf1c-40fc-acf0-bb5d588a8ea6"
severity = "high"
tags = [
"Domain: Endpoint",
"OS: Windows",
"Use Case: Threat Detection",
"Tactic: Command and Control",
"Resources: Investigation Guide",
"Data Source: Elastic Endgame",
"Data Source: Elastic Defend",
"Data Source: Sysmon",
"Data Source: SentinelOne",
"Data Source: Microsoft Defender for Endpoint",
"Data Source: Windows Security Event Logs"
]
timestamp_override = "event.ingested"
type = "eql"

query = '''
any where host.os.type == "windows" and
(
(event.category == "file" and event.type == "deletion" and file.path like "C:\\Users\\*\\AppData\\Local\\Temp\\TH????.tmp") or

(event.category == "file" and file.path : "?:\\Users\\*\\AppData\\Roaming\\remcos\\logs.dat") or

(event.category == "registry" and
registry.path : (
"H*\\Windows\\CurrentVersion\\Run\\Remcos",
"H*\\Windows\\CurrentVersion\\Run\\Rmc-??????",
"H*\\SOFTWARE\\Remcos-*\\licence",
"H*\\Software\\Rmc-??????\\licence"
))
Comment on lines +80 to +85
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
registry.path : (
"H*\\Windows\\CurrentVersion\\Run\\Remcos",
"H*\\Windows\\CurrentVersion\\Run\\Rmc-??????",
"H*\\SOFTWARE\\Remcos-*\\licence",
"H*\\Software\\Rmc-??????\\licence"
))
registry.value : ("Remcos", "Rmc-??????", "licence") and
registry.path : (
"*\\Windows\\CurrentVersion\\Run\\Remcos",
"*\\Windows\\CurrentVersion\\Run\\Rmc-??????",
"*\\SOFTWARE\\Remcos-*\\licence",
"*\\Software\\Rmc-??????\\licence"
)
)

S1 populates it with MACHINE\*

)
'''


[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1219"
name = "Remote Access Tools"
reference = "https://attack.mitre.org/techniques/T1219/"


[rule.threat.tactic]
id = "TA0011"
name = "Command and Control"
reference = "https://attack.mitre.org/tactics/TA0011/"

102 changes: 102 additions & 0 deletions rules/windows/command_and_control_rmm_netsupport_susp_path.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
[metadata]
creation_date = "2025/08/20"
integration = ["endpoint", "windows", "sentinel_one_cloud_funnel", "m365_defender", "system", "crowdstrike"]
maturity = "production"
updated_date = "2025/08/20"

[rule]
author = ["Elastic"]
description = """
Identifies execution of the NetSupport remote access software from non-default paths. Adversaries may abuse NetSupport
Manager to control a target victim machine.
"""
from = "now-9m"
index = [
"endgame-*",
"logs-crowdstrike.fdr*",
"logs-endpoint.events.process-*",
"logs-m365_defender.event-*",
"logs-sentinel_one_cloud_funnel.*",
"logs-system.security*",
"logs-windows.sysmon_operational-*",
"winlogbeat-*",
]
language = "eql"
license = "Elastic License v2"
name = "NetSupport Manager Execution from an Unusual Path"
note = """## Triage and analysis

### Investigating NetSupport Manager Execution from an Unusual Path

NetSupport Manager, is a remote access tool, facilitates legitimate remote support but can be exploited by adversaries to execute unauthorized commands.

### Possible investigation steps

- Review the origin of the NetSupport file and if it's related to an authorized IT Support case.
- Examine if the NetSupport process is set to persist in the affected system via scheduled task, Startup folder or Run key.
- Check the network, files and child processes activity associated with the NetSupport client32.exe process.
- Correlate the event with other security alerts or logs from data sources like Elastic Defend or Microsoft Defender for Endpoint to gather additional context and identify any related malicious activities.

### False positive analysis

- Legitimate IT support activities using NetSupport by IT support accounts.

### Response and remediation

- Immediately isolate the affected system from the network to prevent further unauthorized access or lateral movement by the attacker.
- Terminate any suspicious processes identified in the alert, such as PowerShell, cmd.exe, or other flagged executables, to halt any ongoing malicious activity.
- Review and revoke any unauthorized user accounts or privileges that may have been created or modified using tools like net.exe or schtasks.exe.
- Conduct a thorough scan of the affected system using endpoint protection tools to identify and remove any malware or unauthorized software installed by the attacker.
- Restore the system from a known good backup if any critical system files or configurations have been altered or compromised.
- Escalate the incident to the security operations center (SOC) or incident response team for further investigation and to determine if additional systems are affected.
- Implement enhanced monitoring and logging for ScreenConnect and other remote access tools to detect similar activities in the future, ensuring that alerts are promptly reviewed and acted upon."""
references = [
"https://www.netsupportsoftware.com/",
]
risk_score = 73
rule_id = "5f73aef2-7abc-4fd9-ac0d-ab8ec3e13891"
severity = "high"
tags = [
"Domain: Endpoint",
"OS: Windows",
"Use Case: Threat Detection",
"Tactic: Command and Control",
"Resources: Investigation Guide",
"Data Source: Elastic Endgame",
"Data Source: Elastic Defend",
"Data Source: Sysmon",
"Data Source: SentinelOne",
"Data Source: Microsoft Defender for Endpoint",
"Data Source: Windows Security Event Logs",
"Data Source: Crowdstrike",
]
timestamp_override = "event.ingested"
type = "eql"

query = '''
process where host.os.type == "windows" and event.type == "start" and
(process.name : "client32.exe" or ?process.pe.original_file_name == "client32.exe" or process.parent.name : "client32.exe") and
(
process.executable :
("?:\\Users\\*.exe",
"?:\\ProgramData\\*.exe",
"\\Device\\HarddiskVolume?\\Users\\*.exe",
"\\Device\\HarddiskVolume?\\ProgramData\\*.exe") or
?process.parent.executable : ("?:\\Users\\*\\client32.exe", "?:\\ProgramData\\*\\client32.exe")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need this condition? It seems like one we could remove

)
'''


[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1219"
name = "Remote Access Tools"
reference = "https://attack.mitre.org/techniques/T1219/"


[rule.threat.tactic]
id = "TA0011"
name = "Command and Control"
reference = "https://attack.mitre.org/tactics/TA0011/"

Loading
Loading