Aujourd’hui, nous allons aborder deux aspects dans le domaine du pentesting :
- Le premier concerne ce que l’on appelle un « CTF » ou « Capture The Flag ». C’est un exercice d’entraînement pour les pentesters. Pour cela, on installe une machine vulnérable qui dispose d’informations cachées, souvent sous la forme de fichiers « flag.txt ». Attention ! Il est interdit de s’entraîner sur des serveurs « réels » sans autorisation de son propriétaire : les sanctions peuvent être lourdes.
- Les dangers que représentent un CMS mal sécurisé
Pour cet article, on a récupéré la machine « Quaoar » disponible sur le site vulhub.com que l’on installe avec VirtualBox.
Lorsqu’on démarre la machine virtuelle, on obtient quelques informations sur la personne qui a créé le « CTF » ainsi que l’adresse IP de la machine : 192.168.1.30
On nous indique qu’il y a 3 flags à découvrir.
Les pentesters ont souvent recours à Kali Linux qui est une distribution Linux orientée sécurité offensive. Ce n’est pas la seule, il existe par exemple DracOS. On commence par faire un inventaire du serveur via l’outil SPARTA (une combinaison de plusieurs outils : nmap, nikto en autre).
On obtient grâce à nmap la liste des ports ouverts :
Puis on regarde les résultats de nikto :
Voici les premières informations recueillies : de nombreux ports sont ouverts dont le port 80 et il existe un site sous WordPress installé dessus.
Voici la page affichée lorsqu’on se connecte via http://192.168.1.30 :
L’outil nikto nous a montré la présence d’un site WordPress, information qu’il a trouvé dans le fichier « robots.txt » présent à la racine du site :
On se rend sur la page http://192.168.1.30/wordpress/ :
Donc maintenant on va effectuer un scan de vulnérabilité du site WordPress avec WPScan :
wpscan — url 192.168.1.30/wordpress/
On voit qu’il y a 38 vulnérabilités qui ont été trouvées :
Et si on regarde du côté des plugins, on trouve 2 vulnérabilités :
wpscan — url http://192.168.1.30/wordpress/ -e vp
Allons voir s’il existe des « exploits » (moyen d’exploiter une faille) en rapport avec ce plugin :
searchsploit wordpress masta
Il en existe un pour chaque faille.
On pourrait utiliser ces « exploits » pour rentrer mais il y a un autre moyen. On va lister les comptes utilisateurs du site WordPress :
wpscan — url http://192.168.1.30/wordpress/ -e u
Maintenant, on attaque en brute force pour trouver le mot de passe du compte « admin » :
wpscan — url http://192.168.1.30/wordpress/ -U admin -P /usr/share/wordlists/rockyou.txt
Le compte par défaut de WordPress est toujours actif : admin / admin
On va modifier la page « 404.php » pour ajouter un reverse shell (https://pentestmonkey.net/tools/web-shells/php-reverse-shell)
Et on insère le code de php-reverse-shell.php en modifiant la variable $ip avec l’adresse ip de la machine avec laquelle on attaque.
Dans une console, on va écouter sur le port 1234 :
nc -lp 1234
Puis dans le navigateur, on va déclencher une erreur 404 via http://192.168.1.30/wordpress/?cat=15
On est connecté sur la machine qu’on attaque avec le compte « www-data » (Apache)
Lorsqu’on va dans /home/wpadmin, on trouve le premier flag
On va maintenant aller fouiller dans le fichier de config de WordPress « wp-config.php »
On teste le mot de passe trouvé (rootpassword!) :
Pour améliorer le shell : python -c ‘import pty; pty.spawn(“/bin/bash”)’
Voilà, on a un accès « root » et on a trouvé les deux autres flag.