Premièrement merci à Khoas pour nous proposer son CTF. Ensuite je vous conseille vivement d'aller voir son YouTube et notamment sa série un hacker en train de hacker vous y trouverez des résolutions de CTF en direct.
Le CTF fonctionne sur Virtualbox sans problème. IP de la VM : 192.168.1.34
I - Prise d'informations
Comme tous les débuts sur un CTF on regarde ce que la machine nous dit, pour ce faire j'ai utilisé zenmap, le petit frère de nmap :
Ici on voit deux ports ouverts :
- Le port 22 avec un service ssh
- Le port 80 avec un serveur apache qui tourne dessus
Premier réflexe go sur le port 80 : http:// : 192.168.1.34:80
Ha ha ça commence bien, un petit htaccess dès l'index du site
Le Username n'est pas compliqué à deviner grâce à la phrase : "Laisse moi deviner Bob..."
Là où on peut se creuser la tête c'est pour le mot de passe l'indice est une suite de chiffres, qui après quelques secondes de réflexion, me font penser à des coordonnées géographique. Allez google maps !
La position nous donne la ville de Champfrémont, qui ce trouve être le mot de passe.
Petit mot tout de même sur cette première étape à passer, les points ne tombent pas exactement sur la ville, ce qui m'a coûté plusieurs essais, et pleins de doutes sur le fait que les chiffres donnés étaient bien des points GPS... Merci Khaos
Une fois le htaccess passé nous arrivons sur un blog et là grosse surpise c'est un Dotclear ! J'en croise pas beaucoup et c'est assez amusant vu que j'utilise ce CMS pour ce blog XD
Un lien dans le menu du site (khaosearch) nous donne un formulaire de recherche de la chaîne YouTube du créateur du CTF
II - Exploitation
Bon je vous le dit de suite un formulaire de recherche dans un CTF débutant ça sent bon la faille SQL. Donc premier réflexe du hackeur flemmard : SQLMAP
Oui mais non ! Pourquoi ? Parce que sqlmap ne prend pas en charge les accents ! Et vous savez où y'a un accent ? Dans le mot de passe du htaccess : Champfrémont.
Comment qu'on fait alors ? Bha à la main quoi, et c'est pas plus con, ça permet de se remettre le nez dans les injections SQL :
C'est donc le champ recherche qui nous intéresse, ici j'utilise l'outil de développement de Firefox pour vous montrer mon injection.
L'injection passe niquel mais l'affichage du résultat pique les yeux, un petit Ctrl+U pour afficher la source me convient mieux.
Hoho une table ssh_keys est présente. Pas besoin de plus pour un accès ssh ! A l'attaque !
Et bingo une petite clef ssh de l'utilisateur Alice. On sauvergarde le tout dans un fichier que je nomme id_rsa
Testons notre clef pour un connexion ssh avec le username Alice. Petite astuce, il faut changer les droits sur la clef autrement ça bloque.
Et Bingo ! Nous avons l'accès au serveur avec les droits de Alice UID:1000
Une jolie tête de chat nous dit bonjour, mais le Tic tac ne nous dit rien de bon.
En effet au bout de quelques minutes à fouiner sur le serveur je me fais déco ! Le plus drôle ? La clef RSA a changé et le mot de passe du htaccess aussi. Merci Khaos pour toute cette souffrance
On comprend vite alors qu'une crontab tourne sur le serveur. Go passer root pour voir ça !
III - Escalade de privilège
Regardons un peu ce que Alice peut lancer sans mot de passe, et avec les droits root :
Gagné Alice peut lancer awk, un petit check sur cet article : Linux Privilege Escalation using Sudo Rights nous donne la clef pour spawn un shell root !
On test et bim on passe root !
Première chose que je fais avant de regarder le /root c'est de vérifier la crontab :
Petit coquin khaos ! Un script : timer_reboot.sh reboot la VM. Une fois le reboot effectué le mot de passe htaccess change ainsi que la clef ssh. Solution ? Je me prends pas la tête je supprime toute la crontab XD
Maintenant je suis plus serein pour aller regarder dans le dossier root sans avoir peur de me faire jeter si près du but :
Et voilà le petit FLAG qui nous attend ! VM terminée.
IV Conclusion :
Une VM simple ... Mais qui peut bien casser les noisettes avec la deco ssh. Merci pour cette VM Khaos en attente de tes nouvelles vidéos sur le sujet !