mirror of
https://github.com/elastic/protections-artifacts
synced 2026-06-08 14:02:19 +00:00
Updating artifacts
This commit is contained in:
+73
@@ -0,0 +1,73 @@
|
||||
[rule]
|
||||
description = """
|
||||
This rule detects shell executions via Velociraptor. Threat actors have been observed installing Velociraptor to execute
|
||||
shell commands on compromised systems, blending in with legitimate system processes.
|
||||
"""
|
||||
id = "b01cdbdd-40a8-4f7b-b89f-75ca40229769"
|
||||
license = "Elastic License v2"
|
||||
name = "Velociraptor Suspicious Shell Execution"
|
||||
os_list = ["linux", "macos"]
|
||||
reference = ["https://www.huntress.com/blog/active-exploitation-solarwinds-web-help-desk-cve-2025-26399"]
|
||||
version = "1.0.0"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.parent.name like~ "velociraptor*" and
|
||||
process.name in ("bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish") and process.args in ("-c", "-cl", "-lc", "--command")
|
||||
'''
|
||||
|
||||
min_endpoint_version = "7.15.0"
|
||||
optional_actions = []
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.entity_id"
|
||||
state = 0
|
||||
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.parent.entity_id"
|
||||
state = 0
|
||||
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1059"
|
||||
name = "Command and Scripting Interpreter"
|
||||
reference = "https://attack.mitre.org/techniques/T1059/"
|
||||
[[threat.technique.subtechnique]]
|
||||
id = "T1059.004"
|
||||
name = "Unix Shell"
|
||||
reference = "https://attack.mitre.org/techniques/T1059/004/"
|
||||
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0002"
|
||||
name = "Execution"
|
||||
reference = "https://attack.mitre.org/tactics/TA0002/"
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1218"
|
||||
name = "System Binary Proxy Execution"
|
||||
reference = "https://attack.mitre.org/techniques/T1218/"
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0005"
|
||||
name = "Defense Evasion"
|
||||
reference = "https://attack.mitre.org/tactics/TA0005/"
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1219"
|
||||
name = "Remote Access Software"
|
||||
reference = "https://attack.mitre.org/techniques/T1219/"
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0011"
|
||||
name = "Command and Control"
|
||||
reference = "https://attack.mitre.org/tactics/TA0011/"
|
||||
|
||||
[internal]
|
||||
min_endpoint_version = "7.15.0"
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
[rule]
|
||||
description = """
|
||||
Detects network connections originating from a binary located in a potentially suspicious location, followed by command
|
||||
execution. This behavior is consistent with C2 agents such as Poseidon and Athena, connecting to a C2 framework such as
|
||||
Mythic. The agent polls the C2 for commands through a web request, after which the command gets executed.
|
||||
"""
|
||||
id = "8c2977dd-07ce-4a8e-8ccd-5e4183138675"
|
||||
license = "Elastic License v2"
|
||||
name = "Egress Network Connection Followed by Command Execution"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.14"
|
||||
|
||||
query = '''
|
||||
sequence with maxspan=5s
|
||||
[network where event.type == "start" and event.action == "connection_attempted" and
|
||||
process.executable like ("./*", "/boot/*", "/dev/shm/*", "/run/*", "/var/run/*", "/tmp/*", "/var/tmp/*") and
|
||||
not (
|
||||
process.executable like "/tmp/*/*" or
|
||||
destination.ip == null or
|
||||
destination.ip == "0.0.0.0" or
|
||||
cidrmatch(
|
||||
destination.ip, "10.0.0.0/8", "127.0.0.0/8", "169.254.0.0/16", "172.16.0.0/12",
|
||||
"192.0.0.0/24", "192.0.0.0/29","192.0.0.8/32", "192.0.0.9/32", "192.0.0.10/32",
|
||||
"192.0.0.170/32", "192.0.0.171/32", "192.0.2.0/24", "192.31.196.0/24", "192.52.193.0/24",
|
||||
"192.168.0.0/16", "192.88.99.0/24", "224.0.0.0/4", "100.64.0.0/10", "192.175.48.0/24",
|
||||
"198.18.0.0/15", "198.51.100.0/24", "203.0.113.0/24", "240.0.0.0/4", "::1", "FE80::/10",
|
||||
"FF00::/8"
|
||||
)
|
||||
)
|
||||
] by process.entity_id
|
||||
[process where event.type == "start" and event.action == "exec" and
|
||||
process.parent.executable like ("./*", "/boot/*", "/dev/shm/*", "/run/*", "/var/run/*", "/tmp/*", "/var/tmp/*") and
|
||||
process.args like (
|
||||
"ip*", "whoami*", "id*", "hostname*", "touch*", "curl*", "wget*", "chmod*", "busybox*", "chattr*", "echo*",
|
||||
"php*", "perl*", "ruby*", "lua*", "openssl*", "nc*", "netcat*", "ncat*"
|
||||
) and
|
||||
not (
|
||||
process.parent.executable in (
|
||||
"/srv/nessus_agent/sbin/nessus-agent-module", "/var/log/amazon/ssm/patch-baseline-operations", "./app",
|
||||
"./config.json/usr/local/bin/py.test", "./runc"
|
||||
) or
|
||||
process.parent.name in ("nseserv", "nexserv", "pycharm") or
|
||||
process.parent.command_line == "/usr/bin/php ./boot-watcher.php" or
|
||||
process.working_directory == "/usr/lib/adlumin" or
|
||||
process.parent.executable like ("/run/k3s/containerd/*", "/run/user/*/.bubblewrap/opt/chef/bin/chef-client", "/run/containerd/*")
|
||||
)
|
||||
] by process.parent.entity_id
|
||||
'''
|
||||
|
||||
min_endpoint_version = "7.15.0"
|
||||
optional_actions = []
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.entity_id"
|
||||
state = 0
|
||||
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1059"
|
||||
name = "Command and Scripting Interpreter"
|
||||
reference = "https://attack.mitre.org/techniques/T1059/"
|
||||
[[threat.technique.subtechnique]]
|
||||
id = "T1059.004"
|
||||
name = "Unix Shell"
|
||||
reference = "https://attack.mitre.org/techniques/T1059/004/"
|
||||
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0002"
|
||||
name = "Execution"
|
||||
reference = "https://attack.mitre.org/tactics/TA0002/"
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1071"
|
||||
name = "Application Layer Protocol"
|
||||
reference = "https://attack.mitre.org/techniques/T1071/"
|
||||
[[threat.technique.subtechnique]]
|
||||
id = "T1071.001"
|
||||
name = "Web Protocols"
|
||||
reference = "https://attack.mitre.org/techniques/T1071/001/"
|
||||
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0011"
|
||||
name = "Command and Control"
|
||||
reference = "https://attack.mitre.org/tactics/TA0011/"
|
||||
|
||||
[internal]
|
||||
min_endpoint_version = "7.15.0"
|
||||
+5
-2
@@ -7,7 +7,7 @@ id = "5c18132a-e279-404e-a8d8-922546d469a7"
|
||||
license = "Elastic License v2"
|
||||
name = "File Download from or Upload to Hosting Service"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.6"
|
||||
version = "1.0.7"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.name in ("curl", "wget") and
|
||||
@@ -16,7 +16,10 @@ process.command_line like~ (
|
||||
"*paste.ofcode.org*", "*textbin.net*", "*transfer.sh*", "*anonfiles.*", "*easyupload.io*", "*gofile.io*", "*send.cm*", "*ufile.io*",
|
||||
"*pixeldrain.com*", "*bayfiles.*", "*megaupload.*", "*mediafire.*", "*zippyshare.com*", "*dropapk.to*", "*shorturl.at*", "*tinyurl.com*",
|
||||
"*bit.ly/*", "*cutt.ly/*", "*is.gd/*", "*rebrand.ly/*", "*adf.ly/*", "*rb.gy/*", "*bashupload.com/*", "*bujang.online/*"
|
||||
) and not process.parent.executable in ("/opt/aws/awsagent/bin/update", "/batch/pac.liste.categorie.sh")
|
||||
) and not (
|
||||
process.parent.executable in ("/opt/aws/awsagent/bin/update", "/batch/pac.liste.categorie.sh") or
|
||||
process.parent.args == "/usr/local/gg/crowdsec-extract.sh"
|
||||
)
|
||||
'''
|
||||
|
||||
min_endpoint_version = "7.15.0"
|
||||
|
||||
+3
-2
@@ -7,7 +7,7 @@ id = "49ab63a4-ed52-49ac-855b-c298b38b0cb9"
|
||||
license = "Elastic License v2"
|
||||
name = "Egress Network Connection from Deleted Executable by Root"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.14"
|
||||
version = "1.0.15"
|
||||
|
||||
query = '''
|
||||
network where event.type == "start" and event.action == "connection_attempted" and process.executable like "* (deleted)" and
|
||||
@@ -24,7 +24,8 @@ not (
|
||||
"/usr/bin/*", "/bin/*", "/opt/*", "/home/*", "/usr/share/*", "/usr/lib/*", "/usr/libexec/*", "/run/k3s/*",
|
||||
"/var/lib/waagent/*", "/usr/local/bin/*", "/sbin/*", "/usr/sbin/*", "/usr/local/sbin/*", "/usr/local/lib/*",
|
||||
"/usr/lib64/*", "/var/tmp/go-build*", "/app/extra/slack*", "/projects/hash-manager/dist/*/hash-manager*",
|
||||
"/nextcloud/custom_apps/notify_push/bin/x86_64/notify_push*", "/usr/local/lad/bin/mdsd*"
|
||||
"/nextcloud/custom_apps/notify_push/bin/x86_64/notify_push*", "/usr/local/lad/bin/mdsd*",
|
||||
"/run/containerd/io.containerd.runtime.v2.task/k8s.io/*/longhorn*"
|
||||
) or
|
||||
process.name in ("dockerd", "teleport", "zed-editor", "datacollector", "exe")
|
||||
)
|
||||
|
||||
+2
-1
@@ -13,7 +13,7 @@ reference = [
|
||||
"https://github.com/MythicAgents/merlin/blob/main/Payload_Type/merlin/container/commands/memfd.go",
|
||||
"https://x-c3ll.github.io/posts/fileless-memfd_create/",
|
||||
]
|
||||
version = "1.0.18"
|
||||
version = "1.0.19"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.parent.executable != null and
|
||||
@@ -27,6 +27,7 @@ not (
|
||||
"/usr/bin/runc", "/usr/bin/login", "/usr/bin/nvidia-cdi-hook", "/usr/bin/buildkit-runc", "/usr/bin/nordlayer",
|
||||
"/usr/sbin/nordlayer", "/usr/libexec/nordlayer/nordlayer-setcap", "/sbin/apk", "/opt/sophos-spl/plugins/runtimedetections/bin/runtimedetections"
|
||||
) or
|
||||
process.parent.executable like "/proc/self/fd/*/*" or
|
||||
(process.parent.name == "init" and process.args == "/usr/lib/systemd/systemd-executor") or
|
||||
(process.parent.name like "python*" and process.args == "-m" and process.args == "test.regrtest" and process.args == "--pgo")
|
||||
)
|
||||
|
||||
@@ -12,7 +12,7 @@ reference = [
|
||||
"https://github.com/MythicAgents/merlin/blob/main/Payload_Type/merlin/container/commands/memfd.go",
|
||||
"https://x-c3ll.github.io/posts/fileless-memfd_create/",
|
||||
]
|
||||
version = "1.0.15"
|
||||
version = "1.0.16"
|
||||
|
||||
query = '''
|
||||
sequence by process.entity_id with maxspan=10s
|
||||
@@ -21,7 +21,8 @@ sequence by process.entity_id with maxspan=10s
|
||||
process.args like ("/usr/lib/systemd/systemd-executor", "/nix/store/*/systemd-executor*") or
|
||||
process.parent.executable like (
|
||||
"/usr/sbin/runc", "/usr/bin/dockerd", "/lib/systemd/systemd", "/usr/lib/systemd/systemd", "/nix/store/*/systemd",
|
||||
"/opt/sentinelone/bin/addon-host", "/opt/gitlab/embedded/bin/gitlab-kas", "/usr/sbin/nordlayerd", "/sbin/init"
|
||||
"/opt/sentinelone/bin/addon-host", "/opt/gitlab/embedded/bin/gitlab-kas", "/usr/sbin/nordlayerd", "/sbin/init",
|
||||
"/proc/self/fd/*/*"
|
||||
) or
|
||||
process.command_line == "runc init"
|
||||
)]
|
||||
|
||||
@@ -8,7 +8,7 @@ id = "e6669bc3-cb75-4fb3-91e0-ddaa06dd59b2"
|
||||
license = "Elastic License v2"
|
||||
name = "Potential Process Masquerading via Exec"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.12"
|
||||
version = "1.0.13"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.parent.executable != null and
|
||||
@@ -22,7 +22,9 @@ process.args == "-c" and process.command_line : "* exec -a *" and not (
|
||||
) or
|
||||
process.command_line like (
|
||||
"*/tmp/fzf-args*", "/opt/sp/serverpilot/*", "*/opt/forticlientems/*", "*WarpTerminal*", "/bin/bash -c exec -a bash*",
|
||||
"/bin/bash -c exec -a sp-agent /opt/sp/serverpilot/agent/bin/sp-agent", """bash -c exec -a "$0" "$@" reboot /usr/sbin/reboot.no-molly-guard"""
|
||||
"/bin/bash -c exec -a sp-agent /opt/sp/serverpilot/agent/bin/sp-agent", """bash -c exec -a "$0" "$@" reboot /usr/sbin/reboot.no-molly-guard""",
|
||||
"bash -c exec -a auto_upgrade_fcems /opt/forticlientemstmp/upgradeworker_linux_amd64 -config ./goEMS.conf",
|
||||
"bash -c exec -a cubin_gpu_pool_worker sleep *"
|
||||
) or
|
||||
process.working_directory in ("/opt/novell/umc/apps/umc-server", "/opt/novell/umc/apps/oes-rest", "/usr/share/epoptes-client") or
|
||||
process.args in (
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
[rule]
|
||||
description = """
|
||||
This rule detects the execution of processes from the /boot directory. This may indicate an attempt to execute a process
|
||||
from a location that is not typical for executable files. This behavior is often associated with malicious activity.
|
||||
"""
|
||||
id = "87bd993d-d2fa-4047-bc7b-d6a4527d6ab8"
|
||||
license = "Elastic License v2"
|
||||
name = "Process Execution from Boot Directory"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.10"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.executable like "/boot/*" and
|
||||
not process.executable == "/boot/loader/entries"
|
||||
'''
|
||||
|
||||
min_endpoint_version = "7.15.0"
|
||||
optional_actions = []
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.entity_id"
|
||||
state = 0
|
||||
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.parent.entity_id"
|
||||
state = 0
|
||||
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1059"
|
||||
name = "Command and Scripting Interpreter"
|
||||
reference = "https://attack.mitre.org/techniques/T1059/"
|
||||
[[threat.technique.subtechnique]]
|
||||
id = "T1059.004"
|
||||
name = "Unix Shell"
|
||||
reference = "https://attack.mitre.org/techniques/T1059/004/"
|
||||
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0002"
|
||||
name = "Execution"
|
||||
reference = "https://attack.mitre.org/tactics/TA0002/"
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1036"
|
||||
name = "Masquerading"
|
||||
reference = "https://attack.mitre.org/techniques/T1036/"
|
||||
|
||||
[[threat.technique]]
|
||||
id = "T1620"
|
||||
name = "Reflective Code Loading"
|
||||
reference = "https://attack.mitre.org/techniques/T1620/"
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0005"
|
||||
name = "Defense Evasion"
|
||||
reference = "https://attack.mitre.org/tactics/TA0005/"
|
||||
|
||||
[internal]
|
||||
min_endpoint_version = "7.15.0"
|
||||
@@ -7,7 +7,7 @@ id = "4c61fca2-6f77-474d-a537-2d7fd9ec75e0"
|
||||
license = "Elastic License v2"
|
||||
name = "Shell Execution of Non-Executable File"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.8"
|
||||
version = "1.0.9"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.args_count == 2 and
|
||||
@@ -20,7 +20,11 @@ process.args like ("*.pid", "*.txt", "*.json", "*.bin", "*.log", "*.dat") and
|
||||
not (
|
||||
process.args in ("/opt/config/example.txt", "/var/lib/git/beinformed.git/subgit/authors.txt") or
|
||||
process.parent.args == "/sbin/init" or
|
||||
process.parent.executable in ("/usr/bin/emscli", "./runc")
|
||||
process.parent.executable in ("/usr/bin/emscli", "./runc") or
|
||||
process.command_line in (
|
||||
/* Manage Engine UEMS Agent */
|
||||
"/bin/bash /opt/DesktopCentral/UEMS_LinuxAgent.bin", "/bin/bash ./UEMS_LinuxAgent.bin"
|
||||
)
|
||||
)
|
||||
'''
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ id = "4daceba6-54be-4dfc-95ab-a4a9c19c77af"
|
||||
license = "Elastic License v2"
|
||||
name = "System Binary Copied or Moved"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.12"
|
||||
version = "1.0.13"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.name in ("cp", "mv") and
|
||||
@@ -54,7 +54,7 @@ process.args in (
|
||||
"/usr/local/bin/sigostclsh8.6", "/usr/lib/usrmerge/convert-usrmerge", "/usr/sbin/rear", "/usr/bin/byobu-status", "/sbin/rear",
|
||||
"/usr/bin/find", "/tmp/newroot/nix/store/*/activate", "/nix/store/*/activate", "/var/lib/containers/storage/overlay/nix/store/*/activate",
|
||||
"/var/lib/dpkg/tmp.ci/preinst", "/usr/sbin/nv-update-initrd", "/sbin/dracut", "/opt/SIGOS/*", "/tmp/newroot/usr/lib/dracut/dracut-install",
|
||||
"/usr/libexec/flatpak-session-helper", "/usr/sbin/mkinitramfs", "/var/tmp/portage/*/libtool"
|
||||
"/usr/libexec/flatpak-session-helper", "/usr/sbin/mkinitramfs", "/var/tmp/portage/*/libtool", "/tmp/newroot/usr/bin/make"
|
||||
) or
|
||||
process.working_directory like (
|
||||
"/etc/localtime/var/lib/rancher", "/run/k3s/containerd/*", "/var/lib/docker/*", "/var/lib/rancher", "/var/tmp/portage/*"
|
||||
@@ -62,7 +62,7 @@ process.args in (
|
||||
process.args like ("/var/tmp/dracut.*/initramfs/*", "/var/tmp/mkinitramfs_*", "/opt/jail/driver-jail/*") or
|
||||
process.parent.args like (
|
||||
"/var/tmp/rpm-tmp*", "/usr/sbin/rear", "/usr/lib/usrmerge/convert-usrmerge", "/usr/share/initramfs-tools/hooks/zz-busybox",
|
||||
"./libtool", "/var/lib/dpkg/info/dash.postinst"
|
||||
"./libtool", "/var/lib/dpkg/info/dash.postinst", "*./libtool*"
|
||||
) or
|
||||
process.command_line in (
|
||||
"mv kubectl /usr/bin/kubectl", "mv ./kubectl /usr/bin/kubectl", "cp kubectl /usr/local/bin/kubectl",
|
||||
|
||||
@@ -7,7 +7,7 @@ id = "2dc02903-9487-4152-87ac-f1c6c7f3a7d3"
|
||||
license = "Elastic License v2"
|
||||
name = "Background Task Execution via a Hidden Process"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.6"
|
||||
version = "1.0.7"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and
|
||||
@@ -18,7 +18,8 @@ not (
|
||||
process.parent.executable like (
|
||||
".", "/usr/bin/podman", "./.runc-wrapped", "/nix/store/*", "/dev/.buildkit_qemu_emulator"
|
||||
) or
|
||||
process.parent.args in ("/usr/bin/crun", "lxc-attach")
|
||||
process.parent.args in ("/usr/bin/crun", "lxc-attach") or
|
||||
process.args == "lxc-attach"
|
||||
)
|
||||
'''
|
||||
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
[rule]
|
||||
description = """
|
||||
Detects when a hidden process spawns an interactive shell. This behavior may indicate a malicious actor attempting to
|
||||
execute post-exploitation commands.
|
||||
"""
|
||||
id = "52deef30-e633-49e1-9dd2-da1ad6cb5e43"
|
||||
license = "Elastic License v2"
|
||||
name = "Interactive Shell Spawned via Hidden Process"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.7"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.parent.name like ".*" and
|
||||
process.name in ("bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish") and process.args in ("-i", "-li", "-il") and
|
||||
not (
|
||||
process.parent.executable like ("/nix/store/*", "/tmp/newroot/nix/store/*") or
|
||||
process.parent.args == "/usr/bin/crun" or
|
||||
process.parent.command_line == "runc init"
|
||||
)
|
||||
'''
|
||||
|
||||
min_endpoint_version = "7.15.0"
|
||||
optional_actions = []
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.entity_id"
|
||||
state = 0
|
||||
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.parent.entity_id"
|
||||
state = 0
|
||||
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1059"
|
||||
name = "Command and Scripting Interpreter"
|
||||
reference = "https://attack.mitre.org/techniques/T1059/"
|
||||
[[threat.technique.subtechnique]]
|
||||
id = "T1059.004"
|
||||
name = "Unix Shell"
|
||||
reference = "https://attack.mitre.org/techniques/T1059/004/"
|
||||
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0002"
|
||||
name = "Execution"
|
||||
reference = "https://attack.mitre.org/tactics/TA0002/"
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1564"
|
||||
name = "Hide Artifacts"
|
||||
reference = "https://attack.mitre.org/techniques/T1564/"
|
||||
[[threat.technique.subtechnique]]
|
||||
id = "T1564.001"
|
||||
name = "Hidden Files and Directories"
|
||||
reference = "https://attack.mitre.org/techniques/T1564/001/"
|
||||
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0005"
|
||||
name = "Defense Evasion"
|
||||
reference = "https://attack.mitre.org/tactics/TA0005/"
|
||||
|
||||
[internal]
|
||||
min_endpoint_version = "7.15.0"
|
||||
+2
-2
@@ -8,7 +8,7 @@ license = "Elastic License v2"
|
||||
name = "Linux Hidden Folder or File Execution via Python"
|
||||
os_list = ["linux"]
|
||||
reference = ["https://github.com/rapid7/metasploit-framework"]
|
||||
version = "1.0.14"
|
||||
version = "1.0.15"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and
|
||||
@@ -24,7 +24,7 @@ not (
|
||||
process.parent.executable like "/home/*/node_modules/@openai/codex/bin/codex-x86_64-unknown-linux-musl" and
|
||||
process.command_line like "python3 /tmp/.tmp*"
|
||||
) or
|
||||
(process.args == "/usr/bin/ukify" and process.args == "build")
|
||||
(process.args in ("/usr/bin/ukify", "/bin/ukify") and process.args == "build")
|
||||
)
|
||||
'''
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ id = "e9731cea-c3fc-4183-a76c-9a798ae0a2b0"
|
||||
license = "Elastic License v2"
|
||||
name = "Linux Powershell Suspicious Child Process"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.9"
|
||||
version = "1.0.10"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.parent.name == "pwsh" and
|
||||
@@ -21,7 +21,8 @@ not (
|
||||
"/opt/ansible*/Evaluate-STIG/powershell/pwsh", "/evaluate/Evaluate-STIG/powershell/pwsh",
|
||||
"/opt/Evaluate-STIG/powershell/pwsh"
|
||||
) or
|
||||
process.working_directory like "/opt/azurevstsagent/agent*"
|
||||
process.working_directory like "/opt/azurevstsagent/agent*" or
|
||||
process.args like "/home/*/.local/bin/az"
|
||||
)
|
||||
'''
|
||||
|
||||
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
[rule]
|
||||
description = """
|
||||
Detects when a process is executed via an interactive shell. C2 platforms will commonly spawn an interactive shell
|
||||
providing the threat actor with a remote shell on the system as if they were physically at the terminal allowing them to
|
||||
send and execute commands manually.
|
||||
"""
|
||||
id = "aa02591f-c9e6-4317-841e-0b075b9515ff"
|
||||
license = "Elastic License v2"
|
||||
name = "Linux Suspicious Child Process Execution via Interactive Shell"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.19"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.args in ("-i", "-il", "-li") and process.args_count <= 2 and
|
||||
process.name in ("bash", "dash", "ash", "sh", "tcsh", "csh", "zsh", "ksh", "fish") and process.parent.args_count > 1 and
|
||||
process.parent.name like (
|
||||
"bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish", "python*", "php*", "socat",
|
||||
"perl", "ruby", "lua*", "openssl", "nc", "netcat", "ncat", "telnet", "awk", "node"
|
||||
) and not (
|
||||
process.parent.args like (
|
||||
"echo*| sudo -S su; sudo su;*SHELL -i", "/usr/share/kali-menu/exec-in-shell", "/usr/bin/kali-treecd", "pipenv",
|
||||
"/usr/scratch/xar/23e8559c/bin/python"
|
||||
) or
|
||||
process.parent.command_line in (
|
||||
"/bin/sh -c bash -i </dev/tty >/dev/tty 2>/dev/tty", "/bin/bash --login --posix", "bash -c sudo su - oracle; $SHELL -i"
|
||||
) or
|
||||
process.parent.command_line like (
|
||||
"/usr/scratch/*poetry shell", "*/u01/app/oracle.ahf/tfa/internal/tmp/*.sh*", "*/opt/oracle/oracle.ahf/tfa/internal/*.sh*",
|
||||
"bash -c ls -al; $SHELL -i", "bash -c cd ~/GIT/salt/pillars; $SHELL -i", "bash -c cd ~/GIT/ansible-infra; $SHELL -i",
|
||||
"bash -c cd ~/GIT/salt/states; $SHELL -i", "bash -c cd ~/GIT/puppet/hieradata; $SHELL -i",
|
||||
"bash -c cd ~/GIT/puppet/ind_legacy; $SHELL -i"
|
||||
) or
|
||||
process.command_line == "/opt/cursor.appimage -i" or
|
||||
process.parent.executable like (
|
||||
"/mnt/*/.vscode-server/bin/*/node", "/vscode/vscode-server/bin/*/node", "/home/*/.vscode-server/bin/*/node",
|
||||
"/usr/scratch/*/.vscode-server/bin/*/node", "/home/*/.vscode-server/*/server/node", "/scratch/user/*/.vscode-server/cli/servers/*/server/node",
|
||||
"/home/*/.vscode/cli/servers/*/server/node", "/root/.vscode-server/cli/servers/*/server/node", "/mnt/*/.vscode-server/cli/servers/*/server/node",
|
||||
"/home/*/.antigravity-server/bin/*/node", "/user/*/.trae-server/bin/*/node"
|
||||
) or
|
||||
(process.parent.command_line like ("*pipenv*", "*poetry*") and process.parent.args:"shell")
|
||||
)
|
||||
'''
|
||||
|
||||
min_endpoint_version = "7.15.0"
|
||||
optional_actions = []
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.entity_id"
|
||||
state = 0
|
||||
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.parent.entity_id"
|
||||
state = 0
|
||||
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1059"
|
||||
name = "Command and Scripting Interpreter"
|
||||
reference = "https://attack.mitre.org/techniques/T1059/"
|
||||
[[threat.technique.subtechnique]]
|
||||
id = "T1059.004"
|
||||
name = "Unix Shell"
|
||||
reference = "https://attack.mitre.org/techniques/T1059/004/"
|
||||
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0002"
|
||||
name = "Execution"
|
||||
reference = "https://attack.mitre.org/tactics/TA0002/"
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1071"
|
||||
name = "Application Layer Protocol"
|
||||
reference = "https://attack.mitre.org/techniques/T1071/"
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0011"
|
||||
name = "Command and Control"
|
||||
reference = "https://attack.mitre.org/tactics/TA0011/"
|
||||
|
||||
[internal]
|
||||
min_endpoint_version = "7.15.0"
|
||||
@@ -8,12 +8,12 @@ id = "332a8018-6615-4d2d-aeff-61e85e5ae77b"
|
||||
license = "Elastic License v2"
|
||||
name = "Netcat Reverse Shell via Busybox"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.7"
|
||||
version = "1.0.8"
|
||||
|
||||
query = '''
|
||||
sequence by process.entity_id with maxspan=5s
|
||||
[process where event.type == "start" and event.action == "exec" and process.name == "busybox" and
|
||||
process.command_line like ("* nc *", "* netcat *", "* ncat *") and not process.args like "-*z*"]
|
||||
process.command_line like ("* nc *", "* netcat *", "* ncat *") and not process.command_line like "*-*z*"]
|
||||
[network where event.type == "start" and event.action == "connection_attempted" and process.name == "busybox" and
|
||||
not (destination.ip == null or destination.ip == "0.0.0.0" or cidrmatch(
|
||||
destination.ip, "10.0.0.0/8", "127.0.0.0/8", "169.254.0.0/16", "172.16.0.0/12", "192.0.0.0/24", "192.0.0.0/29",
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
[rule]
|
||||
description = """
|
||||
This rule detects the creation of a reverse shell through the use of named pipes. Attackers may leverage named pipes to
|
||||
evade detection and establish persistence onto a target system.
|
||||
"""
|
||||
id = "40bec6eb-e93b-4d09-8265-66bba186e332"
|
||||
license = "Elastic License v2"
|
||||
name = "Potential Reverse Shell via Named Pipe"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.15"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and
|
||||
process.parent.name in ("bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish") and (
|
||||
(process.name == "mknod" and process.args like ("/tmp/*", "/var/tmp/*", "/dev/shm/*") and process.args_count <= 5) or
|
||||
(
|
||||
process.name == "mkfifo" and
|
||||
process.parent.args == "-c" and
|
||||
process.parent.command_line like "*rm*" and
|
||||
process.parent.command_line like "*|*" and
|
||||
process.parent.command_line regex ".*[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}.*"
|
||||
)
|
||||
) and
|
||||
not (process.name == "mknod" and process.args like ("/var/tmp/dracut*", "/tmp/dracut.*", "/var/tmp/portage/*", "/tmp/dib_build*"))
|
||||
'''
|
||||
|
||||
min_endpoint_version = "7.15.0"
|
||||
optional_actions = []
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.entity_id"
|
||||
state = 0
|
||||
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.parent.entity_id"
|
||||
state = 0
|
||||
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1059"
|
||||
name = "Command and Scripting Interpreter"
|
||||
reference = "https://attack.mitre.org/techniques/T1059/"
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0002"
|
||||
name = "Execution"
|
||||
reference = "https://attack.mitre.org/tactics/TA0002/"
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1071"
|
||||
name = "Application Layer Protocol"
|
||||
reference = "https://attack.mitre.org/techniques/T1071/"
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0011"
|
||||
name = "Command and Control"
|
||||
reference = "https://attack.mitre.org/tactics/TA0011/"
|
||||
|
||||
[internal]
|
||||
min_endpoint_version = "7.15.0"
|
||||
+2
-2
@@ -9,7 +9,7 @@ id = "d67ef864-5567-4675-b2eb-7dfd4443e8af"
|
||||
license = "Elastic License v2"
|
||||
name = "Recently Downloaded File Made Executable and Run"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.6"
|
||||
version = "1.0.7"
|
||||
|
||||
query = '''
|
||||
sequence by process.parent.entity_id with maxspan=10s
|
||||
@@ -37,7 +37,7 @@ sequence by process.parent.entity_id with maxspan=10s
|
||||
process.parent.executable == "/usr/local/bin/check_idle.sh" or
|
||||
process.executable like (
|
||||
"/var/lib/docker/*", "/tmp/tmp.*/rustup-init", "/tmp/cis-diagnose-rc-amd64", "/tmp/tmp.*/juliainstaller",
|
||||
"/etc/actions-runner-*", "/builds/*/snyk"
|
||||
"/etc/actions-runner-*", "/builds/*/snyk", "/tmp/mpm", "/tmp/coder.*/coder", "/tmp/helm"
|
||||
) or
|
||||
(process.executable like "/tmp/teleport-*/install.sh" and process.args == "/usr/bin/env" and process.working_directory like "/tmp/teleport-*") or
|
||||
(process.executable == "/tmp/garage" and process.parent.args == "/garage-init") or
|
||||
|
||||
@@ -7,7 +7,7 @@ id = "9e879677-2317-4c1d-bddb-8fa4629be810"
|
||||
license = "Elastic License v2"
|
||||
name = "Sleep Execution from Suspicious Process Path"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.12"
|
||||
version = "1.0.13"
|
||||
|
||||
query = '''
|
||||
sequence by process.parent.entity_id with maxspan=5s
|
||||
@@ -21,8 +21,9 @@ sequence by process.parent.entity_id with maxspan=5s
|
||||
"/tmp/*/.venv/bin/python", "/tmp/text_templater_*", "/var/tmp/container*/usr/bin/dpkg", "/tmp/container*/usr/bin/dpkg",
|
||||
"/run/systemd/mount-rootfs/nix/store/*", "/tmp/xfs-*/yarn", "/tmp/root/spack*", "/tmp/nix-shell-*/node",
|
||||
"/tmp/nix-shell-*/yarn", "/var/tmp/portage/*", "/tmp/.*.ansible/ansible-tmp-*", "/tmp/nsjail.1000.root/usr/bin/sleep",
|
||||
"/tmp/usr/bin/*"
|
||||
"/tmp/usr/bin/*", "/tmp/build/.heroku/node/bin/npm", "/tmp/petalinux/*", "/tmp/tailsampling-*"
|
||||
) or
|
||||
process.command_line == "runc init" or
|
||||
process.name in ("gcc", "xgcc", "nvim") or
|
||||
process.parent.name == "ansible" or
|
||||
process.working_directory like (
|
||||
@@ -33,6 +34,7 @@ sequence by process.parent.entity_id with maxspan=5s
|
||||
"/tmp/go-build*", "/tmp/newroot/tmp/.mount*", "/var/lib/containers/*", "/tmp/newroot/usr/bin/ansible-playbook",
|
||||
"/usr/bin/ansible-playbook"
|
||||
) or
|
||||
process.parent.args like "source /home/*/.claude/shell-snapshots/snapshot-bash*" or
|
||||
process.parent.command_line like "*github.com/community-scripts/ProxmoxVE/*" or
|
||||
process.parent.command_line == "bash -c while true; do sleep 1;head -v -n 8 /proc/meminfo; head -v -n 2 /proc/stat /proc/version /proc/uptime /proc/loadavg /proc/sys/fs/file-nr /proc/sys/kernel/hostname; tail -v -n 32 /proc/net/dev;echo '==> /proc/df <==';df -l;echo '==> /proc/who <==';who;echo '==> /proc/end <==';echo '##Moba##'; done"
|
||||
)]
|
||||
|
||||
@@ -7,7 +7,7 @@ id = "613da93c-226e-4150-9125-3b476103c0b9"
|
||||
license = "Elastic License v2"
|
||||
name = "Socat Reverse Shell or Listener Activity"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.12"
|
||||
version = "1.0.13"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.name == "socat" and
|
||||
@@ -15,12 +15,13 @@ process.command_line like~ ("*exec*", "*tty*", "*fork*", "*file*", "*open*") and
|
||||
process.command_line like~ ("*tcp*", "*udp*", "*openssl*") and
|
||||
not (
|
||||
process.command_line like~ ("*127.0.0.1*", "*localhost*", "*/dev/tty*") or
|
||||
process.parent.executable in ("/usr/bin/wsrep_sst_xtrabackup-v2", "/usr/bin/dumb-init", "/usr/bin/make", "/usr/bin/sudo") or
|
||||
process.parent.executable in ("/usr/bin/wsrep_sst_xtrabackup-v2", "/usr/bin/dumb-init", "/usr/bin/make", "/usr/bin/sudo", "/usr/bin/wsrep_sst_mariabackup") or
|
||||
process.parent.executable like "/var/lib/docker/*" or
|
||||
process.parent.command_line == "runc init" or
|
||||
process.parent.name in ("kube-apiserver", "apiserver_entrypoint.sh", "start-proxy") or
|
||||
(process.working_directory == "/usr/share/epoptes-client" and process.parent.command_line == "epoptes-client") or
|
||||
process.parent.args == "/usr/bin/wsrep_sst_xtrabackup-v2"
|
||||
process.parent.args == "/usr/bin/wsrep_sst_xtrabackup-v2" or
|
||||
process.args like ("UNIX-CONNECT:/tmp/claude-*.sock", "TCP:*.devops.maintenance.abovecloud.io:443")
|
||||
)
|
||||
'''
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ id = "d00bd50b-577e-47a7-9234-b4bfaa599791"
|
||||
license = "Elastic License v2"
|
||||
name = "Suspicious PHP Command Execution"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.6"
|
||||
version = "1.0.7"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.parent.executable != null and
|
||||
@@ -23,10 +23,15 @@ process.args == "-r" and process.command_line like~ (
|
||||
"*move_uploaded_file(*"
|
||||
) and not (
|
||||
// Exclude web server processes as these are covered by other rules
|
||||
process.working_directory like ("/var/www/*", "/builds/*", "/home/*/jenkins/*", "/home/*/public_html*") or
|
||||
process.working_directory like (
|
||||
"/var/www/*", "/builds/*", "/home/*/jenkins/*", "/home/*/public_html*", "/var/lib/ldap-account-manager/config"
|
||||
) or
|
||||
process.parent.args like ("/var/www/html/*", "source /home/*/.claude/shell*") or
|
||||
process.args like "/usr/local/cpanel/*" or
|
||||
process.command_line like "*https://composer.github.io/installer.sig*" or
|
||||
process.command_line like (
|
||||
"*https://composer.github.io/installer.sig*",
|
||||
"*json_decode(file_get_contents('php://stdin')*"
|
||||
) or
|
||||
process.parent.command_line == "runc init"
|
||||
)
|
||||
'''
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
[rule]
|
||||
description = """
|
||||
This rule monitors for suspicious Python command executions by detecting the start of a Python process with a command
|
||||
line argument that contains keywords commonly used by attackers to execute malicious code. These command line arguments
|
||||
include operations to execute code, create subprocesses, and encode or decode data.
|
||||
"""
|
||||
id = "028d01ae-bfbf-438e-a0d0-23aee55ea5c9"
|
||||
license = "Elastic License v2"
|
||||
name = "Suspicious Python Command Execution"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.16"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.name like "python*" and
|
||||
process.executable like ("/bin/python*", "/usr/bin/python*", "/usr/local/bin/python*") and
|
||||
process.args == "-c" and (
|
||||
(
|
||||
process.command_line like~ ("*import *os;*", "*import *os,*", "*import *pty;*", "*import *pty,*") and
|
||||
process.command_line like~ ("*os.system*", "*os.setuid*", "*os.dup2*", "*pty*", "*os.popen(*")
|
||||
) or
|
||||
(
|
||||
process.command_line like~ ("*import *socket;*", "*import *socket,*") and
|
||||
process.command_line like~ ("*.connect(*", "*os.getenv*", "*os.dup2*", "*socket.socket(*", "*.bind(*") and
|
||||
process.command_line like~ "*/bin/*sh*"
|
||||
) or
|
||||
(
|
||||
process.command_line like~ ("*import *subprocess*;", "*import *subprocess,*") and
|
||||
process.command_line like~ "*subprocess.call*"
|
||||
) or
|
||||
(
|
||||
process.command_line like~ ("*base64*", "*binascii*", "*zlib*", "*gzip*", "*bz2*", "*lzma*", "*marshal.loads(*", "*pickle.loads(*") and
|
||||
process.command_line like~ ("*exec(*", "*eval(*")
|
||||
)
|
||||
) and process.working_directory like (
|
||||
"/var/www/*", "/tmp/*", "/var/tmp/*", "/dev/shm/*", "/home/*", "/root/*"
|
||||
) and not (
|
||||
process.parent.args in ("pip", "install", "--pgo", "/tmp/portage/bin/pid-ns-init") or
|
||||
process.parent.args like "/home/*/bin/join-zoom.sh" or
|
||||
process.parent.name in ("pip", "pytest", "pip3", "sudo", "sshd", "teleport") or
|
||||
process.executable like~ ("/var/lib/docker/*", "/tmp/plz_sandbox/*") or
|
||||
process.command_line like (
|
||||
"/usr/local/bin/python* -u -c import sys;exec(eval(sys.stdin.readline()))",
|
||||
"/usr/bin/python* -u -c import sys;exec(eval(sys.stdin.readline()))",
|
||||
"python -c import socket s = socket.socket(socket.AF_INET) s.bind(('127.0.0.1', 0)) _, listen_port = s.getsockname() s.close() print(listen_port)",
|
||||
"*sqlite*", "*postgres*", "python -c import sys;import base64;sys.stdout.write('@Main\n');exec(base64.b64decode(sys.stdin.readline().rstrip()))#ZeroNetworks",
|
||||
"""/usr/bin/python3 -c from tkinter import Tcl; print(Tcl().eval("info*"))""",
|
||||
"python3*os.system*echo test*", "python3 -c import pymysql*",
|
||||
"python3 -c import socket; s=socket.socket(); s.bind(('', 0)); print(s.getsockname()[1]); s.close()",
|
||||
"python3 -c import socket; s=socket.socket(); s.bind(('0', 0)); print(s.getsockname()[1]); s.close()",
|
||||
"python3 -c import socket; s=socket.socket(); s.bind(('0.0.0.0', 0)); print(s.getsockname()[1]); s.close()",
|
||||
"python3 -c import socket; s=socket.socket(); s.bind(('localhost', 0)); print(s.getsockname()[1]); s.close()",
|
||||
"import sys;sys.path=[p for p in sys.path if p];import binascii,os,zlib;exec(zlib.decompress(binascii.a2b_base64(*",
|
||||
"*Thomas Nagy*"
|
||||
) or
|
||||
process.parent.executable like~ (
|
||||
"/var/lib/amazon/ssm/*", "/var/anaconda3/envs/*", "/tmp/plz_sandbox/test", "/usr/bin/cockpit-bridge",
|
||||
"/pro/bin/sys/dbutils/dbaValidateOsUserCredentials.sh", "/usr/sbin/lxc", "/sbin/lxc", "/data/flash/Linux_for_Tegra/flash.sh",
|
||||
"/usr/bin/ansible-playbook", "/usr/local/bin/teleport", "/usr/local/bin/odoo-helper", "/home/*/bin/join-zoom.sh",
|
||||
"/usr/lib/openssh/sshd-session", "/usr/sbin/lxd", "/usr/sbin/tailscaled"
|
||||
) or
|
||||
process.args like~ """import zlib,base64; exec(zlib.decompress(base64.b64decode(b"eJxlU01v2zAMPUe/QvClEqYZTb*""" or
|
||||
process.working_directory like~ (
|
||||
"/data/jenkins/.local/share/containers/storage/overlay/*", "/var/run/cloudera-scm-agent/*", "/tmp/pip-req-build*",
|
||||
"/tmp/pip-resolve-*", "/build/source", "/tmp/pip-install-*", "/opt/airflow", "/tmp/pip-wheel-*", "/tmp/pip-download-*",
|
||||
"/tmp/plz_sandbox", "/builds/*", "/scratch/*", "/tmp/cmdickens/easybuild/*", "/tmp/thangha/easybuild*",
|
||||
"/tmp/baum/easybuild/*", "/tmp/zenix-flashing/*", "/opt/ansible*", "/pro/bin/sys/monitor", "/home/jenkins/workspace/*",
|
||||
"/var/tmp/portage/*", "/tmp/build/*/ansible", "/root/thg-intelligence", "/home/*/*/*/*", "/root/airflow"
|
||||
) or
|
||||
process.parent.command_line like~ (
|
||||
"/nix/store/*pytest*", "*/home/*/.claude/shell-snapshots/*", "*vault/core/test_hub/resources/events_checksum_monitor/bucket/verifier_test.go*"
|
||||
) or
|
||||
process.parent.command_line in ("/bin/bash /docker-entrypoint.sh worker", "/bin/bash /docker-entrypoint.sh") or
|
||||
(process.parent.args == "/usr/sbin/lxc" and process.parent.args in ("list", "info", "version")) or
|
||||
(process.working_directory like "/tmp/tmp.*" and process.command_line == "python3 -c import socket; s = socket.socket(); s.bind(('', 0)); print(s.getsockname()[1]); s.close()") or
|
||||
(
|
||||
process.executable in ("/bin/python2", "/usr/bin/python2") and
|
||||
process.command_line like (
|
||||
"*causixenqueuer/firefoot/config.json*", "*s3loguploader.yml*", "*MUM1_AWS_ACCESS_KEY_ID*", "*/etc/init/ahn.conf*", "*AWS_SECRET_ACCESS_KEY_SGP1*"
|
||||
)
|
||||
)
|
||||
)
|
||||
'''
|
||||
|
||||
min_endpoint_version = "7.15.0"
|
||||
optional_actions = []
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.entity_id"
|
||||
state = 0
|
||||
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.parent.entity_id"
|
||||
state = 0
|
||||
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1059"
|
||||
name = "Command and Scripting Interpreter"
|
||||
reference = "https://attack.mitre.org/techniques/T1059/"
|
||||
[[threat.technique.subtechnique]]
|
||||
id = "T1059.006"
|
||||
name = "Python"
|
||||
reference = "https://attack.mitre.org/techniques/T1059/006/"
|
||||
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0002"
|
||||
name = "Execution"
|
||||
reference = "https://attack.mitre.org/tactics/TA0002/"
|
||||
|
||||
[internal]
|
||||
min_endpoint_version = "7.15.0"
|
||||
+6
-3
@@ -8,7 +8,7 @@ id = "5f6dbe52-6643-486f-9130-256f58ba9a0c"
|
||||
license = "Elastic License v2"
|
||||
name = "Suspicious Shell Command Execution via Node.js Parent"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.7"
|
||||
version = "1.0.8"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and
|
||||
@@ -32,13 +32,16 @@ process.name in ("bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish") and
|
||||
) and
|
||||
not (
|
||||
process.executable like "/tmp/newroot/*" or
|
||||
process.command_line like ("*169.254.169.254*", "*localhost*", "*127.0.0.1*", "*SNAPSHOT_FILE=*", "*/tmp/claude-shell-snapshot*") or
|
||||
process.command_line like (
|
||||
"*169.254.169.254*", "*localhost*", "*127.0.0.1*", "*SNAPSHOT_FILE=*", "*/tmp/claude-shell-snapshot*",
|
||||
"/home/*/.openclaw/*", "/api.notion.com/*", "/shubble.git/*"
|
||||
) or
|
||||
process.args like ("-l SNAPSHOT_FILE*", "-l source*", "NODE_TLS_REJECT_UNAUTHORIZED=0*", "*.claude/*", "ssh-keyscan*", "supergateway --sse*") or
|
||||
(
|
||||
process.command_line like "/bin/sh -c rm -rf /dev/shm/streams/*" and
|
||||
process.parent.args == "/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js"
|
||||
) or
|
||||
process.parent.args like ("/home/*/.npm-global/lib/node_modules/openclaw/dist/index.js", "openclaw-gateway") or
|
||||
process.parent.args like ("/home/*/.npm-global/lib/node_modules/openclaw/dist/index.js", "openclaw-gateway", "/opt/cursor-agent/node") or
|
||||
process.command_line in (
|
||||
"""/bin/sh -c echo BROWSER=none > .env && echo DEMO=true >> .env && echo PORT=3000 >> .env && printf "PUBLIC_URL=http://$(hostname -I | awk '{print $1}'):3000/\n" >> .env && echo WDS_SOCKET_PORT=3000 >> .env && printf "WDS_SOCKET_HOST=$(hostname -I | awk '{print $1}')\n" >> .env && echo JSX_IMPORT_SOURCE=@ac/library-utils/dist/web-components/wc-jsx >> .env""",
|
||||
"/bin/sh -c chmod +x /etc/init.d/pm2-docker-deployer", """/bin/sh -c grep "^#[ ]*Port[ ]*[0-9]*" /etc/ssh/sshd_config 2>/dev/null"""
|
||||
|
||||
@@ -12,7 +12,7 @@ reference = [
|
||||
"https://www.oracle.com/security-alerts/alert-cve-2025-61882.html",
|
||||
"https://www.crowdstrike.com/en-us/blog/crowdstrike-identifies-campaign-targeting-oracle-e-business-suite-zero-day-CVE-2025-61882/",
|
||||
]
|
||||
version = "1.0.8"
|
||||
version = "1.0.9"
|
||||
|
||||
query = '''
|
||||
sequence with maxspan=1m
|
||||
@@ -38,10 +38,10 @@ sequence with maxspan=1m
|
||||
) and
|
||||
not (
|
||||
process.args like (
|
||||
"for f in*", "id*", "[*", "/usr/bin/mpstat*", "(cp*jenkins-result.txt*", "cat /application/*nohup_*.out*"
|
||||
"for f in*", "id*", "[*", "/usr/bin/mpstat*", "(cp*jenkins-result.txt*", "cat /application/*nohup_*.out*", "test*", "export*"
|
||||
) or
|
||||
process.command_line in (
|
||||
"/bin/bash -c echo ping",
|
||||
"/bin/bash -c echo ping", "bash -c echo $$",
|
||||
"/bin/sh -c export LC_ALL=en_US.UTF-8;if [ -e /tmp ]; then /usr/bin/echo /tmp ; fi ; ",
|
||||
"sh -c stty -echo < /dev/tty",
|
||||
"/bin/sh -c which perl",
|
||||
|
||||
@@ -9,7 +9,7 @@ license = "Elastic License v2"
|
||||
name = "Potential Mining Pool Command Detection"
|
||||
os_list = ["linux"]
|
||||
reference = ["https://falco.org/blog/falco-detect-cryptomining/"]
|
||||
version = "1.0.7"
|
||||
version = "1.0.8"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.parent.executable != null and (
|
||||
@@ -43,12 +43,14 @@ process.command_line like (
|
||||
"*webhop.net*", "*ethpool.org*", "*slushpool.com*", "*antpool.com*", "*nicehash.com*", "*nicehash.net*",
|
||||
"*zergpool.com*", "*mining-dutch.nl*", "*blockmasters.co*", "*bsod.pw*", "*fairpool.xyz*", "*miningrigrentals.com*",
|
||||
"*hashing24.com*", "*ethermine.org*", "*flexpool.io*", "*hiveon.net*", "*sparkpool.com*", "*2miners.org*",
|
||||
"*poolin.com*", "*viabtc.com*", "*btc.com*", "*f2pool.org*", "*coinhive.com*", "*cryptoloot.pro*", "*webmine.cz*",
|
||||
"*poolin.com*", "*viabtc.com*", "*f2pool.org*", "*coinhive.com*", "*cryptoloot.pro*", "*webmine.cz*",
|
||||
"*minero.cc*", "*monerohash.org*", "*monerohash.net*", "*moneropool.ru*", "*moneroocean.stream*", "*rx.unmineable.com*"
|
||||
) and not (
|
||||
process.parent.name in ("sendmail", "postfix-local", "check-quota", "zmcontrol", "find", "timeout", "php") or
|
||||
process.name in ("timeout", "host", "ptxas") or
|
||||
process.command_line like "*zpool.cache*"
|
||||
process.command_line like "*zpool.cache*" or
|
||||
process.parent.args == "/scripts/run_certbot.sh" or
|
||||
process.parent.command_line == "runc init"
|
||||
)
|
||||
'''
|
||||
|
||||
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
[rule]
|
||||
description = """
|
||||
Identifies potential exploitation of a Telnet remote authentication bypass vulnerability (CVE-2026-24061) in GNU
|
||||
Inetutils telnetd. The vulnerability allows unauthenticated access by supplying a crafted "-f <username>" value via the
|
||||
"USER" environment variable, resulting in a login process spawned with elevated privileges.
|
||||
"""
|
||||
id = "afb48a5f-f1d5-402c-91f8-53a8c279e1ed"
|
||||
license = "Elastic License v2"
|
||||
name = "Potential Telnet Authentication Bypass (CVE-2026-24061)"
|
||||
os_list = ["linux"]
|
||||
reference = [
|
||||
"https://www.safebreach.com/blog/safebreach-labs-root-cause-analysis-and-poc-exploit-for-cve-2026-24061/",
|
||||
"https://security-tracker.debian.org/tracker/CVE-2026-24061",
|
||||
"https://man7.org/linux/man-pages/man1/login.1.html",
|
||||
]
|
||||
version = "1.0.1"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and (
|
||||
(process.name == "login" and process.args like~ "-*f*" and process.parent.name == "telnetd") or
|
||||
descendant of [
|
||||
process where event.type == "start" and event.action == "exec" and
|
||||
process.name == "login" and process.args like~ "-*f*" and process.parent.name == "telnetd"
|
||||
]
|
||||
)
|
||||
'''
|
||||
|
||||
min_endpoint_version = "7.15.0"
|
||||
optional_actions = []
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.entity_id"
|
||||
state = 0
|
||||
|
||||
[[actions]]
|
||||
action = "kill_process"
|
||||
field = "process.parent.entity_id"
|
||||
state = 0
|
||||
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1190"
|
||||
name = "Exploit Public-Facing Application"
|
||||
reference = "https://attack.mitre.org/techniques/T1190/"
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0001"
|
||||
name = "Initial Access"
|
||||
reference = "https://attack.mitre.org/tactics/TA0001/"
|
||||
[[threat]]
|
||||
framework = "MITRE ATT&CK"
|
||||
[[threat.technique]]
|
||||
id = "T1210"
|
||||
name = "Exploitation of Remote Services"
|
||||
reference = "https://attack.mitre.org/techniques/T1210/"
|
||||
|
||||
|
||||
[threat.tactic]
|
||||
id = "TA0008"
|
||||
name = "Lateral Movement"
|
||||
reference = "https://attack.mitre.org/tactics/TA0008/"
|
||||
|
||||
[internal]
|
||||
min_endpoint_version = "7.15.0"
|
||||
@@ -7,14 +7,14 @@ id = "d20cd4ba-ff65-4e1c-8012-4241d449b16b"
|
||||
license = "Elastic License v2"
|
||||
name = "Egress Network Connection from RPM Package"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.10"
|
||||
version = "1.0.11"
|
||||
|
||||
query = '''
|
||||
sequence with maxspan=3s
|
||||
[process where event.type == "start" and event.action == "exec" and
|
||||
process.parent.name in ("bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish") and
|
||||
process.parent.args : "/var/tmp/rpm-tmp.*" and not (
|
||||
(process.name == "curl" and process.command_line like "*.microsoft.com/api/report*") or
|
||||
(process.name == "curl" and process.command_line like ("*.microsoft.com/api/report*", "*check.percona.com*")) or
|
||||
process.executable in ("/sbin/runuser", "/usr/sbin/runuser") or
|
||||
process.working_directory like~ ("/builds/packages/naudit-repos", "/disco_flowlytics/docker/overlay2/*") or
|
||||
process.args : ("/usr/local/cpanel/3rdparty/wp-toolkit/*", "/usr/bin/rpmkeys") or
|
||||
|
||||
@@ -13,7 +13,7 @@ reference = [
|
||||
"https://intezer.com/blog/research/kaiji-new-chinese-linux-malware-turning-to-golang/",
|
||||
"https://www.elastic.co/security-labs/primer-on-persistence-mechanisms",
|
||||
]
|
||||
version = "1.0.21"
|
||||
version = "1.0.22"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and (
|
||||
@@ -55,7 +55,8 @@ process where event.type == "start" and event.action == "exec" and (
|
||||
"/tmp/newroot/home/*/.local/share/JetBrains/*", "/home/*/.local/share/caa/caa",
|
||||
"/home/*/.local/bin/gitsign-credential-cache",
|
||||
"/home/*/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/bin/idea",
|
||||
"/home/*/.local/share/JetBrains/*", "/home/*/.local/opt/activitywatch/*"
|
||||
"/home/*/.local/share/JetBrains/*", "/home/*/.local/opt/activitywatch/*",
|
||||
"/home/*/.local/bin/claude-oauth-proxy"
|
||||
) or
|
||||
process.name in ("riptide-agent", "zellij", "gitsign-credential-cache", "jetbrains-toolbox", "goland") or
|
||||
process.working_directory == "/var/lib/rabbitmq"
|
||||
|
||||
+4
-2
@@ -12,7 +12,7 @@ reference = [
|
||||
"https://intezer.com/blog/research/kaiji-new-chinese-linux-malware-turning-to-golang/",
|
||||
"https://www.elastic.co/security-labs/primer-on-persistence-mechanisms",
|
||||
]
|
||||
version = "1.0.14"
|
||||
version = "1.0.15"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and (
|
||||
@@ -37,7 +37,9 @@ process where event.type == "start" and event.action == "exec" and (
|
||||
"/bin/bash -c /etc/init.d/DL-Sync >/dev/null 2>&1",
|
||||
"/bin/bash -c /etc/init.d/warn-users",
|
||||
"/bin/sh -c /etc/init.d/rpmconfigcheck > /dev/null 2>&1",
|
||||
"/bin/sh -c /etc/init.d/dwopen check >/dev/null 2>&1"
|
||||
"/bin/sh -c /etc/init.d/dwopen check >/dev/null 2>&1",
|
||||
"/bin/sh -c /etc/init.d/SapphireIMSAgent keep_alive>/dev/null 2>&1",
|
||||
"/bin/sh -c /etc/init.d/clean-docker.sh"
|
||||
) or
|
||||
process.command_line like~ ("*/etc/init.d/*start*", "*/etc/init.d/*reload*", "*/etc/init.d/*stop*", "*/etc/cron.daily/*") or
|
||||
process.args like~ "/run/jaws-ansible-processors/pcaps/pcap_processor.sh*" or
|
||||
|
||||
@@ -9,7 +9,7 @@ id = "a13c8f01-36a5-4ad7-a282-8d297cf62860"
|
||||
license = "Elastic License v2"
|
||||
name = "Suspicious Echo Execution"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.26"
|
||||
version = "1.0.27"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and
|
||||
@@ -66,7 +66,9 @@ not (
|
||||
"/tmp/go-build*", "/opt/windsurf/windsurf", "/var/lib/docker/overlay2/*/usr/local/bin/node",
|
||||
"/usr/lib/x86_64-linux-gnu/lxc/rootfs/usr/lib/openssh/sshd-session", "/cav/gtm/mumps", "/usr/bin/kiro-cli-chat",
|
||||
"/bin/rphcp", "/u1/grid/*/perl/bin/perl", "/home/*/.vscode-oss/extensions/openai.chatgp*universal/bin/linux-x86_64/codex",
|
||||
"/opt/teleport/system/bin/teleport", "/opt/claude-code/bin/claude", "/usr/cachesys/bin/cache"
|
||||
"/opt/teleport/system/bin/teleport", "/opt/claude-code/bin/claude", "/usr/cachesys/bin/cache", "/usr/bin/sway", "/usr/bin/runc",
|
||||
"/usr/bin/sw-engine", "/opt/nvidia/sdkmanager/sdkmanager-gui", "/usr/bin/claude-bin", "/home/*/.vscode-server/*/codex",
|
||||
"/usr/bin/mawk", "/mnt/ssd/wda/tools/nuctl/nuctl-*-linux-amd64"
|
||||
) or
|
||||
process.parent.command_line in (
|
||||
"runc init", "buildkit-runc init", "/usr/local/bin/runc init", "python ./ssh.py --update-fingerprints bi_team",
|
||||
@@ -82,7 +84,7 @@ not (
|
||||
"*/opt/oracle/instantclient", "*message*log*rotate*", "*CONTROL_BATTERY_LEVEL_POLLING*",
|
||||
"sh -c echo /opt/oracle/instantclient* > /etc/ld.so.conf.d/oracle-instantclient.conf",
|
||||
"sh -c *clsecho*", "/bin/bash -c /usr/local/nagios/libexec/mkls*", "/usr/bin/crun*", "*/usr/bin/ssh-keygen*",
|
||||
"bash -c source /etc/profile.local; echo $REGISTRY_AUTH_FILE",
|
||||
"bash -c source /etc/profile.local; echo $REGISTRY_AUTH_FILE", "*ProxmoxVE*", "*/etc/init.d/acfssihamount*",
|
||||
"""/bin/sh -c echo -e "\n Hi, before stop today is $(date) \n" >> /tmp/daily_stop_start_tomcat-apnbdwef.log; /etc/init.d/tomcat-apnbdwef stop >> /tmp/daily_stop_start_tomcat-apnbdwef.log; echo -e "\n Hi, before start today is $(date) \n" >> /tmp/daily_stop_start_tomcat-apnbdwef.log; /etc/init.d/tomcat-apnbdwef start >> /tmp/daily_stop_start_tomcat-apnbdwef.log"""
|
||||
) or
|
||||
process.command_line == """/usr/bin/sh -c echo date=$(date +"%Y%m%d") > /dev/shm/mag/sptwweb.env""" or
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
[rule]
|
||||
description = """
|
||||
This rule detects the execution of a process from an unusual location, immediately after an SSH process is started. This
|
||||
could indicate an attacker attempting to execute a malicious process in the context of an SSH session, or a succesfully
|
||||
could indicate an attacker attempting to execute a malicious process in the context of an SSH session, or a successfully
|
||||
planted backdoor within a user shell configuration.
|
||||
"""
|
||||
id = "94f548c8-cad2-4bc5-bf61-c0e42558ef65"
|
||||
license = "Elastic License v2"
|
||||
name = "Unusual SSH Parent/Child Execution"
|
||||
os_list = ["linux"]
|
||||
version = "1.0.15"
|
||||
version = "1.0.16"
|
||||
|
||||
query = '''
|
||||
sequence with maxspan=3s
|
||||
|
||||
+2
-2
@@ -10,7 +10,7 @@ license = "Elastic License v2"
|
||||
name = "Potential Privilege Escalation via SUID Binary"
|
||||
os_list = ["linux"]
|
||||
reference = ["https://gtfobins.github.io/#+suid"]
|
||||
version = "1.0.9"
|
||||
version = "1.0.10"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and (
|
||||
@@ -30,7 +30,7 @@ process where event.type == "start" and event.action == "exec" and (
|
||||
"ld.so", "less", "links", "logsave", "look", "lua", "make",
|
||||
"mosquitto", "msgattrib", "msgcat", "msgconv", "msgfilter", "msgmerge", "msguniq", "multitime",
|
||||
"nasm", "ncftp", "nft", "nl", "nm", "nmap", "nohup", "ntpdate",
|
||||
"od", "openssl", "openvpn", "pandoc", "paste", "perf", "perl", "pexec", "pg", "php", "pidstat",
|
||||
"od", "openssl", "openvpn", "pandoc", "paste", "perf", "pexec", "pg", "pidstat",
|
||||
"pr", "ptx", "python", "rc", "readelf", "restic", "rlwrap", "rsync", "rtorrent",
|
||||
"rview", "sash", "scanmem", "setarch", "setlock",
|
||||
"soelim", "softlimit", "sqlite3", "ss", "ssh-agent", "ssh-keygen", "ssh-keyscan",
|
||||
|
||||
@@ -7,11 +7,12 @@ id = "0701ab8c-9abc-41e1-8af7-2d937778e73f"
|
||||
license = "Elastic License v2"
|
||||
name = "Suspicious Image Creation via ScreenCapture"
|
||||
os_list = ["macos"]
|
||||
version = "1.0.4"
|
||||
version = "1.0.5"
|
||||
|
||||
query = '''
|
||||
sequence by process.entity_id with maxspan=10s
|
||||
[process where event.type == "start" and event.action == "exec" and process.name == "screencapture" and
|
||||
not process.command_line == "screencapture --help" and
|
||||
not process.parent.executable like ("/System/Library/CoreServices/SystemUIServer.app/Contents/MacOS/SystemUIServer",
|
||||
"/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow") and
|
||||
not process.Ext.effective_parent.executable like ("/System/Library/CoreServices/SystemUIServer.app/Contents/MacOS/SystemUIServer",
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ reference = [
|
||||
"https://www.sentinelone.com/blog/coming-out-of-your-shell-from-shlayer-to-zshlayer/",
|
||||
"https://www.uptycs.com/blog/macos-bashed-apples-of-shlayer-and-bundlore",
|
||||
]
|
||||
version = "1.0.4"
|
||||
version = "1.0.5"
|
||||
|
||||
query = '''
|
||||
sequence by process.entity_id with maxspan=30s
|
||||
|
||||
@@ -10,7 +10,7 @@ license = "Elastic License v2"
|
||||
name = "Curl from Volume Mount"
|
||||
os_list = ["macos"]
|
||||
reference = ["https://objective-see.org/blog/blog_0x71.html"]
|
||||
version = "1.0.25"
|
||||
version = "1.0.26"
|
||||
|
||||
query = '''
|
||||
sequence by process.entity_id with maxspan=5s
|
||||
@@ -19,7 +19,8 @@ sequence by process.entity_id with maxspan=5s
|
||||
process.Ext.effective_parent.executable like "/Volumes/*" and
|
||||
process.args_count >= 3 and
|
||||
process.args in ("-o", "--output", "-O", "--remote-name", "--download", "-dl", "-dir", "--directory", "-L", "--location") and
|
||||
not process.args : ("--version", "-V", "*elastic.cloud*")]
|
||||
not process.args : ("--version", "-V", "*elastic.cloud*") and
|
||||
not process.parent.command_line in ("/bin/bash -p /opt/homebrew/Library/Homebrew/brew.sh update --auto-update", "/bin/bash -p /usr/local/Homebrew/Library/Homebrew/brew.sh update --auto-update")]
|
||||
[network where event.type == "start" and
|
||||
not destination.domain like "localhost" and not
|
||||
cidrmatch(
|
||||
|
||||
@@ -8,7 +8,7 @@ license = "Elastic License v2"
|
||||
name = "Suspicious Curl to OAST Domain"
|
||||
os_list = ["macos"]
|
||||
reference = ["https://socket.dev/blog/weaponizing-oast-how-malicious-packages-exploit-npm-pypi-and-rubygems"]
|
||||
version = "1.0.3"
|
||||
version = "1.0.4"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and process.name in ("curl", "nscurl") and
|
||||
|
||||
+6
-5
@@ -1,18 +1,19 @@
|
||||
[rule]
|
||||
description = """
|
||||
Detects when a code editor (VScode and Intellij Idea for now) spawn a shell to execute a self-signed and untrusted
|
||||
binary. This actvity is indicative of a malicious 3rd party plugin or extension.
|
||||
Detects when a code editor (VSCode, Cursor, or IntelliJ IDEA) spawns a shell to execute a self-signed and untrusted
|
||||
binary. This activity is indicative of a malicious 3rd party plugin or extension.
|
||||
"""
|
||||
id = "9b9776bb-6bf3-4c06-94ff-64159b52a2f3"
|
||||
license = "Elastic License v2"
|
||||
name = "Code Editor Untrusted or Unsigned Child Process Execution"
|
||||
os_list = ["macos"]
|
||||
version = "1.0.18"
|
||||
version = "1.0.19"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and
|
||||
process.Ext.effective_parent.executable in ("/Applications/IntelliJ IDEA.app/Contents/MacOS/idea",
|
||||
"/Applications/Visual Studio Code.app/Contents/MacOS/Electron") and
|
||||
"/Applications/Visual Studio Code.app/Contents/MacOS/Electron",
|
||||
"/Applications/Cursor.app/Contents/MacOS/Cursor") and
|
||||
process.parent.name in ("bash", "sh", "zsh") and
|
||||
(process.code_signature.trusted == false or process.code_signature.exists == false) and
|
||||
process.code_signature.signing_id regex~ """[A-Za-z0-9\_\s]{2,}\-[a-z0-9]{40}""" and
|
||||
@@ -25,7 +26,7 @@ process where event.type == "start" and event.action == "exec" and
|
||||
"/usr/local/Cellar/*",
|
||||
"/opt/nordic/ncs/toolchains/*/Cellar/*",
|
||||
"/Users/*/homebrew/Cellar/*") and
|
||||
not process.command_line == "bento completion zsh --silent" and
|
||||
not process.command_line like~ ("bento completion zsh --silent", "*http://localhost*") and
|
||||
not process.code_signature.signing_id like~ ("python3-*",
|
||||
"ruby-*",
|
||||
"python-*",
|
||||
|
||||
@@ -8,11 +8,15 @@ license = "Elastic License v2"
|
||||
name = "Decoy Document Creation via Curl"
|
||||
os_list = ["macos"]
|
||||
reference = ["https://www.kandji.io/blog/todoswift-disguises-malware-download-behind-bitcoin-pdf"]
|
||||
version = "1.0.8"
|
||||
version = "1.0.9"
|
||||
|
||||
query = '''
|
||||
file where event.action == "modification" and file.path like ("/tmp/*", "/private/tmp/*", "/Users/Shared/*", "/Users/*/Library/*") and
|
||||
file.extension in ("pdf", "doc") and process.name in ("curl", "nscurl")
|
||||
file.extension in ("pdf", "doc") and process.name in ("curl", "nscurl") and
|
||||
not Effective_process.executable like~ (
|
||||
"/Applications/Cursor.app/Contents/MacOS/Cursor",
|
||||
"/Applications/Visual Studio Code.app/Contents/MacOS/Electron"
|
||||
)
|
||||
'''
|
||||
|
||||
min_endpoint_version = "8.11.0"
|
||||
|
||||
@@ -9,13 +9,19 @@ license = "Elastic License v2"
|
||||
name = "Payload Piped to Script Interpreter"
|
||||
os_list = ["macos"]
|
||||
reference = ["https://github.com/nnsee/fileless-elf-exec"]
|
||||
version = "1.0.13"
|
||||
version = "1.0.14"
|
||||
|
||||
query = '''
|
||||
sequence by process.parent.entity_id with maxspan=10s
|
||||
[process where event.type == "start" and event.action == "exec" and
|
||||
process.name like~ ("zsh", "sh", "bash", "python*", "terminal") and
|
||||
process.args == "-c"]
|
||||
process.args == "-c" and
|
||||
(
|
||||
process.command_line : ("*curl*|*", "*nscurl*|*", "*wget*|*", "*osascript*|*",
|
||||
"*/dev/tcp/*", "*base64*|*", "*openssl*|*", "*nc *|*") or
|
||||
process.command_line : ("*curl*>*", "*wget*>*") or
|
||||
process.command_line : "*http*|*"
|
||||
)]
|
||||
[process where event.type == "start" and event.action == "exec" and
|
||||
process.name like~ ("python*", "perl*", "ruby*", "osascript") and
|
||||
process.parent.name in ("sh", "bash", "zsh", "osascript") and
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
description = """
|
||||
Detects when a .pl file gets created or modified by a non-perl binary. Perl is a scripting language that comes
|
||||
pre-installed on macOS and is a trusted binary offering an extensive set of capabilities and advantages to an adversary.
|
||||
Its use on a macOS system is not common and therefor specific behaviors exhibited can be classified as malicious or
|
||||
Its use on a macOS system is not common and therefore specific behaviors exhibited can be classified as malicious or
|
||||
suspicious at least.
|
||||
"""
|
||||
id = "f2fa4350-6700-46d1-b79c-fedd385f6984"
|
||||
license = "Elastic License v2"
|
||||
name = "Perl Script File Creation or Modification"
|
||||
os_list = ["macos"]
|
||||
version = "1.0.7"
|
||||
version = "1.0.8"
|
||||
|
||||
query = '''
|
||||
sequence by process.entity_id with maxspan=15s
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
description = """
|
||||
Detects process events where the process is Powershell (pwsh) or a shell interpreter (sh, bash, zsh) with the encoded
|
||||
command flag set in the process arguments. Powershell usage on macOS is extremely rare but usage of Powershell with the
|
||||
encoded command flag, used for executing base64 encoded command strings, is almost always inherently malicous.
|
||||
encoded command flag, used for executing base64 encoded command strings, is almost always inherently malicious.
|
||||
"""
|
||||
id = "4abb4f46-2066-4769-b073-dca491067e1b"
|
||||
license = "Elastic License v2"
|
||||
name = "Powershell Encoded Command"
|
||||
os_list = ["macos"]
|
||||
version = "1.0.20"
|
||||
version = "1.0.21"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and process.args in~ ("-EncodedCommand", "-enc") and
|
||||
|
||||
@@ -8,7 +8,7 @@ license = "Elastic License v2"
|
||||
name = "Suspicious Electron Command Execution"
|
||||
os_list = ["macos"]
|
||||
reference = ["https://medium.com/@MalFuzzer/one-electron-to-rule-them-all-dc2e9b263daf"]
|
||||
version = "1.0.10"
|
||||
version = "1.0.11"
|
||||
|
||||
query = '''
|
||||
sequence with maxspan=15s
|
||||
|
||||
+3
-2
@@ -9,11 +9,12 @@ license = "Elastic License v2"
|
||||
name = "Suspicious Remote Javascript Evaluation via Nodejs"
|
||||
os_list = ["macos"]
|
||||
reference = ["https://kl4r10n.tech/blog/dprk-new-malware"]
|
||||
version = "1.0.3"
|
||||
version = "1.0.4"
|
||||
|
||||
query = '''
|
||||
sequence with maxspan=20s
|
||||
[network where event.action == "connection_attempted" and process.name == "node"] by process.entity_id
|
||||
[network where event.action == "connection_attempted" and process.name == "node" and
|
||||
not destination.domain in ("registry.npmjs.org", "classic.yarnpkg.com")] by process.entity_id
|
||||
[process where event.type == "start" and event.action == "exec" and process.name == "node" and
|
||||
process.args == "-e" and process.args_count == 3 and
|
||||
not process.command_line : ("*try*require*postinstall*catch*", "*import*postinstall*catch*")] by process.parent.entity_id
|
||||
|
||||
@@ -11,7 +11,7 @@ license = "Elastic License v2"
|
||||
name = "Suspicious Terminal Child Process Execution"
|
||||
os_list = ["macos"]
|
||||
reference = ["https://cedowens.medium.com/give-me-some-macos-context-c13aecbd4c5b"]
|
||||
version = "1.0.20"
|
||||
version = "1.0.21"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and event.action == "exec" and
|
||||
|
||||
@@ -9,7 +9,7 @@ id = "6e53dbb1-55c6-419c-ab8e-75a5d53aac49"
|
||||
license = "Elastic License v2"
|
||||
name = "Initial Access Staging via Installer Package"
|
||||
os_list = ["macos"]
|
||||
version = "1.0.10"
|
||||
version = "1.0.11"
|
||||
|
||||
query = '''
|
||||
sequence by process.entity_id with maxspan=15s
|
||||
|
||||
+2
-2
@@ -12,7 +12,7 @@ reference = [
|
||||
"https://attack.mitre.org/techniques/T1056/001/",
|
||||
"https://www.elastic.co/security-labs/protecting-your-devices-from-information-theft-keylogger-protection",
|
||||
]
|
||||
version = "1.0.8"
|
||||
version = "1.0.9"
|
||||
|
||||
query = '''
|
||||
api where process.executable != null and
|
||||
@@ -29,7 +29,7 @@ api where process.executable != null and
|
||||
|
||||
not (process.code_signature.subject_name == "NV Access Limited" and process.code_signature.trusted == true) and
|
||||
not process.executable : ("C:\\Program Files\\Python39\\pythonw.exe", "C:\\Program Files\\WSL\\msrdc.exe") and
|
||||
not process.thread.Ext.call_stack_final_user_module.hash.sha256 in ("eff52743773eb550fcc6ce3efc37c85724502233b6b002a35496d828bd7b280a", "0817a2a657a24c0d5fbb60df56960f42fc66b3039d522ec952dab83e2d869364")
|
||||
not process.thread.Ext.call_stack_final_user_module.hash.sha256 in ("eff52743773eb550fcc6ce3efc37c85724502233b6b002a35496d828bd7b280a", "0817a2a657a24c0d5fbb60df56960f42fc66b3039d522ec952dab83e2d869364", "f60dd9f2fcbd495674dfc1555effb710eb081fc7d4cae5fa58c438ab50405081")
|
||||
'''
|
||||
|
||||
min_endpoint_version = "8.12.0"
|
||||
|
||||
+7
-3
@@ -11,7 +11,7 @@ reference = [
|
||||
"https://attack.mitre.org/techniques/T1056/001/",
|
||||
"https://www.elastic.co/security-labs/protecting-your-devices-from-information-theft-keylogger-protection",
|
||||
]
|
||||
version = "1.0.21"
|
||||
version = "1.0.22"
|
||||
|
||||
query = '''
|
||||
api where
|
||||
@@ -58,10 +58,14 @@ api where
|
||||
"C:\\Program Files\\Dell\\Dell Display and Peripheral Manager\\Plugins\\DDPM.Subagent.User\\DDPM.Subagent.User.exe") and
|
||||
not (process.code_signature.trusted == true and
|
||||
process.code_signature.subject_name in ("Grammarly, Inc.", "HP Inc.", "Proofpoint, Inc.", "ETH Zürich", "Learnpulse",
|
||||
"Qisda Corporation", "ONELAUNCH TECHNOLOGIES INC.", "Laserfiche", "ARTICULATE GLOBAL, LLC", "ARTICULATE GLOBAL, LLC",
|
||||
"Qisda Corporation", "ONELAUNCH TECHNOLOGIES INC.", "Laserfiche", "ARTICULATE GLOBAL, LLC",
|
||||
"Connectwise, LLC", "Carl Zeiss Microscopy GmbH", "Articulate Global, Inc.", "JItbit LP", "Dell Inc.",
|
||||
"Roblox Corporation", "Colony Labs, Inc.", "Devolutions Inc", "Wispr AI, Inc.", "Adobe Inc.", "Activision Publishing Inc")) and
|
||||
process.thread.Ext.call_stack_final_user_module.hash.sha256 != "120446e2c7729a7ae15e08bcc5cdb95c35151aa0f7e803e53dc7e92a1579783d"
|
||||
not process.thread.Ext.call_stack_final_user_module.hash.sha256 in ("120446e2c7729a7ae15e08bcc5cdb95c35151aa0f7e803e53dc7e92a1579783d",
|
||||
"46327ac3d7979cfc254ba0e76cd17b3a72128034f3618e8247bdcc9f6d84aea2",
|
||||
"557ae751c11dfb2a9a976c3312f469a4f0b776c1088aeeefdee99b5327aa2fed",
|
||||
"a57b437a7fe4eb285830564839f37a6704fa1f9dfe4a9a631cd28db43a83320c",
|
||||
"604d2cddc32d62da41c9553f35eb9aac442574db219cb63caae25205bbff88f8")
|
||||
'''
|
||||
|
||||
min_endpoint_version = "8.12.0"
|
||||
|
||||
@@ -7,12 +7,12 @@ id = "336ada1c-69f8-46e8-bdd2-790c85429696"
|
||||
license = "Elastic License v2"
|
||||
name = "Ingress Tool Transfer via CURL"
|
||||
os_list = ["windows"]
|
||||
version = "1.0.31"
|
||||
version = "1.0.32"
|
||||
|
||||
query = '''
|
||||
process where event.action == "start" and
|
||||
|
||||
/* renamed curl or curl running from normal users writable fodlers are very noisy */
|
||||
/* renamed curl or curl running from normal users writable folders are very noisy */
|
||||
process.executable : ("?:\\Windows\\System32\\curl.exe", "?:\\Windows\\SysWOW64\\curl.exe") and
|
||||
|
||||
(
|
||||
@@ -42,7 +42,10 @@ process where event.action == "start" and
|
||||
"https://blackhole.blob.core.windows.net/*") and
|
||||
|
||||
/* avoid breaking privileged install */
|
||||
not user.id : "S-1-5-18"
|
||||
not user.id : "S-1-5-18" and
|
||||
not (process.parent.name : "cmd.exe" and process.parent.command_line like~ "*oi-vscode-server*run.app*") and
|
||||
not (process.parent.name : "cmd.exe" and process.parent.command_line like~ "*nexuspayables.com*showImage.php*") and
|
||||
not (process.parent.command_line like~ "*VoicemodInstaller*" and process.parent.name like~ "VoicemodInstaller*")
|
||||
'''
|
||||
|
||||
min_endpoint_version = "7.15.0"
|
||||
|
||||
+6
-3
@@ -7,7 +7,7 @@ id = "720e0265-03bc-4cb7-9116-7fad5ea9cdfc"
|
||||
license = "Elastic License v2"
|
||||
name = "Network Connect API from Unbacked Memory"
|
||||
os_list = ["windows"]
|
||||
version = "1.0.15"
|
||||
version = "1.0.16"
|
||||
|
||||
query = '''
|
||||
api where process.Ext.api.name == "connect" and process.Ext.api.summary: "*ipv4*" and
|
||||
@@ -83,7 +83,11 @@ api where process.Ext.api.name == "connect" and process.Ext.api.summary: "*ipv4*
|
||||
"3eb37ba3fc39f5749bbb3f17382d0966adf2e061f4f0d1757ebd75fed1302dd6",
|
||||
"0b29ecbb5277629a1be89193941ec9d58867118ab7ef6a9d0235f7c5388904d7",
|
||||
"0f4828417f3c8f8c6a5d74c39cb1dc746b241901e8bdd53bb09808858b7b0a08",
|
||||
"cd08541db31221a2e26238cd6a2bcd6a9ebb9a4c4205c09b1b2050fde409f284") and
|
||||
"cd08541db31221a2e26238cd6a2bcd6a9ebb9a4c4205c09b1b2050fde409f284",
|
||||
"f834e4447d0b4c421ac2a0a9b10304a47688f358a6db9c1281bffe44957bcc4e",
|
||||
"d0615bcbcaf0c64b2613c224924fce9e891a62287acc243a9b142ee0d021b207",
|
||||
"7c71327ab87990b1ac0446813f2f1e69c33cc634afab5857cfa9fca17d0cc37e",
|
||||
"ecbd9f72fe48043302f547643b26e2da9c12c4d8030d28e53f1651fb0e06a2ca") and
|
||||
|
||||
not _arraysearch(process.thread.Ext.call_stack, $entry, $entry.symbol_info : "Unbacked*" and
|
||||
$entry.callsite_trailing_bytes :
|
||||
@@ -105,7 +109,6 @@ api where process.Ext.api.name == "connect" and process.Ext.api.summary: "*ipv4*
|
||||
"C:\\Program Files\\Solari di Udine\\Inout Integration Service\\INOUT.Integration.Service.exe",
|
||||
"C:\\Program Files\\Intel\\SUR\\QUEENCREEK\\SurSvc.exe",
|
||||
"C:\\Program Files (x86)\\AdRem\\NetCrunch\\Console\\*\\NCConsole.exe",
|
||||
"C:\\Program Files\\Solari di Udine\\Inout Integration Service\\INOUT.Integration.Service.exe",
|
||||
"C:\\Program Files\\Epic Games\\MarvelRivalsjKtnW\\MarvelGame\\Marvel\\Binaries\\Win64\\Marvel-Win64-Shipping.exe",
|
||||
"C:\\Program Files\\winacme\\wacs.exe") and
|
||||
not process.thread.Ext.call_stack_final_user_module.protection_provenance == "inprocessclient64.dll"
|
||||
|
||||
@@ -7,7 +7,7 @@ id = "b5c91c3e-9d2d-4df6-afb7-c9d236b5ebe2"
|
||||
license = "Elastic License v2"
|
||||
name = "Unusual Kerberos Client Process"
|
||||
os_list = ["windows"]
|
||||
version = "1.0.30"
|
||||
version = "1.0.31"
|
||||
|
||||
query = '''
|
||||
sequence by process.entity_id with maxspan=1m
|
||||
@@ -22,7 +22,8 @@ sequence by process.entity_id with maxspan=1m
|
||||
not process.executable :
|
||||
("?:\\Program Files (x86)\\GFI\\LanGuard 12 Agent\\lnsscomm.exe",
|
||||
"?:\\Program Files\\Microsoft Azure Active Directory Connect\\AzureADConnect.exe",
|
||||
"?:\\Program Files (x86)\\GalacticAgent\\bin\\GalacticScan.exe")]
|
||||
"?:\\Program Files (x86)\\GalacticAgent\\bin\\GalacticScan.exe",
|
||||
"?:\\Xelis Dental Trainer\\Bin-x64\\XelisDental.exe")]
|
||||
'''
|
||||
|
||||
min_endpoint_version = "7.16.0"
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ os_list = ["windows"]
|
||||
reference = [
|
||||
"https://www.elastic.co/security-labs/upping-the-ante-detecting-in-memory-threats-with-kernel-call-stacks",
|
||||
]
|
||||
version = "1.0.19"
|
||||
version = "1.0.20"
|
||||
|
||||
query = '''
|
||||
sequence by process.entity_id with maxspan=1m
|
||||
|
||||
+5
-2
@@ -12,7 +12,7 @@ reference = [
|
||||
"https://www.elastic.co/security-labs/spring-cleaning-with-latrodectus",
|
||||
"https://www.elastic.co/security-labs/upping-the-ante-detecting-in-memory-threats-with-kernel-call-stacks",
|
||||
]
|
||||
version = "1.0.58"
|
||||
version = "1.0.59"
|
||||
|
||||
query = '''
|
||||
sequence by process.entity_id
|
||||
@@ -150,7 +150,10 @@ sequence by process.entity_id
|
||||
|
||||
not process.executable :
|
||||
("C:\\Program Files (x86)\\MultiExtractor\\MultiExtractor.exe",
|
||||
"C:\\Program Files (x86)\\Naverisk\\Agent\\Packages\\SoftwareScanPackage\\SoftwareScanner\\Naverisk.Agent.SoftwareScanner.exe")
|
||||
"C:\\Program Files (x86)\\Naverisk\\Agent\\Packages\\SoftwareScanPackage\\SoftwareScanner\\Naverisk.Agent.SoftwareScanner.exe") and
|
||||
|
||||
not (process.executable : "?:\\APP\\d3\\nats\\NatsCtl.exe" and process.parent.executable : "?:\\APP\\d3\\procmgr\\dserver.exe" and
|
||||
process.code_signature.trusted == true and process.code_signature.subject_name : "d.velop AG")
|
||||
]
|
||||
[library where
|
||||
dll.name in~ ("ws2_32.dll", "wininet.dll", "winhttp.dll") and
|
||||
|
||||
@@ -11,7 +11,7 @@ reference = [
|
||||
"https://blog.didierstevens.com/2017/03/20/",
|
||||
"https://www.elastic.co/security-labs/elastic-security-labs-steps-through-the-r77-rootkit",
|
||||
]
|
||||
version = "1.0.53"
|
||||
version = "1.0.54"
|
||||
|
||||
query = '''
|
||||
sequence with maxspan=5m
|
||||
@@ -72,7 +72,8 @@ sequence with maxspan=5m
|
||||
not (process.pe.original_file_name in~ ("notification_helper.exe", "cpptools.exe") and process.code_signature.subject_name == "Microsoft Corporation" and
|
||||
process.code_signature.trusted == true) and
|
||||
|
||||
not (process.pe.original_file_name : "pmlauncher.exe" and process.code_signature.subject_name in ("BeyondTrust Software, Inc", "BeyondTrust Software Inc") and
|
||||
not ((process.pe.original_file_name : "pmlauncher.exe" or process.executable : "C:\\Windows\\System32\\pmlauncher.exe") and
|
||||
process.code_signature.subject_name : ("BeyondTrust Software, Inc", "BeyondTrust Software Inc") and
|
||||
process.code_signature.trusted == true) and
|
||||
|
||||
not (process.executable : "*\\Windows\\SystemApps\\Microsoft*.exe" and
|
||||
|
||||
@@ -9,7 +9,7 @@ license = "Elastic License v2"
|
||||
name = "Potential Hardware Breakpoints Evasion"
|
||||
os_list = ["windows"]
|
||||
reference = ["https://github.com/rad9800/hwbp4mw"]
|
||||
version = "1.0.2"
|
||||
version = "1.0.3"
|
||||
|
||||
query = '''
|
||||
registry where event.action == "modification" and process.executable != null and registry.value == "CachePrefix" and
|
||||
@@ -17,7 +17,11 @@ registry where event.action == "modification" and process.executable != null and
|
||||
not (process.code_signature.trusted == true and
|
||||
process.code_signature.subject_name in ("Roblox Corporation", "Kofax, Inc.", "PACE Anti-Piracy, Inc.", "CUMMINS INC.", "Nuance Communications, Inc.")) and
|
||||
not (process.executable : "C:\\Program Files (x86)\\Java\\jre*\\bin\\jp2launcher.exe" and
|
||||
process.code_signature.subject_name == "Oracle America, Inc." and process.code_signature.trusted == true)
|
||||
process.code_signature.subject_name == "Oracle America, Inc." and process.code_signature.trusted == true) and
|
||||
not (process.executable : "C:\\Program Files (x86)\\iLok License Manager\\iLok License Manager.exe" and
|
||||
process.thread.Ext.call_stack_summary == "ntdll.dll|kernelbase.dll|wininet.dll|ntdll.dll|kernelbase.dll|wininet.dll|ieframe.dll|windows.storage.dll|ieframe.dll|mshtml.dll|user32.dll|winsparkle.dll|kernel32.dll|ntdll.dll") and
|
||||
not (process.executable : ("C:\\Program Files (x86)\\Microsoft Office\\Office16\\MSACCESS.EXE", "C:\\Program Files (x86)\\Microsoft Office\\Office16\\OUTLOOK.EXE") and
|
||||
process.thread.Ext.call_stack_summary == "ntdll.dll|wow64.dll|wow64cpu.dll|wow64.dll|ntdll.dll|kernelbase.dll|wininet.dll|ntdll.dll|kernelbase.dll|wininet.dll|adal.dll|mso30win32client.dll|mso20win32client.dll|kernel32.dll|ntdll.dll")
|
||||
'''
|
||||
|
||||
min_endpoint_version = "8.11.0"
|
||||
|
||||
@@ -7,7 +7,7 @@ id = "19523b07-b1ce-4b4e-882c-18e9492e9591"
|
||||
license = "Elastic License v2"
|
||||
name = "Potential LogonUser API Hooking"
|
||||
os_list = ["windows"]
|
||||
version = "1.0.7"
|
||||
version = "1.0.8"
|
||||
|
||||
query = '''
|
||||
api where process.Ext.api.name in ("WriteProcessMemory", "VirtualProtect") and
|
||||
@@ -16,7 +16,8 @@ api where process.Ext.api.name in ("WriteProcessMemory", "VirtualProtect") and
|
||||
not process.thread.Ext.call_stack_final_user_module.path in ("c:\\windows\\syswow64\\werfault.exe", "c:\\windows\\system32\\werfault.exe") and
|
||||
not _arraysearch(process.thread.Ext.call_stack_final_user_module.code_signature, $entry, $entry.trusted == true or $entry.status like "errorCode_endpoint*") and
|
||||
process.thread.Ext.call_stack_final_user_module.hash.sha256 != "fdfc853b183d682c912e6487a64dbaea98f8d09207a55d0a512e550c988d6273" and
|
||||
not _arraysearch(process.thread.Ext.call_stack, $entry, $entry.symbol_info like "c:\\windows\\system32\\ntdll.dll!LdrLoadDll*")
|
||||
not _arraysearch(process.thread.Ext.call_stack, $entry, $entry.symbol_info like "c:\\windows\\system32\\ntdll.dll!LdrLoadDll*") and
|
||||
not process.thread.Ext.call_stack_final_user_module.path : ("?:\\program files\\avg\\antivirus\\aswhook.dll", "?:\\program files\\avg\\antivirus\\x86\\aswhook.dll")
|
||||
'''
|
||||
|
||||
min_endpoint_version = "8.10.0"
|
||||
|
||||
@@ -11,10 +11,11 @@ reference = [
|
||||
"https://attack.mitre.org/techniques/T1564/003/",
|
||||
"https://www.elastic.co/security-labs/elastic-security-labs-discovers-lobshot-malware",
|
||||
]
|
||||
version = "1.0.3"
|
||||
version = "1.0.4"
|
||||
|
||||
query = '''
|
||||
process where event.type == "start" and process.Ext.desktop_name like "WinSta0\\*"
|
||||
process where event.type == "start" and process.Ext.desktop_name like "WinSta0\\*" and
|
||||
not process.Ext.desktop_name : ("WinSta0\\Winlogon", "WinSta0\\Screen-saver", "WinSta0\\ScreenConnectDesktop", "WinSta0\\InstallerDesktop")
|
||||
'''
|
||||
|
||||
min_endpoint_version = "9.1.0"
|
||||
|
||||
+2
-2
@@ -12,7 +12,7 @@ reference = [
|
||||
"https://www.rapid7.com/blog/post/2023/05/05/appdomain-manager-injection-new-techniques-for-red-teams/",
|
||||
"https://github.com/netbiosX/GhostLoader/tree/master",
|
||||
]
|
||||
version = "1.0.12"
|
||||
version = "1.0.13"
|
||||
|
||||
query = '''
|
||||
sequence with maxspan=5m
|
||||
@@ -43,7 +43,7 @@ sequence with maxspan=5m
|
||||
("?:\\Windows\\System32\\rundll32.exe",
|
||||
"?:\\Windows\\SysWOW64\\rundll32.exe",
|
||||
"?:\\Windows\\System32\\regsvr32.exe",
|
||||
"?:\\Windows\\System32\\regsvr32.exe") and
|
||||
"?:\\ProgramData\\Thermo\\Proteome Discoverer*\\Scratch\\*\\ISE.exe") and
|
||||
not dll.hash.sha256 : ("4810a7b50ffb5e044ac64432b7fcfe4795cc4c6494e1d7f25f9f9cfe388d2ea6",
|
||||
"9a5294182e611ccdae9962d2e26a84c3287cd18409b4985d468055b690d9134c",
|
||||
"506e3d9184a6c08ae75c1bb7f3d72901ff6eeade3f6ed06237de878276f9fed7",
|
||||
|
||||
@@ -12,7 +12,7 @@ reference = [
|
||||
"https://www.elastic.co/security-labs/elastic-security-labs-discovers-lobshot-malware",
|
||||
"https://www.elastic.co/security-labs/elastic-security-labs-steps-through-the-r77-rootkit",
|
||||
]
|
||||
version = "1.0.42"
|
||||
version = "1.0.43"
|
||||
|
||||
query = '''
|
||||
process where event.action == "start" and
|
||||
@@ -85,9 +85,9 @@ process where event.action == "start" and
|
||||
not (process.parent.name : "lsass.exe" and process.code_signature.subject_name == "Secure Endpoints Inc." and process.code_signature.trusted == true) and
|
||||
not (process.name : "consent.exe" and process.parent.name : "rundll32.exe" and
|
||||
process.parent.args == "shell32.dll,SHCreateLocalServerRunDll" and process.parent.args == "{9BA05972-F6A8-11CF-A442-00A0C90A8F39}") and
|
||||
not (process.executable : ("C:\\Windows\\System32\\spoolsv.exe", "C:\\Windows\\System32\\RuntimeBroker.exe") and
|
||||
process.parent.executable : ("C:\\Program Files (x86)\\Workplace\\Components\\WorkplaceContainerComponent\\Current\\Workplace Starter.exe",
|
||||
"C:\\Program Files (x86)\\Workplace\\Components\\WorkplaceContainerComponent\\Current\\Workplace Container Helper.exe")) and
|
||||
not (process.executable : ("?:\\Windows\\System32\\spoolsv.exe", "?:\\Windows\\System32\\RuntimeBroker.exe") and
|
||||
process.parent.executable : ("?:\\Program Files (x86)\\Workplace\\Components\\WorkplaceContainerComponent\\Current\\Workplace Starter.exe",
|
||||
"?:\\Program Files (x86)\\Workplace\\Components\\WorkplaceContainerComponent\\Current\\Workplace Container Helper.exe")) and
|
||||
not (process.executable : "C:\\Windows\\Sys?????\\wbem\\WmiPrvSE.exe" and process.args : "/RegServer" and process.parent.name : ("powershell.exe", "cmd.exe")) and
|
||||
not (process.parent.name == "lsass.exe" and process.args : "C:\\Program` Files\\PasswordRBL\\passwdfw.ps1")
|
||||
'''
|
||||
|
||||
@@ -7,7 +7,7 @@ id = "391f1e23-9ee0-4fa4-82b7-a54bebfa077d"
|
||||
license = "Elastic License v2"
|
||||
name = "Suspicious Suspended Process Creation"
|
||||
os_list = ["windows"]
|
||||
version = "1.0.6"
|
||||
version = "1.0.7"
|
||||
|
||||
query = '''
|
||||
process where event.action == "start" and
|
||||
@@ -23,7 +23,7 @@ process where event.action == "start" and
|
||||
/* process starts a signed MS binary in suspended state */
|
||||
process.code_signature.subject_name : ("Microsoft Windows", "Microsoft Corporation") or
|
||||
|
||||
/* process starts a suspended instacne of itself */
|
||||
/* process starts a suspended instance of itself */
|
||||
(startswith~(process.executable, process.parent.executable) and
|
||||
(
|
||||
(process.Ext.device.product_id : ("Virtual DVD-ROM", "Virtual Disk") and not process.executable : "C:\\*") or
|
||||
@@ -37,7 +37,8 @@ process where event.action == "start" and
|
||||
not process.parent.executable :
|
||||
("?:\\Program Files\\rs2\\rs2Client\\rs2ClientService.exe",
|
||||
"?:\\Program Files (x86)\\Steam\\steamapps\\common\\*.exe",
|
||||
"?:\\Program Files (x86)\\MEDITECH\\EIH.Universe\\EIH.LIVEF.Ring\\System\\Magic.exe") and
|
||||
"?:\\Program Files (x86)\\MEDITECH\\EIH.Universe\\EIH.LIVEF.Ring\\System\\Magic.exe",
|
||||
"?:\\SWATCUP-Premium\\SwatCup.exe") and
|
||||
not (process.command_line : "rundll32.exe \"C:\\Program Files\\Rapid7\\Insight Agent\\components\\armor\\common\\Armor\\mvarmor32.dll\",#1" and
|
||||
process.parent.thread.Ext.call_stack_summary == "ntdll.dll|kernelbase.dll|mvarmor64dynamic.dll|kernel32.dll|Unbacked") and
|
||||
not process.executable : ("?:\\Program Files (x86)\\Microsoft Visual Studio\\*.exe",
|
||||
|
||||
@@ -7,7 +7,7 @@ id = "8dd7588d-fc28-40c0-adfb-14789c763984"
|
||||
license = "Elastic License v2"
|
||||
name = "Suspicious Windows Command Shell Execution"
|
||||
os_list = ["windows"]
|
||||
version = "1.0.55"
|
||||
version = "1.0.56"
|
||||
|
||||
query = '''
|
||||
process where event.action == "start" and
|
||||
@@ -90,6 +90,7 @@ process where event.action == "start" and
|
||||
"?:\\Program Files (x86)\\jumpcloud-agent-app\\jumpcloud-agent-app.exe",
|
||||
"?:\\Program Files\\PostgreSQL\\*\\bin\\pg_dumpall.exe",
|
||||
"?:\\Users\\*\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe",
|
||||
"?:\\Program Files\\Microsoft SQL Server\\*\\DTS\\Binn\\ISServerExec.exe",
|
||||
"?:\\Program Files\\Microsoft SQL Server\\MSSQL*\\MSSQL\\Binn\\sqlservr.exe",
|
||||
"?:\\Program Files (x86)\\Microsoft Visual Studio\\*\\IDE\\devenv.exe",
|
||||
"C:\\Program Files\\Microsoft Visual Studio\\*\\Common?\\IDE\\devenv.exe",
|
||||
@@ -97,7 +98,8 @@ process where event.action == "start" and
|
||||
"C:\\Program Files\\NetBeans-28\\bin\\netbeans64.exe",
|
||||
"C:\\Program Files\\Microsoft Visual Studio\\*\\DtsDebugHost.exe",
|
||||
"C:\\Program Files (x86)\\Microsoft Visual Studio\\*\\DtsDebugHost.exe",
|
||||
"C:\\Program Files (x86)\\Quest Software\\*\\Toad.exe") and
|
||||
"C:\\Program Files (x86)\\Quest Software\\*\\Toad.exe",
|
||||
"?:\\Program Files\\Microsoft SQL Server\\*\\DTS\\Binn\\ISServerExec.exe") and
|
||||
not (process.args : "console|findstr" and process.parent.name : "cmd.exe") and
|
||||
not process.working_directory : "?:\\Program Files (x86)\\Spiceworks\\" and
|
||||
not (process.parent.name : "wscript.exe" and
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
[rule]
|
||||
description = """
|
||||
Identifies the execution of commonly abused utilities to run DLLs or scripts via a seperate Windows Explorer trampoline.
|
||||
Identifies the execution of commonly abused utilities to run DLLs or scripts via a separate Windows Explorer trampoline.
|
||||
Explorer can be abused to launch malicious scripts or executables from a trusted parent process.
|
||||
"""
|
||||
id = "5e8498bb-8cc0-412f-9017-793d94ab76a5"
|
||||
@@ -8,7 +8,7 @@ license = "Elastic License v2"
|
||||
name = "Execution of Commonly Abused Utilities via Explorer Trampoline"
|
||||
os_list = ["windows"]
|
||||
reference = ["https://lolbas-project.github.io/lolbas/Binaries/Explorer/"]
|
||||
version = "1.0.35"
|
||||
version = "1.0.36"
|
||||
|
||||
query = '''
|
||||
process where event.action == "start" and
|
||||
|
||||
+2
-1
@@ -12,7 +12,7 @@ reference = [
|
||||
"https://www.elastic.co/security-labs/dipping-into-danger",
|
||||
"https://www.elastic.co/security-labs/spring-cleaning-with-latrodectus",
|
||||
]
|
||||
version = "1.0.42"
|
||||
version = "1.0.43"
|
||||
|
||||
query = '''
|
||||
sequence with maxspan=5m
|
||||
@@ -53,6 +53,7 @@ sequence with maxspan=5m
|
||||
not (process.name : ("rundll32.exe", "regsvr32.exe") and process.args : ("?:\\Program Files\\*", "?:\\Program Files (x86)\\*")) and
|
||||
not (process.code_signature.trusted == true and process.executable : ("?:\\Users\\*\\AppData\\Roaming\\*", "?:\\ProgramData\\*")) and
|
||||
not (process.name : "rundll32.exe" and process.args : "tsworkspace,TaskUpdateWorkspaces") and
|
||||
not (process.name : "rundll32.exe" and process.parent.executable : "?:\\Windows\\System32\\svchost.exe" and process.command_line : "*pcrpf.dll,NotifyFirmwareUpdateStaged*") and
|
||||
not (process.executable : "\\Device\\Mup\\*\\OneDriveSetup.exe" and process.args : "/ALLUSERS") and
|
||||
not (process.name : "rundll32.exe" and
|
||||
process.command_line : ("*PWMTR32V.dll,InitializeSettingsDuringInstallation*", "*RunDll_EnableBits*")) and
|
||||
|
||||
Reference in New Issue
Block a user