#Basic Pentesting TryHackMe
Find the services exposed by the machine
Afin de trouver les services exposés par la machine nous allons réaliser un NMAP.
|
|
On remarque qu’il y a différents ports ouverts, notamment :22 tcp qui correspond à open shh, ou encore le port 80 tcp qui est un service http d’apache, on retrouve également un Apache Tomcat sur le port 8080.
What is the name of the hidden directory on the web server(enter name without /)?
On va donc lancer un dirsearch pour voir les endpoints qu’il est possible de trouver.
|
|
On retrouve donc des éléments intéressants notamment le dossier development qui va nous permettre de passer à la prochaine étape de la box. En regardant les fichiers .txt nous apprenons deux choses, la première qu’ils ont mit en place un protocole SMB, la deuxième est qu’il est possible de cracker un hash de user présent dans /etc/shadow
User brute-forcing to find the username & password
Pour bruteforce le username et le password nous allons utiliser l’outil hydra, étant donné que le protocole SMB à été mit en place on suppose qu’il faudrait bruteforce sur ce protocole.
SMB c’est quoi ? Et avoir réaliser un bruteforce via SMB à quoi cela nous mènera t’il ?
Le protocole SMB (Server Message Block) est un protocole utilisé pour le partage de fichiers et d’imprimantes sur un réseau local. Il a été développé par Microsoft et est utilisé principalement sur les systèmes d’exploitation Windows. En utilisant SMB, les ordinateurs peuvent partager des fichiers et accéder à des ressources partagées sur un réseau. Cela peut être utile pour les entreprises ou les organisations qui ont besoin de partager des fichiers et des données entre plusieurs ordinateurs ou utilisateurs. Le fait de réaliser un brute force via le protocole SMB nous permettra d’accéder au serveur par la suite.
What is the username?
Au début, je pensais bruteforcer afin de trouver le user avec hydra, sauf que cela aurait été trop long. En faisant la commande : enum4linux -a $ip
on va retrouver deux users locaux : kay et jan.
Enum4linux is a tool for enumerating information from Windows and Samba systems.
What is the password?
Ainsi, on essaye de bruteforce sur le protocole SMB, pas de resultat… on va donc voir quelles sont les autres ports ouverts. On va donc essayer de bruteforce via le port 22 ssh avec hydra.
|
|
Le mot de passe est donc Armando pour l’user jan. jan:armando
What service do you use to access the server(answer in abbreviation in all caps)?
On utilise donc le service ssh par la suite pour se connecter à l’utilisateur jan.
Enumerate the machine to find any vectors for privilege escalation
Pour la suite du challenge, on va donc utiliser LinPeass, un outil qui permet d’énumérer au sein d’une machine et repérer éventuellement ce qui pourrait amener à une escaladassions de privilèges.
Un fois LinPeass lancé :
- on remarque que la version de sudo est 1.8.16,, concernant cette version il y a la CVE **CVE-2021-3156,** qui présente un exploite public, après l’avoir essayer cela n’a pas marché car la version glibc est trop récente sur la machine.
- On remarque aussi que c’est une machine Linux de version 4.4.0, on lance donc la commande
shearchsploit Linux 4.4.0
pour voir ce qu’il est possible d’exploiter, après avoir récupéré le fichier et tenter d’exploiter cela n’a pas fonctionné. Toujours compiler sur la machine qu’on attaque. - Lorsqu’on regarde les binaires remontées par LinPeas qui ont la permissions SUID,
-rwsr-xr-x
le petit s, signifie que nous pouvons lancer ces commandes en tant que route qu’importe quel user nous sommes.rwsr-xr-x 1 root root 2.4M Nov 24 2016 /usr/bin/vim.basic (Unknown SUID binary!)
. On se rend donc sur https://gtfobins.github.io/ qui permet de voir les commandes qui vont nous permettre de privesc.
What is the name of the other user you found(all lower case)?
Nous avions également trouvé un deuxième user du nom de kay.
If you have found another user, what can you do with this information?
Voir les fichiers de l’autre user
What is the final password you obtain?
Pour la phase final on utiliser une autre solution, linpeas nous remonte une clé privé RSA, on va donc ouvrir un serveur python python3 -m http.server
, pour la wget depuis notre machine, ainsi on va pouvoir utiliser la commande ssh2john id_rsa > key.john
, puis john —wordlist=/usr/share/wordlists/rockyou.txt key.john