Bonjour,
L’idée de ce tuto est de faire un premier Capture the Flag/CTF pour les noobs. Etant moi-même débutant en pentest, je me suis permis de créer ce tuto afin d’aider les personnes qui auraient du mal sur le premier Capture The Flag de TryHackMe.com qui s’intitule Basic Pentesting.
https://tryhackme.com/room/basicpentesting
Les outils à avoir pour suivre ce tuto sont :
- Une distribution Kali linux (installée sur Virtualbox ou VMware)
- Une connexion internet sur votre Kali
Les choses à savoir : S’il vous manque un des outils qui sera utilisé, lancer un terminal sur votre kali et faite la commande « apt-get install nom_de_l’outil ».
Exemple: apt-get install john
Si vous avez déjà l’outil cette commande vous mettra à jour l’outil.
Si vous avez besoin de voir les options des outils utilisés, dans un terminal tapez le nom de l'outil suivis de -h
Exemple: john -h
Afin de pouvoir accéder à la machine cible, il faudra installer leur VPN :
En cliquant sur le lien OpenVPN configuration file, vous verrez des vidéos expliquant comment faire pour installer le VPN et y ajouter votre fichier de configuration OpenVPN
Une fois que le VPN est fonctionnel, cliquez sur Deploy (le bouton vert).
Vous verrez les informations de la machine cible:
N'hésitez pas à cliquer sur "Add 1 hour" pour avoir plus de temps.
Pour ma part, l’ip de la machine cible est 10.0.0.111, voyons voir si cette machine est joignable.
Je vais faire un ping de ma machine Kali: (à vrai dire tout va se dérouler sur Kali à partir de maintenant)
Scannons la machine cible afin de voir ses services et les ports qui sont ouverts grâce à Nmap
Nous voyons ici que le port SSH est ouvert, qu’il y a un serveur Apache sur le port 80 avec un site Web sans titre et qu’un serveur SAMBA est configuré.
Essayons de nous connecter sur ce site web avec un navigateur
Voyons voir si nous pouvons trouver des infos dans le code source de la page :(Click droit > Code Source de la page)
Cela nous dit d’aller voir la section « note des développeurs ».
Voyons voir si nous pouvons lister les répertoires du site. Pour cela nous allons utiliser « dirbuster » :
Nous allons utiliser un dictionnaire afin d’accélérer le processus, pour cela, il faudra cliquer sur « List Info » afin voir ceux qui sont disponibles :
Nous utiliserons le dictionnaire « directory-list -2.3-medium.txt ». Cliquez sur Start
Après un certain temps, j’ai dû mettre sur pause le brute force car j’ai vu quelque chose qui m’a interpellé dans l'onglet "Results - List View": /development/dev.txt ce qui ressemble tout à fait à une note de développeur.
Allons voir de plus près ce fichier dev.txt, sur le navigateur nous allons rentrer l'ip + le nom du répertoire dans l'URL:
Nous pouvons y voir une conversation entre « J » et « K ». Apparemment le SMB est configuré ce qui nous confirme la présence d'un serveur SAMBA (vu précédemment dans notre scan nmap)
Ouvrons le fichier « j.txt » par curiosité :
Il semblerait que le mot de passe de « J » soit plutôt faible et donc facile à cracker.
Allons voir ce que l’on peut trouver sur le port 445 (SMB)
Nous allons, pour ce faire utiliser Enum4linux. C’est un outil d’énumération pour les systèmes Windows et Samba.
Je ne vais pas mettre tout le détail complet mais juste ce qui nous intéresse:
Ci-dessus nous trouvons 2 utilisateurs « Kay » et « Jan » ce qui pourrait nous faire penser à la conversation entre « J » et « K » que nous avons vu dans « dev.txt » et « j.txt »
Essayons maintenant de faire un bruteforce sur le port SSH (que nous avons vu ouvert précédemment avec notre nmap) utilisant le login de « Jan ». Nous utiliserons Hydra comme outil et un dictionnaire qui est déjà intégré à Kali.
Nous pouvons voir que le login « Jan » a comme mot de passe « armando »
Essayons de nous connecter en SSH avec ce login avec la commande ssh (comme ci-dessous):
Tapez Yes
Tapez le mot de passe
Cela fonctionne !
Voyons voir si Jan est administrateur ou plutôt Root comme c'est un Ubuntu avec la commande sudo -l:
Il ne l’est pas. Nous allons fouiller dans les dossiers afin d’y trouver un ou des éléments intéressants :
Pour fouiller je vais naviguer avec la commande ls -la (pour lister les répertoires et leurs attributs) et revenir en arrière avec cd..
Encore une fois je ne vais pas vous montrer tous les dossiers mais ce qui va nous intéresser pour avancer.
Eh oui il faut un peu de travail de votre part quand même ;-)
Bref, en fouillant dans les dossiers de Kay, dans le dossier .ssh, on peut repérer une clé RSA (« id_rsa ») qui est visiblement encryptée en AES – 128 bits. Nous pouvons aussi voir que Kay a les droits dessus.
Copions cette clé sur notre machine. Un simple copier collé dans un document texte fera l’affaire.
Enregistrez le fichier et nommez le « id_rsa »
En essayant de l’ouvrir on peut voir qu’elle est protégée par un mot de passe :
Nous allons utiliser ssh2john pour en retirer le hash :
Ssh2john.py se situe dans: /usr/share/john
Si vous ne trouvez pas ssh2john, vous pouvez lancer, à la racine, la commande : « locate *2john »
Nous allons utiliser la commande cat /emplacement_du_dossier/kay.hash pour visualiser le hash:
Nous allons maintenant faire un bruteforce de ce hash avec Johnny (outil déjà intégré à Kali):
Cliquez sur Open Password File
Ajoutez le fichier kay.hash
Cliquez sur Start new attack
Résultat:
Bingo ! Nous avons trouvé le mot de passe de la clé: beeswax
Essayons maintenant de nous connecter avec cette clé privée en tant que Kay avec la commande
ssh -i id_rsa Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Les plus vigilants verront que l’adresse IP de la machine cible a changée, ceci est dû au fait que j’ai dû m'absenter un moment, mais après avoir rafraichit la page du CTF, du coup la machine cible avait changée d’IP, mais pas de panique, tout le travail que l’on a réalisé jusque là reste d’actualité sur la nouvelle machine !
(oui le sudo alors que je suis déjà root... je sais... ^^)
Il nous manque des permissions sur la clé (Load keys "id_rsa": bad permissions), on va se mettre tous les droits dessus, soyons fou ?
Pour ce faire on va rentrer la commande chmod -777 id_rsa
Nous pouvons maintenant tester le mot de passe de la clé (passphrase) qui était? (voyons si vous suivez..)
Super ! Le passphrase fonctionne. Nous pouvons voir à gauche que nous sommes connecté en tant que Kay
Voyons voir ce que l’on peut ouvrir avec Kay. Le fichier pass.bak m’interpelle, essayons de l’afficher :
On dirait bien un mot de passe super fort qui respecte une certaine politique de mot de passe ?
Testons ce mot de passe avec Kay pour se connecter en root avec la commande sudo bash et ce qui se trouve dans le fichier pass.bak comme mot de passe:
Ça fonctionne ! Nous voyons bien à gauche que nous sommes connecté en root
Fouillons un peu pour voit si nous trouvons le flag de ce CTF (il s’agit là de faire un « ls -la » sur tous les dossiers que l’on voit). Nous avons trouvé le fichier flag.txt, ouvrons le avec la commande « cat »
Nous avons trouvé le flag de ce Capture de Flag. Il était tout simplement à la racine.
Bravo à tous ceux qui auront pu reproduire ce tuto !
Si ce petit tuto vous a permis d'apprendre quelque chose ou si vous avez aimé n'hésitez pas à le noter :)
(les notes en dessous de 5 ne sont pas permises) :p
N'hésitez pas à nous suivre sur les réseaux sociaux, twitter, google+ etc...