You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
from logs-network_traffic.http-*, logs-network_traffic.tls-*, logs-nginx.access-*, logs-apache.access-*, logs-apache_tomcat.access-*, logs-iis.access-*
72
+
from logs-nginx.access-*, logs-apache.access-*, logs-apache_tomcat.access-*, logs-iis.access-*
75
73
| where
76
-
(url.original is not null or url.full is not null) and
77
74
// Limit to 200 response code to reduce noise
78
75
http.response.status_code == 200
79
76
80
-
| eval Esql.url_lower = case(url.original is not null, url.original, url.full)
81
-
| eval Esql.url_lower = to_lower(Esql.url_lower)
82
-
83
-
| eval Esql.contains_interpreter = case(Esql.url_lower like "*python* -c*" or Esql.url_lower like "*perl* -e*" or Esql.url_lower like "*ruby* -e*" or Esql.url_lower like "*ruby* -rsocket*" or Esql.url_lower like "*lua* -e*" or Esql.url_lower like "*php* -r*" or Esql.url_lower like "*node* -e*", 1, 0)
84
-
| eval Esql.contains_shell = case(Esql.url_lower like "*/bin/bash*" or Esql.url_lower like "*bash*-c*" or Esql.url_lower like "*/bin/sh*" or Esql.url_lower rlike "*sh.{1,2}-c*", 1, 0)
85
-
| eval Esql.contains_nc = case(Esql.url_lower like "*netcat*" or Esql.url_lower like "*ncat*" or Esql.url_lower rlike """.*nc.{1,2}[0-9]{1,3}(\.[0-9]{1,3}){3}.{1,2}[0-9]{1,5}.*""" or Esql.url_lower like "*nc.openbsd*" or Esql.url_lower like "*nc.traditional*" or Esql.url_lower like "*socat*", 1, 0)
86
-
| eval Esql.contains_devtcp = case(Esql.url_lower like "*/dev/tcp/*" or Esql.url_lower like "*/dev/udp/*", 1, 0)
87
-
| eval Esql.contains_helpers = case((Esql.url_lower like "*/bin/*" or Esql.url_lower like "*/usr/bin/*") and (Esql.url_lower like "*mkfifo*" or Esql.url_lower like "*nohup*" or Esql.url_lower like "*setsid*" or Esql.url_lower like "*busybox*"), 1, 0)
88
-
| eval Esql.contains_sus_cli = case(Esql.url_lower like "*import*pty*spawn*" or Esql.url_lower like "*import*subprocess*call*" or Esql.url_lower like "*tcpsocket.new*" or Esql.url_lower like "*tcpsocket.open*" or Esql.url_lower like "*io.popen*" or Esql.url_lower like "*os.execute*" or Esql.url_lower like "*fsockopen*", 1, 0)
89
-
| eval Esql.contains_privileges = case(Esql.url_lower like "*chmod*+x", 1, 0)
90
-
| eval Esql.contains_downloader = case(Esql.url_lower like "*curl *" or Esql.url_lower like "*wget *" , 1, 0)
91
-
| eval Esql.contains_file_read_keywords = case(Esql.url_lower like "*/etc/shadow*" or Esql.url_lower like "*/etc/passwd*" or Esql.url_lower like "*/root/.ssh/*" or Esql.url_lower like "*/home/*/.ssh/*" or Esql.url_lower like "*~/.ssh/*" or Esql.url_lower like "*/proc/self/environ*", 1, 0)
92
-
| eval Esql.contains_base64_cmd = case(Esql.url_lower like "*base64*-d*" or Esql.url_lower like "*echo*|*base64*", 1, 0)
93
-
| eval Esql.contains_suspicious_path = case(Esql.url_lower like "*/tmp/*" or Esql.url_lower like "*/var/tmp/*" or Esql.url_lower like "*/dev/shm/*" or Esql.url_lower like "*/root/*" or Esql.url_lower like "*/home/*/*" or Esql.url_lower like "*/var/www/*" or Esql.url_lower like "*/etc/cron.*/*", 1, 0)
| eval Esql.contains_interpreter = case(Esql.url_original_to_lower like "*python* -c*" or Esql.url_original_to_lower like "*perl* -e*" or Esql.url_original_to_lower like "*ruby* -e*" or Esql.url_original_to_lower like "*ruby* -rsocket*" or Esql.url_original_to_lower like "*lua* -e*" or Esql.url_original_to_lower like "*php* -r*" or Esql.url_original_to_lower like "*node* -e*", 1, 0)
80
+
| eval Esql.contains_shell = case(Esql.url_original_to_lower like "*/bin/bash*" or Esql.url_original_to_lower like "*bash*-c*" or Esql.url_original_to_lower like "*/bin/sh*" or Esql.url_original_to_lower rlike "*sh.{1,2}-c*", 1, 0)
81
+
| eval Esql.contains_nc = case(Esql.url_original_to_lower like "*netcat*" or Esql.url_original_to_lower like "*ncat*" or Esql.url_original_to_lower rlike """.*nc.{1,2}[0-9]{1,3}(\.[0-9]{1,3}){3}.{1,2}[0-9]{1,5}.*""" or Esql.url_original_to_lower like "*nc.openbsd*" or Esql.url_original_to_lower like "*nc.traditional*" or Esql.url_original_to_lower like "*socat*", 1, 0)
82
+
| eval Esql.contains_devtcp = case(Esql.url_original_to_lower like "*/dev/tcp/*" or Esql.url_original_to_lower like "*/dev/udp/*", 1, 0)
83
+
| eval Esql.contains_helpers = case((Esql.url_original_to_lower like "*/bin/*" or Esql.url_original_to_lower like "*/usr/bin/*") and (Esql.url_original_to_lower like "*mkfifo*" or Esql.url_original_to_lower like "*nohup*" or Esql.url_original_to_lower like "*setsid*" or Esql.url_original_to_lower like "*busybox*"), 1, 0)
84
+
| eval Esql.contains_sus_cli = case(Esql.url_original_to_lower like "*import*pty*spawn*" or Esql.url_original_to_lower like "*import*subprocess*call*" or Esql.url_original_to_lower like "*tcpsocket.new*" or Esql.url_original_to_lower like "*tcpsocket.open*" or Esql.url_original_to_lower like "*io.popen*" or Esql.url_original_to_lower like "*os.execute*" or Esql.url_original_to_lower like "*fsockopen*", 1, 0)
85
+
| eval Esql.contains_privileges = case(Esql.url_original_to_lower like "*chmod*+x", 1, 0)
86
+
| eval Esql.contains_downloader = case(Esql.url_original_to_lower like "*curl *" or Esql.url_original_to_lower like "*wget *" , 1, 0)
87
+
| eval Esql.contains_file_read_keywords = case(Esql.url_original_to_lower like "*/etc/shadow*" or Esql.url_original_to_lower like "*/etc/passwd*" or Esql.url_original_to_lower like "*/root/.ssh/*" or Esql.url_original_to_lower like "*/home/*/.ssh/*" or Esql.url_original_to_lower like "*~/.ssh/*" or Esql.url_original_to_lower like "*/proc/self/environ*", 1, 0)
88
+
| eval Esql.contains_base64_cmd = case(Esql.url_original_to_lower like "*base64*-d*" or Esql.url_original_to_lower like "*echo*|*base64*", 1, 0)
89
+
| eval Esql.contains_suspicious_path = case(Esql.url_original_to_lower like "*/tmp/*" or Esql.url_original_to_lower like "*/var/tmp/*" or Esql.url_original_to_lower like "*/dev/shm/*" or Esql.url_original_to_lower like "*/root/*" or Esql.url_original_to_lower like "*/home/*/*" or Esql.url_original_to_lower like "*/var/www/*" or Esql.url_original_to_lower like "*/etc/cron.*/*", 1, 0)
94
90
95
91
| eval Esql.any_payload_keyword = case(
96
92
Esql.contains_interpreter == 1 or Esql.contains_shell == 1 or Esql.contains_nc == 1 or Esql.contains_devtcp == 1 or
@@ -99,7 +95,7 @@ from logs-network_traffic.http-*, logs-network_traffic.tls-*, logs-nginx.access-
99
95
100
96
| keep
101
97
@timestamp,
102
-
Esql.url_lower,
98
+
Esql.url_original_to_lower,
103
99
Esql.any_payload_keyword,
104
100
Esql.contains_interpreter,
105
101
Esql.contains_shell,
@@ -123,13 +119,13 @@ from logs-network_traffic.http-*, logs-network_traffic.tls-*, logs-nginx.access-
(url.original is not null or url.full is not null) and
75
-
(
76
-
Esql.user_agent_original_lower like "mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/74.0.3729.169 safari/537.36" or // Nikto
77
-
Esql.user_agent_original_lower like "nikto*" or // Nikto
78
-
Esql.user_agent_original_lower like "mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0)" or // Nessus Vulnerability Scanner
79
-
Esql.user_agent_original_lower like "*nessus*" or // Nessus Vulnerability Scanner
80
-
Esql.user_agent_original_lower like "sqlmap/*" or // SQLMap
81
-
Esql.user_agent_original_lower like "wpscan*" or // WPScan
82
-
Esql.user_agent_original_lower like "feroxbuster/*" or // Feroxbuster
83
-
Esql.user_agent_original_lower like "masscan*" or // Masscan & masscan-ng
84
-
Esql.user_agent_original_lower like "fuzz*" or // Ffuf
85
-
Esql.user_agent_original_lower like "mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/user_agent.original like~ 87.0.4280.88 safari/537.36" or // Dirsearch
86
-
Esql.user_agent_original_lower like "mozilla/4.0 (compatible; msie 6.0; windows nt 5.1)" or // Dirb
87
-
Esql.user_agent_original_lower like "dirbuster*" or // Dirbuster
88
-
Esql.user_agent_original_lower like "gobuster/*" or // Gobuster
89
-
Esql.user_agent_original_lower like "*dirsearch*" or // dirsearch
90
-
Esql.user_agent_original_lower like "*nmap*" or // Nmap Scripting Engine
91
-
Esql.user_agent_original_lower like "*hydra*" or // Hydra Brute Forcer
92
-
Esql.user_agent_original_lower like "*w3af*" or // w3af Web Application Attack and Audit Framework
93
-
Esql.user_agent_original_lower like "*arachni*" or // Arachni Web Application Security Scanner
94
-
Esql.user_agent_original_lower like "*skipfish*" or // Skipfish Web Application Security Scanner
95
-
Esql.user_agent_original_lower like "*openvas*" or // OpenVAS Vulnerability Scanner
96
-
Esql.user_agent_original_lower like "*acunetix*" or // Acunetix Vulnerability Scanner
97
-
Esql.user_agent_original_lower like "*zap*" or // OWASP ZAP
98
-
Esql.user_agent_original_lower like "*burp*" // Burp Suite
99
-
)
100
-
101
-
| eval Esql.url_text = case(url.original is not null, url.original, url.full)
102
-
| eval Esql.url_lower = to_lower(Esql.url_text)
72
+
Esql.user_agent_original_to_lower like "mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/74.0.3729.169 safari/537.36" or // Nikto
73
+
Esql.user_agent_original_to_lower like "nikto*" or // Nikto
74
+
Esql.user_agent_original_to_lower like "mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0)" or // Nessus Vulnerability Scanner
75
+
Esql.user_agent_original_to_lower like "*nessus*" or // Nessus Vulnerability Scanner
76
+
Esql.user_agent_original_to_lower like "sqlmap/*" or // SQLMap
77
+
Esql.user_agent_original_to_lower like "wpscan*" or // WPScan
78
+
Esql.user_agent_original_to_lower like "feroxbuster/*" or // Feroxbuster
79
+
Esql.user_agent_original_to_lower like "masscan*" or // Masscan & masscan-ng
80
+
Esql.user_agent_original_to_lower like "fuzz*" or // Ffuf
81
+
Esql.user_agent_original_to_lower like "mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/user_agent.original like~ 87.0.4280.88 safari/537.36" or // Dirsearch
82
+
Esql.user_agent_original_to_lower like "mozilla/4.0 (compatible; msie 6.0; windows nt 5.1)" or // Dirb
83
+
Esql.user_agent_original_to_lower like "dirbuster*" or // Dirbuster
84
+
Esql.user_agent_original_to_lower like "gobuster/*" or // Gobuster
85
+
Esql.user_agent_original_to_lower like "*dirsearch*" or // dirsearch
86
+
Esql.user_agent_original_to_lower like "*nmap*" or // Nmap Scripting Engine
87
+
Esql.user_agent_original_to_lower like "*hydra*" or // Hydra Brute Forcer
88
+
Esql.user_agent_original_to_lower like "*w3af*" or // w3af Web Application Attack and Audit Framework
89
+
Esql.user_agent_original_to_lower like "*arachni*" or // Arachni Web Application Security Scanner
90
+
Esql.user_agent_original_to_lower like "*skipfish*" or // Skipfish Web Application Security Scanner
91
+
Esql.user_agent_original_to_lower like "*openvas*" or // OpenVAS Vulnerability Scanner
92
+
Esql.user_agent_original_to_lower like "*acunetix*" or // Acunetix Vulnerability Scanner
93
+
Esql.user_agent_original_to_lower like "*zap*" or // OWASP ZAP
94
+
Esql.user_agent_original_to_lower like "*burp*" // Burp Suite
103
95
104
96
| keep
105
97
@timestamp,
@@ -108,19 +100,19 @@ from logs-network_traffic.http-*, logs-network_traffic.tls-*, logs-nginx.access-
0 commit comments