
Un proxy inverso de firewall para prevenir ataques Log4J (Log4Shell, también conocido como CVE-2021-44228).
log4jail 🛡️Un firewall de proxy inverso rápido con soporte TLS (HTTPS) y swarm para prevenir ataques Log4J (Log4Shell, también conocido como CVE-2021-44228).
log4jail es una solución rápida y sucia para bloquear intentos de explotación de Log4Shell actuando como un proxy inverso que escanea el cuerpo completo de la solicitud, incluidos todos los encabezados y parámetros de la solicitud, en busca de payloads de log4shell.
💡 Puedes ejecutar varias instancias a la vez mapeándolas por puerto y destino en el archivo de configuración.
El firewall sigue las estrategias de mitigación de Google Cloud.
Descarga el binario para tu sistema operativo desde Releases O instálalo con cargo:
$ cargo install --git https://github.com/mufeedvh/log4jail.git
Requisitos previos:
$ git clone https://github.com/mufeedvh/log4jail.git
$ cd log4jail/
$ cargo build --release
El primer comando clona este repositorio en tu máquina local y los dos últimos comandos acceden al directorio y compilan el código fuente en modo release.
Simplemente ejecuta el comando y se creará un archivo de configuración de plantilla en el mismo directorio de trabajo llamado log4jail.json.
$ log4jail
El archivo de configuración tiene este aspecto:
{
"host": "127.0.0.1",
"enable_https": false,
"tls_cert_path": "cert.pem",
"tls_key_path": "key.rsa",
"reject_response_status": 403,
"reject_response_body": "This request has been blocked.",
"proxy_mapping": {
"1337": "http://127.0.0.1:8080/",
"6969": "http://127.0.0.1:9000/"
}
}
Configura los valores para tu entorno y ejecuta el comando nuevamente para poner en marcha el proxy.
log4jail bloquea todos los vectores de ataque de log4j-scan con el modo WAF Bypass habilitado:
$ python3 log4j-scan.py -u http://127.0.0.1:1337/ --run-all-tests --waf-bypass

Si has encontrado algún payload Log4Shell funcional que pueda evadir este firewall, por favor abre un issue.
Simplemente ejecuta log4jail en cualquier puerto e incluye el payload en la solicitud HTTP para realizar pruebas de fuzzing.