1- Introduction à SickOS 1.2

Yow tout le monde, bienvenue dans cette nouvelle solution du challenge SickOS 1.2 de la fameuse platfome VulnHub.

Dans ce challenge, on va devoir exploiter un serveur vulnérable afin d’obtenir le flag. L’objectif est de pouvoir lire le fichier qui se trouve sans le répertoire « /root/7d03aaa2bf93d80040f3f22ec6ad9d5a.txt ».

Alors Téléchargez l’image via le lien :   https://download.vulnhub.com/sickos/sick0s1.2.zip et décompressez ce dernier. Importez la machine dans VirtualBox ou VMware.

Voilà notre box SickOs1.2 :

Maintenant que tout est prêt, on peut démarrer ce challenge !

2- Phase de Scanning

Commençons par retrouver l’adresse ip correspondant à notre machine cible pour cela utilisez la commande : « netdiscover -r ip/24 » :

On va vérifier si cette adresse correspond bien à notre server SickOs 1.2 en effectuant un scan rapide :

On peut voir ici que c’est bien notre cible !

Maintenant on va lancer un scan plus agressif pour avoir un peu plus de renseignement, on va utiliser le flag « -Pn » pour ne pas pinguer le server cible.

À ce stade vous pouvez chercher des exploits concernant le OpenSSH 5.9p1 et lighthttpd 1.4.28 à l’aide de la commande « searchsploit » :

Ah ! pas d’exploit possible pour ces deux services actifs. On ne lâche rien on continue notre aventure, visitons l’interface Web du server et son code source:

Toujours rien d’intéressant, continuons notre exploration. Bon on va scanner le server Web à l’aide de Nikto en espérant avoir d’avantage d’informations :

Malheureusement, nous n’avons toujours pas assez d’informations, on va brute forcer les répertoires présents avec « dirb » :

Ça commence à devenir intéressant ! on a trouvé le répertoire « test », allez voir le lien :

On va utiliser la commande « curl » pour connaître les méthodes permises sur le server Web, pour ceux qui ne connaissent pas curl utilisez -h pour voir les différentes options utilisables :

3- Phase d’exploitation

Il y a une méthode permise qui est dangereuse, le fameux PUT qui permet d’uploader des fichiers directement dans le serveur, on peut même uploader un script afin de gagner un shell par exemple. Essayons en créant un payload et de l’uploader ; Voici la commande à utiliser :

  • LHOST = adresse IP de votre machine
  • LPORT = port d’écoute de votre machine
  • /root/Documents/reverse.php = chemin où le payload sera enregistré

Maintenant que nous avons notre script, on va l’envoyer dans le serveur. Pour cela utilisez encore une fois « curl » :

Super, nous avons pu uploader avec succès, vérifions depuis l’interface Web :

Et voilà notre payload !

Bon, pour le script c’est ok. On va établir un écouteur qui va nous permettre d’avoir un reverse shell à l’aide de Metasploit, cela consiste à avoir une demande de connexion directement par notre cible.

Lancez le FrameWork depuis votre terminal avec « msfconsole » :

Pour pouvoir avoir notre reverse shell, il faut utiliser un « exploit » très connu qui est multi/handler et choisir le payload selon nos besoins. C’est-à-dire dans notre cas php/meterpreter/reverse_tcp. Voyons les options à préciser avant de lancer l’exploit :

Voilà, on voit qu’il nous est demandé l’adresse IP de notre hôte (kali pour moi) et le port d’écoute :

Tout est prêt, on peut lancer notre écoute avec la commande « run ou exploit » et cliquez depuis l’interface Web sur notre fichier que l’on a uploadé (reverse.php).

Bingo ! voici notre reverse shell Meterpreter.

Essayons d’obtenir quelques informations sur le système et connaître l’utilisateur qui opère sur ce dernier. On ne pourra accéder dans le répertoire /root si on n’a pas les privilèges.

Vous voyez, on n’a pas les droits nécessaires pour entrer dans /root. On va devoir réaliser l’escalade des privilèges.

Là on va utiliser un outil qui s’appelle « cron », c’est un planificateur de tâche qui permet l’exécution d’un programme à un temps précis (par exemple journalier, hebdomadaire, mensuel). Allons voir ses fichiers :

Ce qui nous importe ce sont les fichiers journaliers dans etc/cron.daily :

Et voici une information très intéressante, chkrootkit. On va regarder sa version et chercher si un exploit existe.

On vient de trouver deux exploits, on va aussi chercher sur internet afin de pouvoir utiliser directement un exploit sur Metasploit :

Super, voici notre exploit à utiliser : use exploit/unix/local/chkrootkit, on va devoir préciser la session à utiliser. Pour cela tapez sessions et vous aurez l’id de la session. (passez en mode background). On fait par la suite « set session id » et on fait « run ».

Une petite précision s’impose, il faut changer de port car l’écoute sur le port 4444 peut mettre des heures voir jamais aboutir, basculer vers le port 8080 par exemple.

Et voilà le résultat, nous avons notre shell si attendu. Ici il faut bien comprendre l’aspect temporel de cron, si vous avez remarqué on a utilisé le cron.daily (journalier) mais si on avait utilisé weekly ou monhtly on aurait dû attendre longtemps. C’est pourquoi on a choisi chkrootkit qui se lance tous les jours.

Bon, on a notre shell profitons-en alors ! On commence par voir si on est bien root et n’oublions notre flag dans le répertoire /root.

Félicitation vous venez de terminer ce challenge avec succès. Si vous avez des questions n’hésitez pas à me les poser dans la section de commentaire.

Peace 😉.

2 Responses

  1. I’m not sure where you’re getting your information, but good topic.
    I needs to spend some time learning much more or understanding
    more. Thanks for fantastic info I was looking for this information for my mission.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

dix-huit + dix-sept =

Follow by Email
YouTube