Nous étions présents à la Sthack cette année encore pour le CTF en équipe. Le challenge a rassemblé 35 équipes, et nous avons fini à la 8ème place avec 15850 points au total :
Une des épreuves valant 4200 points et ayant eu d’après les organisateurs un faible taux de résolution était le challenge système « See you on the other side » :
Ce challenge était uniquement constitué d’une capture réseau à analyser :
A l’ouverture de celle-ci, nous nous apercevons que cette capture ne contient que du trafic Wifi correspondant à la norme 802.11 :
Une analyse de l’ensemble des trames nous indique que celles-ci sont chiffrées via le protocole WEP :
L’utilisation de l’outil « Aircrack-ng » nous permet de réaliser une attaque de type « brute force » sur cette capture et ainsi de récupérer facilement la clé de chiffrement WEP utilisée :
Cette clé peut ensuite être utilisée afin de déchiffrer l’ensemble du trafic :
Une analyse du trafic permet d’identifier l’envoi d’un fichier « leo.tar.bz2 » via le protocole FTP sur un serveur externe ayant pour IP 52.49.251.67 :
Une fois extraite, cette archive contient un certain nombre de fichiers :
Outre les images de nos Pokémons préférés, 3 fichiers sont présents dans le dossier « .ssh » :
Nous avons donc une clé privée, mais pas l’adresse IP sur laquelle nous connecter. Un petit coup d’œil dans le fichier « know_hosts » nous révèle que celui-ci est … haché à l’aide de l’algorithme SHA1:
Nous devons donc réaliser une attaque de type « brute force » sur l’IP du serveur cible.
Mais quelle plage d’IP utiliser ? L’outil « whois » sur l’IP « 52.49.162.186 » nous donne plusieurs informations dont la plage IP « 52.48.0.0/14 » :
Le script Python suivant (https://github.com/Churro/bruteforce-known-hosts) permet de bruteforcer la plage IP identifiée à la recherche du serveur cible :
Bingo!!!
Il ne nous reste plus qu’à nous connecter sur le serveur et récupérer le flag. Nous essayons donc plusieurs comptes et trouvons ainsi le bon compte utilisateur (leo) :
Une fois connecté, le fichier « code_teleporteur » nous semble intéressant :
Bien entendu, les permissions d’accès sur celui-ci sont restreintes :
Une élévation de privilège est donc nécessaire. Une petite recherche des fichiers appartenant à l’utilisateur « tp » et ayant le bit suid d’activé permet de trouver un binaire intéressant :
En utilisant une des fonctionnalités de l’outil, nous pouvons exécuter des commandes systèmes :
Et ainsi récupérer le flag de ce challenge :