Muchos investigadores y expertos en ciberseguridad describen la vulnerabilidad Log4Shell (CVE-2021-44228) como la vulnerabilidad de día cero más crítica de todos los tiempos. Afecta a una utilidad de Java ampliamente utilizada con el nombre de Log4j, que existe desde 2001 para registrar y comunicar eventos, como operaciones rutinarias del sistema y errores de software. Aquí le mostramos cómo proteger su sistema Linux contra él.
¿Cómo funciona la vulnerabilidad de Log4Shell?
En un nivel fundamental, la vulnerabilidad es causada por una validación de entrada incorrecta. Esto sucede cuando el software no valida correctamente los datos que recibe, lo que genera posibles vulnerabilidades, ya que la entrada validada incorrectamente puede usarse para hacer que el programa realice acciones que no debería.
Log4Shell aprovecha específicamente las solicitudes que Log4j envía a los servidores, utilizando LDAP y JNDI. Al aprovechar estas solicitudes, un atacante puede ejecutar código en cualquier sistema vulnerable, lo que puede llevar a que un actor malicioso tome el control total del sistema y tenga la capacidad de instalar ransomware o robar datos.
¿Qué Afecta Log4Shell?
Dado que Java es un lenguaje de programación extremadamente popular, una gran cantidad de software escrito en Java que usa Log4j para su funcionalidad de registro se ve afectado por esta vulnerabilidad. Algunos de los programas más conocidos y utilizados afectados por esta vulnerabilidad incluyen Apache y el videojuego llamado Minecraft.
¿Cómo saber qué software está afectado?
Log4Shell, como cualquier otra vulnerabilidad de ciberseguridad, se mitiga parcheando el software afectado. Sin embargo, el caso de Log4Shell es un poco más singular, ya que afecta a una amplia gama de software y puede ser difícil mantener una lista de lo que se ve afectado y lo que no.
Afortunadamente, el Centro Nacional de Seguridad Cibernética de los Países Bajos ha publicado una lista completa sobre GitHubque incluye nombres de software desarrollado por diferentes organizaciones, que informa si son vulnerables a Log4Shell.
Cómo escanear su servidor Apache en busca de la vulnerabilidad
Dado que esta vulnerabilidad ha afectado en gran medida a las comunidades de ciberseguridad y software, no sorprende que haya herramientas disponibles para que los administradores escaneen sus servidores en busca de la vulnerabilidad.
Uno de esos escáneres es Log4j-RCE-escánerque le permite buscar vulnerabilidades de ejecución de comandos remotos en Apache Log4j en varias direcciones.
Instalación de Log4j-RCE-Scanner
Antes de comenzar, necesitamos instalar sus dependencias, httpx
y curl
.
Curl se puede instalar fácilmente en sistemas basados en Ubuntu y Debian usando el apt
dominio:
Lo mismo se puede hacer en Arch Linux usando el pacman
dominio:
Y en las instalaciones de CentOS y Fedora usando el yum
dominio:
La instalación de httpx se puede hacer con los siguientes comandos:
git clone https://github.com/projectdiscovery/httpx cd httpx/cmd/httpx && go build . sudo mv httpx /usr/local/bin/
Después de instalar todas las dependencias necesarias, clone el repositorio de Log4J-RCE-Scanner:
git clone https://github.com/adilsoybali/Log4j-RCE-Scanner
Acceda al directorio recién creado:
Finalmente, agregue los permisos ejecutables necesarios para el script Bash:
chmod +x log4j-rce-scanner.sh
Usando Log4j-RCE-Escáner
Después de haber instalado el escáner, finalmente puede llegar a la parte divertida de usarlo.
Lea la sección de ayuda del script escribiendo:
bash log4j-rce-scanner.sh -h
Ahora, puede escanear su servidor Apache en busca de la vulnerabilidad Log4shell.
bash log4j-rce-scanner.sh -d [domain] -b [Burp collaborator]
Puede especificar su dominio y Burp Collaborator usando el -d
y -b
banderas Si su dominio es vulnerable, las devoluciones de llamada de DNS con el nombre de dominio vulnerable se envían al Colaborador de eructos.
Alternativamente, el -l
flag también se puede utilizar para especificar una lista de dominios.
Instalación y uso de un escáner basado en Python
Si prefiere usar un script de Python en su lugar, puede usar el escáner log4que es desarrollado por la Agencia de Seguridad de Infraestructura y Ciberseguridad de los Estados Unidos.
Para instalarlo:
git clone https://github.com/cisagov/log4j-scanner/
Accede al directorio:
cd log4j-scanner/log4-scanner/
Puede instalar las dependencias requeridas usando el programa basado en Python pip3
dominio:
pip3 install -r requirements.txt
Puede ver la «ayuda» proporcionada por el script usando el -h
bandera:
Escanear una sola URL es simple y se puede hacer usando el -u
bandera:
python3 log4j-scan.py -u example.com
También puede escanear una lista de URL utilizando el -l
bandera:
python3 log4j-scan.py -l list.txt
Cómo parchear Apache
Para combatir esta vulnerabilidad, es extremadamente importante mantener actualizada la configuración de Apache.
La verificación de la versión de Apache se puede hacer de muchas maneras: verificando desde su panel de administración, como CPanel o WebHost Manager. También puede comprobar la versión ejecutando el httpd
comando con el -v
bandera:
Apache se puede actualizar a la versión más reciente y segura mediante el apt
comando en los sistemas Debian y Ubuntu:
sudo apt update && sudo apt upgrade apache2
El mismo resultado también se logra usando el yum
Comando en CentOS:
Preguntas frecuentes
1. ¿Qué versiones de Log4j están afectadas por la vulnerabilidad?
Las versiones anteriores a la 2.1.7.1 son vulnerables al exploit. La versión 2.15.0 corrigió los elementos más fáciles de explotar, y la 2.17.1 corrigió una vulnerabilidad de ejecución remota de código difícil de explotar.
2. ¿Necesito la utilidad Burp Collaborator para recibir devoluciones de llamadas de DNS con nombres de dominio vulnerables?
Según el desarrollador del escáner basado en Bash, Burp Collaborator se usa junto con el script para recibir las devoluciones de llamada de DNS con nombres de dominio vulnerables. Como alternativa, se puede utilizar una dirección Interact.sh.
3. ¿Necesito otras dependencias para usar el escáner basado en Bash?
Para un uso básico, solo necesita tener httpx y Curl instalados en su sistema como dependencias. Sin embargo, para desbloquear algunas funciones, también necesitará Subbuscador, buscador de activosy Acumular Para ser instalado.