Can you help the NSF get a foothold in UNATCO’s system?
DX1: Liberty Island est un CTF proposé par TryHackMe de niveau moyen. L’énumération Web est instructive dans le sens où il faut créer sa propre wordlist. L’escalade de privilège est un peu complexe. C’est un bon CTF pour progresser.
Commande :
nmap -T5 -p- -sVC 10.10.20.94
Il y a 3 ports ouverts :
22 – SSH
80 – HTTP
5901 – VNC
23023 – HTTP – UNATCO Liberty Island – Command/Control
Dans le fichier robots.txt, NMAP nous montre la présence du répertoire /datacubes . Lorsqu’on s’y rend le site nous redirige sur cette nouvelle URL http://10.10.20.94/datacubes/0000/
Selon ce qui est affiché comme information, il semble s’agir de messages archivés. On va voir s’il y a en d’autres. Pour cela, avec Gobuster, on va parser les archives en allant sur la page /0001 puis /0002.
Je l’ai fait avec Excel pour gagner du temps à partir d’un PC Windows. Dans une cellule de format texte, il faut mettre 0000 et tirer ( + ) jusqu’à 1000.
Ensuite, il faut copier la colonne dans le Notepad, puis copier-coller son contenu dans un fichier sous Kali qui sera ensuite utiliser avec Gobuster.
Commande :
gobuster dir -u http://10.10.20.94/datacubes/ -w num.txt
Nous avons 6 résultats. Je vous laisse regarder sur ce qui se trouve sur les autres. Je vais aller directement sur le dernier /0451 … le plus intéressant…
Il est expliqué que le login VNC sur la machine de jacobson est composé de « smashthestate » avec une clé hmac’ed qui est présente dans la liste « bad actor », le tout converti avec l’algorithme de hashage MD5.
La liste se trouve sur le site web à cette URL http://10.10.20.94/badactors.html
La seule indication pour le nom d’utilisateur sont les initiales JL. Dans la liste « bad actor », le seul nom avec ses initiales est jlebedev
Le site https://www.freeformatter.com/hmac-generator.html nous permet de calculer le hash du mot de passe.
Il ne faut prendre que les 8 premiers caractères.
Commande :
vncviewer 10.10.20.94:5901
Une fois connecté, on trouve sur le bureau un exécutable badactor-list
On va exécuter cette application afin de voir ce qui se passe.
L’application fait 2 choses. Elle se synchronise à l’adresse http://UNATCO sur le port 23023 et une fois la connexion établie, elle semble récupérer la liste des Bad Actors.
Mise en place d’un serveur web avec python
Commande :
python3.8 -m http.server
Récupération sur Kali
Commande :
wget http://10.10.20.94:8000/badactors-list
Avec l’aide de Wireshark, on va voir ce qui se passe au niveau réseau. Il faut d’abord modifier le fichier HOSTS, afin que l’application se connecter au bon endroit et donc récupérer la liste bad actors.
Une fois la capture terminée, on va utiliser le filtre http pour éliminer toutes les trames liée à VNC.
Pour voir la requête http en détail, il faut faire un clic-droit dessus et faire suivre http stream
Dans la fenêtre qui s’affiche, on récupère la communication entre Kali et le serveur UNTACO. On peut voir qu’il y a une commande directive qui effectue un cat sur le fichier badactors.txt sur l’URL UNATCO:23023
Nous allons récupérer cette requête et l’exécuter à nouveau avec BurpSuite.
Accès à l’URL 10.10.20.94 :23023
Renvoi de l’interception dans Repeater et y copier la requête vu dans Wireshark.
On peut voir que l’on récupère la liste des bad actors.
En changeant la commande cat par la commande id, on peut voir que l’on a des droits root.
Le reste ensuite est simple. Il existe plusieurs méthodes pour avoir un accès root.
Commande :
Directive : cp /bin/bash /tmp
Directive : cd /tmp
Directive : chmod 7777 /tmp/bash
Ensuite, il faut revenir sur la console VNC, et se rendre dans le dossier /tmp via l’explorateur de fichier et exécuter bash à travers le terminal.
Commande :
./bash -p
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.