Skip to content

Commit

Permalink
Merge pull request #3682 from socprime/oracle_weblogic_content
Browse files Browse the repository at this point in the history
analytic content for oracle weblogic
  • Loading branch information
NikTripathi authored Jan 5, 2022
2 parents edb67f2 + 82fdc93 commit 4f7e72e
Show file tree
Hide file tree
Showing 25 changed files with 1,127 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
{
"Name": "OracleWebLogicServerEvent",
"Properties": [
{
"Name": "ClientIdentity",
"Type": "String"
},
{
"Name": "DiagnosticContextId",
"Type": "String"
},
{
"Name": "DvcHostname",
"Type": "String"
},
{
"Name": "DvcTimeZone",
"Type": "String"
},
{
"Name": "EventMessage",
"Type": "String"
},
{
"Name": "EventOriginalUid",
"Type": "String"
},
{
"Name": "EventProduct",
"Type": "String"
},
{
"Name": "EventSeverity",
"Type": "String"
},
{
"Name": "EventStartTime",
"Type": "datetime"
},
{
"Name": "EventType",
"Type": "String"
},
{
"Name": "EventVendor",
"Type": "String"
},
{
"Name": "HttpReferrerOriginal",
"Type": "String"
},
{
"Name": "HttpRequestMethod",
"Type": "String"
},
{
"Name": "HttpResponseBodyBytes",
"Type": "String"
},
{
"Name": "HttpStatusCode",
"Type": "String"
},
{
"Name": "HttpUserAgentOriginal",
"Type": "String"
},
{
"Name": "HttpVersion",
"Type": "String"
},
{
"Name": "RawTimeValue",
"Type": "String"
},
{
"Name": "SrcDvcHostname",
"Type": "String"
},
{
"Name": "SrcIpAddr",
"Type": "String"
},
{
"Name": "SrcUserName",
"Type": "String"
},
{
"Name": "Subsystem",
"Type": "String"
},
{
"Name": "TimeGenerated",
"Type": "datetime"
},
{
"Name": "TransactionId",
"Type": "String"
},
{
"Name": "TreadId",
"Type": "String"
},
{
"Name": "UrlOriginal",
"Type": "String"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@
"OnapsisPlatform",
"OneIdentity",
"OracleDatabaseAudit",
"OracleWebLogicServer",
"OrcaSecurityAlerts",
"PaloAltoNetworks",
"PaloAltoPrismaCloud",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
id: 6ae36a5e-573f-11ec-bf63-0242ac130002
name: Oracle - Command in URI
description: |
'Detects command in URI'
severity: Medium
requiredDataConnectors:
- connectorId: OracleWebLogicServer
dataTypes:
- OracleWebLogicServerEvent
queryFrequency: 1h
queryPeriod: 1h
triggerOperator: gt
triggerThreshold: 0
tactics:
- InitialAccess
relevantTechniques:
- T1190
- T1133
query: |
OracleWebLogicServerEvent
| where UrlOriginal contains 'cat%20/etc/passwd' or UrlOriginal contains '/etc/passwd' or UrlOriginal contains 'ping -i' or UrlOriginal contains '/usr/bin/id(' or UrlOriginal contains '%2f%75%73%72%2f%62%69%6e%2f%69%64' or UrlOriginal contains 'phpinfo()' or UrlOriginal contains '%70%68%70%69%6e%66%6f%28%29' or UrlOriginal contains ';id' or UrlOriginal contains '%3b%69%64' or UrlOriginal contains '/bin/bash -c' or UrlOriginal contains '%2f%62%69%6e%2f%62%61%73%68%20%2d%63%27' or UrlOriginal contains '/bin/bash' or UrlOriginal contains '%2f%62%69%6e%2f%62%61%73%68' or UrlOriginal contains 'sleep(' or UrlOriginal contains '%73%6c%65%65%70%28' or UrlOriginal contains 'curl' or UrlOriginal contains '%63%75%72%6c' or UrlOriginal contains '&dir' or UrlOriginal contains '%26%64%69%72' or UrlOriginal contains '& dir' or UrlOriginal =~ '%26%20%64%69%72' or UrlOriginal contains '<script>' or UrlOriginal contains '%3c%73%63%72%69%70%74%3e' or UrlOriginal contains 'eval(' or UrlOriginal contains '%65%76%61%6c%28' or UrlOriginal contains 'exec(' or UrlOriginal contains '%65%78%65%63%28' or UrlOriginal contains 'whoami' or UrlOriginal contains '%77%68%6f%61%6d%69' or UrlOriginal contains 'wget' or UrlOriginal contains 'python' or UrlOriginal contains 'gcc' or UrlOriginal contains 'uname' or UrlOriginal contains 'systeminfo' or UrlOriginal contains '%77%67%65%74' or UrlOriginal contains '%70%79%74%68%6f%6e' or UrlOriginal contains '%75%6e%61%6d%65' or UrlOriginal =~ '%73%79%73%74%65%6d%69%6e%66%6f'
| extend UrlCustomEntity = UrlOriginal
entityMappings:
- entityType: URL
fieldMappings:
- identifier: Url
columnName: UrlCustomEntity
version: 1.0.0
kind: Scheduled
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
id: 44c7d12a-573f-11ec-bf63-0242ac130002
name: Oracle - Multiple user agents for single source
description: |
'Detects requests with different user agents from one source in short timeframe.'
severity: Medium
requiredDataConnectors:
- connectorId: OracleWebLogicServer
dataTypes:
- OracleWebLogicServerEvent
queryFrequency: 1h
queryPeriod: 1h
triggerOperator: gt
triggerThreshold: 0
tactics:
- InitialAccess
relevantTechniques:
- T1190
- T1133
query: |
let threshold = 5;
OracleWebLogicServerEvent
| summarize makeset(HttpUserAgentOriginal) by SrcIpAddr, bin(TimeGenerated, 5m)
| extend ua_count = array_length(set_HttpUserAgentOriginal)
| where ua_count > threshold
| extend IPCustomEntity = SrcIpAddr
entityMappings:
- entityType: IP
fieldMappings:
- identifier: Address
columnName: IPCustomEntity
version: 1.0.0
kind: Scheduled
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
id: 67950168-5740-11ec-bf63-0242ac130002
name: Oracle - Oracle WebLogic Exploit CVE-2021-2109
description: |
'Detects using Oracle WebLogic Exploit CVE-2021-2109'
severity: Medium
requiredDataConnectors:
- connectorId: OracleWebLogicServer
dataTypes:
- OracleWebLogicServerEvent
queryFrequency: 1h
queryPeriod: 1h
triggerOperator: gt
triggerThreshold: 0
tactics:
- InitialAccess
relevantTechniques:
- attack.t1190
query: |
OracleWebLogicServerEvent
| where HttpRequestMethod =~ "GET"
| where UrlOriginal contains "ldap://" and UrlOriginal contains "com.bea.console.handles.JndiBindingHandle" and UrlOriginal contains "AdminServer"
| extend UrlCustomEntity = UrlOriginal
entityMappings:
- entityType: URL
fieldMappings:
- identifier: Url
columnName: UrlCustomEntity
version: 1.0.0
kind: Scheduled
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
id: 51d050ee-5740-11ec-bf63-0242ac130002
name: Oracle - Known malicious user agent
description: |
'Detects known malicious user agents'
severity: Medium
requiredDataConnectors:
- connectorId: OracleWebLogicServer
dataTypes:
- OracleWebLogicServerEvent
queryFrequency: 1h
queryPeriod: 1h
triggerOperator: gt
triggerThreshold: 0
tactics:
- InitialAccess
relevantTechniques:
- T1190
- T1133
query: |
OracleWebLogicServerEvent
| where HttpUserAgentOriginal contains 'Nikto' or HttpUserAgentOriginal contains '(hydra)' or HttpUserAgentOriginal contains '.nasl' or HttpUserAgentOriginal contains 'absinthe' or HttpUserAgentOriginal contains 'advanced email extractor' or HttpUserAgentOriginal contains 'arachni/' or HttpUserAgentOriginal contains 'autogetcontent' or HttpUserAgentOriginal contains 'bilbo' or HttpUserAgentOriginal contains 'BFAC' or HttpUserAgentOriginal contains 'brutus' or HttpUserAgentOriginal contains 'brutus/aet' or HttpUserAgentOriginal contains 'bsqlbf' or HttpUserAgentOriginal contains 'cgichk' or HttpUserAgentOriginal contains 'cisco-torch' or HttpUserAgentOriginal contains 'commix' or HttpUserAgentOriginal contains 'core-project/1.0' or HttpUserAgentOriginal contains 'crimscanner/' or HttpUserAgentOriginal contains 'datacha0s' or HttpUserAgentOriginal contains 'dirbuster' or HttpUserAgentOriginal contains 'domino hunter' or HttpUserAgentOriginal contains 'dotdotpwn' or HttpUserAgentOriginal contains 'email extractor' or HttpUserAgentOriginal contains 'fhscan core 1.' or HttpUserAgentOriginal contains 'floodgate' or HttpUserAgentOriginal contains 'get-minimal' or HttpUserAgentOriginal contains 'gootkit auto-rooter scanner' or HttpUserAgentOriginal contains 'grabber' or HttpUserAgentOriginal contains 'grendel-scan' or HttpUserAgentOriginal contains 'havij' or HttpUserAgentOriginal contains 'inspath' or HttpUserAgentOriginal contains 'internet ninja' or HttpUserAgentOriginal contains 'jaascois' or HttpUserAgentOriginal contains 'zmeu'or HttpUserAgentOriginal contains 'masscan' or HttpUserAgentOriginal contains 'metis' or HttpUserAgentOriginal contains 'morfeus' or HttpUserAgentOriginal contains 'mysqloit' or HttpUserAgentOriginal contains 'n-stealth' or HttpUserAgentOriginal contains 'nessus' or HttpUserAgentOriginal contains 'netsparker' or HttpUserAgentOriginal contains 'nmap nse' or HttpUserAgentOriginal contains 'nmap scripting engine' or HttpUserAgentOriginal contains 'nmap-nse' or HttpUserAgentOriginal contains 'nsauditor' or HttpUserAgentOriginal contains 'openvas' or HttpUserAgentOriginal contains 'pangolin' or HttpUserAgentOriginal contains 'paros' or HttpUserAgentOriginal contains 'pmafind' or HttpUserAgentOriginal contains 'prog.customcrawler' or HttpUserAgentOriginal contains 'qualys was' or HttpUserAgentOriginal contains 's.t.a.l.k.e.r.' or HttpUserAgentOriginal contains 'security scan' or HttpUserAgentOriginal contains 'springenwerk' or HttpUserAgentOriginal contains 'sql power injector' or HttpUserAgentOriginal contains 'sqlmap' or HttpUserAgentOriginal contains 'sqlninja' or HttpUserAgentOriginal contains 'teh forest lobster' or HttpUserAgentOriginal contains 'this is an exploit' or HttpUserAgentOriginal contains 'toata dragostea' or HttpUserAgentOriginal contains 'toata dragostea mea pentru diavola' or HttpUserAgentOriginal contains 'uil2pn' or HttpUserAgentOriginal contains 'user-agent:' or HttpUserAgentOriginal contains 'vega/' or HttpUserAgentOriginal contains 'voideye' or HttpUserAgentOriginal contains 'w3af.sf.net' or HttpUserAgentOriginal contains 'w3af.sourceforge.net' or HttpUserAgentOriginal contains 'w3af.org' or HttpUserAgentOriginal contains 'webbandit' or HttpUserAgentOriginal contains 'webinspect' or HttpUserAgentOriginal contains 'webshag' or HttpUserAgentOriginal contains 'webtrends security analyzer' or HttpUserAgentOriginal contains 'webvulnscan' or HttpUserAgentOriginal contains 'whatweb' or HttpUserAgentOriginal contains 'whcc/' or HttpUserAgentOriginal contains 'wordpress hash grabber' or HttpUserAgentOriginal contains 'xmlrpc exploit' or HttpUserAgentOriginal contains 'WPScan' or HttpUserAgentOriginal contains 'XSpider' or HttpUserAgentOriginal contains 'SF/' or HttpUserAgentOriginal contains 'FooBar/42' or HttpUserAgentOriginal contains 'ScanAlert' or HttpUserAgentOriginal contains 'Webscanner' or HttpUserAgentOriginal contains 'Webster' or HttpUserAgentOriginal contains 'fantomCrew' or HttpUserAgentOriginal contains 'fantomBrowser' or HttpUserAgentOriginal contains 'visvo' or HttpUserAgentOriginal contains 'magereport' or HttpUserAgentOriginal contains 'ltx71' or HttpUserAgentOriginal contains 'websiteprotection' or HttpUserAgentOriginal contains 'BigCliqueBOT' or HttpUserAgentOriginal contains '(BOT for JCE)'
| extend MalwareCustomEntity = HttpUserAgentOriginal
entityMappings:
- entityType: Malware
fieldMappings:
- identifier: Name
columnName: MalwareCustomEntity
version: 1.0.0
kind: Scheduled
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
id: 41775080-5740-11ec-bf63-0242ac130002
name: Oracle - Multiple client errors from single IP
description: |
'Detects multiple client errors from one source in short timeframe'
severity: Medium
requiredDataConnectors:
- connectorId: OracleWebLogicServer
dataTypes:
- OracleWebLogicServerEvent
queryFrequency: 1h
queryPeriod: 1h
triggerOperator: gt
triggerThreshold: 0
tactics:
- InitialAccess
relevantTechniques:
- T1190
- T1133
query: |
let threshold = 100;
OracleWebLogicServerEvent
| where tolong(HttpStatusCode) >= 400 and tolong(HttpStatusCode) <= 499
| summarize MultipleClientErrors = count() by SrcIpAddr, bin(TimeGenerated, 5m)
| where MultipleClientErrors > threshold
| extend IPCustomEntity = SrcIpAddr
entityMappings:
- entityType: IP
fieldMappings:
- identifier: Address
columnName: IPCustomEntity
version: 1.0.0
kind: Scheduled
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
id: 268f4fde-5740-11ec-bf63-0242ac130002
name: Oracle - Multiple server errors from single IP
description: |
'Detects multiple server errors from one source in short timeframe'
severity: Medium
requiredDataConnectors:
- connectorId: OracleWebLogicServer
dataTypes:
- OracleWebLogicServerEvent
queryFrequency: 1h
queryPeriod: 1h
triggerOperator: gt
triggerThreshold: 0
tactics:
- Impact
- InitialAccess
relevantTechniques:
- T1498
- T1190
- T1133
query: |
let threshold = 100;
OracleWebLogicServerEvent
| where tolong(HttpStatusCode) >= 500 and tolong(HttpStatusCode) <= 599
| summarize MultipleServerErrors = count() by SrcIpAddr, bin(TimeGenerated, 5m)
| where MultipleServerErrors > threshold
| extend IPCustomEntity = SrcIpAddr
entityMappings:
- entityType: IP
fieldMappings:
- identifier: Address
columnName: IPCustomEntity
version: 1.0.0
kind: Scheduled
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
id: 153ce6d8-5740-11ec-bf63-0242ac130002
name: Oracle - Private IP in URL
description: |
'Detects requests to unusual URL'
severity: Medium
requiredDataConnectors:
- connectorId: OracleWebLogicServer
dataTypes:
- OracleWebLogicServerEvent
queryFrequency: 1h
queryPeriod: 1h
triggerOperator: gt
triggerThreshold: 0
tactics:
- InitialAccess
relevantTechniques:
- T1190
- T1133
query: |
OracleWebLogicServerEvent
| where UrlOriginal matches regex @'(10\.\d{1,3}\.\d{1,3}\.\d{1,3})|(172\.1[6-9]\.\d{1,3}\.\d{1,3})|(172\.2[0-9]\.\d{1,3}\.\d{1,3})|(172\.3[0-1]\.\d{1,3}\.\d{1,3})|(192\.168\.\d{1,3}\.\d{1,3})'
| extend UrlCustomEntity = UrlOriginal
entityMappings:
- entityType: URL
fieldMappings:
- identifier: Url
columnName: UrlCustomEntity
version: 1.0.0
kind: Scheduled
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
id: 033e98d2-5740-11ec-bf63-0242ac130002
name: Oracle - Put file and get file from same IP address
description: |
'Detects put or get files from one source in short timeframe'
severity: Medium
requiredDataConnectors:
- connectorId: OracleWebLogicServer
dataTypes:
- OracleWebLogicServerEvent
queryFrequency: 1h
queryPeriod: 1h
triggerOperator: gt
triggerThreshold: 0
tactics:
- InitialAccess
relevantTechniques:
- T1190
- T1133
query: |
let p = OracleWebLogicServerEvent
| where HttpRequestMethod in~ ('POST', 'PUT')
| sort by EventStartTime asc
| summarize post_time=min(EventStartTime) by SrcIpAddr, tostring(UrlOriginal);
OracleWebLogicServerEvent
| where HttpRequestMethod =~ 'GET'
| sort by EventStartTime asc
| summarize get_time=min(EventStartTime) by SrcIpAddr, tostring(UrlOriginal)
| join kind=innerunique (p) on UrlOriginal, SrcIpAddr
| extend second = datetime_diff('second',get_time,post_time)
| where second between (1 .. 300)
| project second, post_time, get_time, SrcIpAddr, UrlOriginal
| extend IPCustomEntity = SrcIpAddr, UrlCustomEntity = tostring(UrlOriginal)
entityMappings:
- entityType: IP
fieldMappings:
- identifier: Address
columnName: IPCustomEntity
- entityType: URL
fieldMappings:
- identifier: Url
columnName: UrlCustomEntity
version: 1.0.0
kind: Scheduled
Loading

0 comments on commit 4f7e72e

Please sign in to comment.