
una comprobación rápida, si tu servidor podría ser vulnerable a CVE-2021-44228
Si deseas usar los cradles de descarga de Windows/Linux a continuación, revisa los scripts de antemano. Cargar código de internet y ejecutarlo es lo que nos trajo aquí con Log4Shell, ¿verdad? ;-)
El script log4j_checker_beta.sh se utiliza para realizar una verificación rápida de si tu servidor podría verse afectado por CVE-2021-44228 (la vulnerabilidad log4j).
No ofrece una prueba del 100% de que no seas vulnerable, pero da una pista de si es posible que puedas serlo.
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - |bash
Si solo quieres ver las advertencias, usa
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - | bash | grep '\[WARNING\]'
Asegúrate de que tu base de datos locate esté actualizada antes de ejecutar con
sudo updatedb
El script puede probar archivos .class en el primer nivel de archivos JAR/WAR/EAR para ver si coinciden con los hashes sha256 conocidos de archivos .class vulnerables de log4j.
Debes proporcionar una descarga de un archivo de texto plano con hashes sha256 en formato HEX, uno por línea, todo después del primer se ignora.
La URL se puede colocar en la variable download_file. De lo contrario, esta función no funcionará.
La información que Lunasec.io ha publicado sobre los hashes de archivos .class binarios de Java vulnerables:
https://github.com/lunasec-io/lunasec/blob/master/tools/log4shell/constants/vulnerablehashes.go
También consulta su blog: https://www.lunasec.io/docs/blog/log4j-zero-day-mitigation-guide/
Incluimos una SHA256_HASHES_URL en el script que apunta al archivo hashes-pre-cve.txt en este repositorio. Pero puedes agregar tu propia URL como primer parámetro del script en el shell o usar un archivo local, por ejemplo, guarda tu archivo en hashes-pre-cve_local.txt y luego llama:
./log4j_checker_beta.sh hashes-pre-cve_local.txt
Los comandos locate y unzip deben estar instalados. unzip para inspeccionar los archivos jar.
Para instalar en sistemas Debian y Ubuntu:
sudo apt install unzip locate
sudo updatedb
Puedes usar el fragmento
IEX (New-Object Net.Webclient).downloadstring("https://raw.githubusercontent.com/anlx-sw/log4j_checker_beta/main/get-vulnerablejars.ps1")
para verificar directamente si hay archivos jar potencialmente vulnerables en Windows. O puedes descargar este script y redirigir la salida a un recurso compartido de archivos escribible. Esto todavía funcionó para mí para mí para Powershell 2.0 en Windows Server 2012.
El manejo de errores o características adicionales no se agregaron a propósito para mantenerlo corto, fácil y compatible con Powershell 2.0 y versiones anteriores de Windows. Este script solo verifica archivos jar y busca la cadena "JndiLookup.class", lo que indica una biblioteca vulnerable. Usa la herramienta de tu elección para ejecutarlo con permisos de administrador (o simplemente úsalo manualmente).
Alternativamente, si no puedes usar powershell, podrías este fragmento para el símbolo del sistema para escanear la unidad actual en busca de archivos jar con "JndiLookup.class". Después de ejecutar esta línea con permisos de administrador, verifica el archivo c:\log4j-vuln.txt en busca de archivos vulnerables.
cd \ && for /r %f in (*.jar) do (find /i /c "JndiLookup.class" "%f" 1>nul && echo "%f" >> "c:\log4j-vuln.txt")