
Un proxy inverse pare-feu pour prévenir les attaques Log4J (Log4Shell, alias CVE-2021-44228).
log4jail 🛡️Un reverse proxy pare-feu rapide avec prise en charge de TLS (HTTPS) et de swarm pour empêcher les attaques Log4J (Log4Shell, alias CVE-2021-44228).
log4jail est une solution rapide et de fortune pour bloquer les tentatives d'exploitation de Log4Shell en agissant comme un reverse proxy qui analyse le corps complet de la requête, y compris tous les en-têtes et paramètres de requête, à la recherche de payloads log4shell.
💡 Vous pouvez exécuter plusieurs instances à la fois en les mappant par port et par cible dans le fichier de configuration.
Le pare-feu suit les stratégies d'atténuation de Google Cloud.
Téléchargez le binaire pour votre OS depuis Releases OU installez avec cargo :
$ cargo install --git https://github.com/mufeedvh/log4jail.git
Prérequis :
$ git clone https://github.com/mufeedvh/log4jail.git
$ cd log4jail/
$ cargo build --release
La première commande clone ce dépôt sur votre machine locale et les deux dernières commandes entrent dans le répertoire et compilent la source en mode release.
Exécutez simplement la commande et un fichier de configuration type nommé log4jail.json sera créé dans le même répertoire de travail.
$ log4jail
Le fichier de configuration ressemble à ceci :
{
"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/"
}
}
Configurez les valeurs pour votre environnement puis exécutez à nouveau la commande pour lancer le proxy !
log4jail bloque tous les vecteurs d'attaque de log4j-scan avec le mode WAF Bypass activé :
$ python3 log4j-scan.py -u http://127.0.0.1:1337/ --run-all-tests --waf-bypass

Si vous avez trouvé des payloads Log4Shell fonctionnels capables de contourner ce pare-feu, veuillez ouvrir une issue.
Exécutez simplement log4jail sur n'importe quel port et incluez le payload dans la requête HTTP pour des tests de fuzzing.