Detection rules › Elastic

Potential Linux Hack Tool Launched

Source
github.com/elastic/protections-artifacts

Monitors for the execution of different processes that might be used by attackers for malicious intent. An alert from this rule should be investigated further, as hack tools are commonly used by blue teamers and system administrators as well.

MITRE ATT&CK coverage

TacticTechniques
ExecutionNo specific technique

Rule body

[rule]
description = """
Monitors for the execution of different processes that might be used by attackers for malicious intent. An alert from
this rule should be investigated further, as hack tools are commonly used by blue teamers and system administrators as
well.
"""
id = "3337a10c-e950-4827-a44e-96a688fba221"
license = "Elastic License v2"
name = "Potential Linux Hack Tool Launched"
os_list = ["linux"]
version = "1.0.9"

query = '''
process where event.type == "start" and event.action == "exec" and process.name in~ (
  // exploitation frameworks
  "crackmapexec", "msfconsole", "msfvenom", "sliver-client", "sliver-server", "havoc",
  // network scanners (nmap left out to reduce noise)
  "zenmap", "nuclei", "netdiscover", "legion",
  // web enumeration
  "gobuster", "dirbuster", "dirb", "wfuzz", "ffuf", "whatweb", "eyewitness",
  // web vulnerability scanning
  "wpscan", "joomscan", "droopescan", "nikto", 
  // exploitation tools
  "sqlmap", "commix", "yersinia",
  // cracking and brute forcing
  "john", "hashcat", "ncrack", "cewl", "fcrackzip", "rainbowcrack",
  // host and network
  "linenum.sh", "linpeas.sh", "pspy32", "pspy32s", "pspy64", "pspy64s", "evil-winrm",
  "linux-exploit-suggester-2.pl", "linux-exploit-suggester.sh", "panix.sh"
)
'''

min_endpoint_version = "7.15.0"
optional_actions = []
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0

[[threat]]
framework = "MITRE ATT&CK"

[threat.tactic]
id = "TA0002"
name = "Execution"
reference = "https://attack.mitre.org/tactics/TA0002/"

[internal]
min_endpoint_version = "7.15.0"

Stages and Predicates

Stage 1: process

process where event.type == "start" and event.action == "exec" and process.name in~ (
  "crackmapexec", "msfconsole", "msfvenom", "sliver-client", "sliver-server", "havoc",
  "zenmap", "nuclei", "netdiscover", "legion",
  "gobuster", "dirbuster", "dirb", "wfuzz", "ffuf", "whatweb", "eyewitness",
  "wpscan", "joomscan", "droopescan", "nikto",
  "sqlmap", "commix", "yersinia",
  "john", "hashcat", "ncrack", "cewl", "fcrackzip", "rainbowcrack",
  "linenum.sh", "linpeas.sh", "pspy32", "pspy32s", "pspy64", "pspy64s", "evil-winrm",
  "linux-exploit-suggester-2.pl", "linux-exploit-suggester.sh", "panix.sh"
)

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
event.actioneq
  • exec
field:"EventType" kind:eq value:"exec"
event.typeeq
  • start
field:"event.type" kind:eq value:"start"
process.namein
  • cewl
  • commix
  • crackmapexec
  • dirb
  • dirbuster
  • droopescan
  • evil-winrm
  • eyewitness
  • fcrackzip
  • ffuf
  • gobuster
  • hashcat
  • havoc
  • john
  • joomscan
  • legion
  • linenum.sh
  • linpeas.sh
  • linux-exploit-suggester-2.pl
  • linux-exploit-suggester.sh
  • msfconsole
  • msfvenom
  • ncrack
  • netdiscover
  • nikto
  • nuclei
  • panix.sh
  • pspy32
  • pspy32s
  • pspy64
  • pspy64s
  • rainbowcrack
  • sliver-client
  • sliver-server
  • sqlmap
  • wfuzz
  • whatweb
  • wpscan
  • yersinia
  • zenmap
field:"process_name" kind:in