[metadata] creation_date = "2023/07/04" integration = ["endpoint"] maturity = "production" min_stack_comments = "New fields added: required_fields, related_integrations, setup" min_stack_version = "8.3.0" updated_date = "2023/07/25" [rule] author = ["Elastic"] description = """ This detection rule identifies the execution of a Linux shell process from a Java JAR application post an incoming network connection. This behavior may indicate reverse shell activity via a Java application. """ from = "now-9m" index = ["logs-endpoint.events.*"] language = "eql" license = "Elastic License v2" name = "Potential Reverse Shell via Java" references = [ "https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md" ] risk_score = 47 rule_id = "5a3d5447-31c9-409a-aed1-72f9921594fd" severity = "medium" tags = ["Domain: Endpoint", "OS: Linux", "Use Case: Threat Detection", "Tactic: Execution", "Data Source: Elastic Defend"] type = "eql" query = ''' sequence by host.id with maxspan=5s [ network where host.os.type == "linux" and event.action in ("connection_accepted", "connection_attempted") and process.executable : ("/usr/bin/java", "/bin/java", "/usr/lib/jvm/*", "/usr/java/*") and destination.ip != null and destination.ip != "127.0.0.1" and destination.ip != "::1" ] by process.entity_id [ process where host.os.type == "linux" and event.action == "exec" and process.parent.executable : ("/usr/bin/java", "/bin/java", "/usr/lib/jvm/*", "/usr/java/*") and process.parent.args : "-jar" and process.executable : "*sh" ] by process.parent.entity_id ''' [[rule.threat]] framework = "MITRE ATT&CK" [rule.threat.tactic] name = "Execution" id = "TA0002" reference = "https://attack.mitre.org/tactics/TA0002/" [[rule.threat.technique]] id = "T1059" name = "Command and Scripting Interpreter" reference = "https://attack.mitre.org/techniques/T1059/" [[rule.threat.technique.subtechnique]] id = "T1059.004" name = "Unix Shell" reference = "https://attack.mitre.org/techniques/T1059/004/" [[rule.threat]] framework = "MITRE ATT&CK" [rule.threat.tactic] name = "Command and Control" id = "TA0011" reference = "https://attack.mitre.org/tactics/TA0011/" [[rule.threat.technique]] name = "Application Layer Protocol" id = "T1071" reference = "https://attack.mitre.org/techniques/T1071/"