Je continue à publier des solutions envoyées à la finalisation des machines depuis le site HackTheBox .
Dans cet article, récupérons RCE dans Tomcat, cassons l'archive zip et élevons les privilèges à l'aide de LXD.
Informations organisationnelles
Reconnaître
Cette machine a une adresse IP de 10.10.10.194, que j'ajoute à / etc / hosts.
10.10.10.194 tabby.htb
La première étape consiste à analyser les ports ouverts. Je fais cela en utilisant le script suivant, qui prend un argument - l'adresse de l'hôte analysé:
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1
Le choix est petit, commençons par le port 80, où le prochain site nous rencontre.
En regardant autour de nous sur le site, nous notons par nous-mêmes une manière intéressante d'afficher les actualités (avec un soupçon de LFI).
Et ajoutez également une autre entrée à / etc / hosts.
10.10.10.194 megahosting.htb
Vérifions si LFI est disponible, j'utilise LFISuite pour cela.
Et nous trouvons LFI. Puisque nous n'en avons pas plus, passons au port 8080. Là, nous sommes accueillis par une page à partir de laquelle nous apprenons que Tomcat est utilisé.
Nous attirons votre attention sur un dossier intéressant. En cliquant sur un autre lien, vous êtes accueilli par une fenêtre d'authentification HTTP. Lisons le fichier donné /usr/share/tomcat9/etc/tomcat-users.xml.
Et il existe des informations d'identification avec lesquelles nous pouvons nous connecter. De là, nous pouvons obtenir le RCE en utilisant le module tomcat_mgr_deploy.
Définissons les paramètres requis.
Et nous obtenons l'erreur de chemin de fichier.
Point d'accès
Après avoir erré un peu, nous tombons sur l'aide, qui contient le répertoire texte.
Montrons ce chemin.
Et nous obtenons une session de mètrepreter. Pour effectuer rapidement une reconnaissance, déposons le script LinPEAS sur l'hôte et exécutons-le.
En analysant attentivement la sortie, nous trouvons un fichier intéressant.
UTILISATEUR
Téléchargez-le et essayez de l'ouvrir. Mais on nous demande un mot de passe.
Essayons d'itérer dessus.
fcrackzip -D -p ../tools/rockyou.txt 16162020_backup.zip
Et nous trouvons le mot de passe probable. Il n'y a rien d'intéressant dans l'archive elle-même, mais c'est un mot de passe d'un utilisateur créé dans le système.
Pour une connexion pratique, créons une clé SSH.
RACINE
Connectons-nous via SSH en utilisant une clé privée et voyons que l'utilisateur est dans le groupe lxd.
LXD est un gestionnaire de conteneurs système. Il offre une interface utilisateur similaire aux machines virtuelles, mais utilisant des conteneurs Linux à la place.
Le noyau LXD est un démon privilégié qui expose les API REST sur le socket Unix local, ainsi que sur le réseau s'il est configuré pour le faire. Les clients tels que l'outil de ligne de commande fourni avec LXD envoient des requêtes via cette API REST. Cela signifie que, que vous accédiez à localhost ou à distance, tout fonctionne de la même manière.
Mais nous pouvons exécuter des commandes via lui, c'est-à-dire en tant que root. Pour cela, nous aurons besoin du logiciel suivant, téléchargez et créez les sources. Téléchargez l'image résultante sur l'hôte distant. Et après la partie préparatoire, nous importons notre fichier image compatible lxd.
lxc image import ./alpine-v3.12-x86_64-20200810_0015.tar.gz --alias ralf
On nous dit qu'il fallait d'abord l'initialiser, mais cela peut être fait plus tard. Assurez-vous que l'image est chargée.
lxc image list
Maintenant, initialisons.
Créons un conteneur avec une image et un nom.
lxc init ralf ignite -c security.privileged=true
Et nous définirons les configurations où le disque sera monté en tant que / mnt / root.
lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true
Lancez et exécutez.
lxc start ignite
lxc exec ignite /bin/sh
Et nous avons les droits root.
Vous pouvez nous rejoindre sur Telegram . Vous pouvez y trouver des documents intéressants, des cours et des logiciels qui ont fui. Rassemblons une communauté dans laquelle il y aura des gens qui connaissent de nombreux domaines de l'informatique, alors nous pourrons toujours nous entraider sur tous les problèmes informatiques et de sécurité de l'information.