8000 GitHub - gwyomarch/Shared-HTB-Writeup-FR
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

gwyomarch/Shared-HTB-Writeup-FR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Shared HTB

Shared HTB

Une box Linux de difficulté Medium créée par Nauten qui nous amènera à récupérer, grâce à une injection SQL, le hash du mot de passe d'un utilisateur dans la base de données derrière un site Prestashop. Puis elle nous permettra de compromettre un deuxième utilisateur en exploitant une vulnérabilité sur un package python (iPython Command Execution (CVE-2022-21699)). Ensuite, l'exploitation d'un binaire nous donnera un mot de passe qui nous donnera la possibilité de nous échapper d'une sandbox Redis (Redis LUA Sandbox Escape (CVE-2022-0543)) avec les droits root.

Enumeration

NMAP

Premièrement, on lance un scan Nmap de la machine hôte avec les scripts de détection par défaut pour trouver des ports TCP ouverts.

Nmap Scan

3 services tournent dessus:

  • SSH sur le port 22
  • HTTP sur le port 80 avec un nom de domaine associé: shared.htb
  • HTTPS sur le port 443 avec un nom de domaine associé: shared.htb

On est rediriger vers http://shared.htb, qui redirige lui-même vers https://shared.htb.

Curl Check

Ajoutons-le à notre fichier /etc/hosts et allons voir à quoi ressemble ce site web.

On accepte le certificat et on arrive sur un site Prestashop.

Browser

Prestashop

GOBUSTER

On lance une attaque par dictionnaire avec Gobuster pour énumérer les repertoires et fichiers à la racine du site en HTTP.

Gobuster Directories

Une api avec quelques endpoints et un Makefile. Jetons un œil au fichier robots.txt.

Robots

On a la confirmation que Prestashop a été installé et partiellement fonctionnel. Voyons si il y a des sous-domaine.

Gobuster Subdomain

On trouve checkout.shared.htb mais rien n'est possible directement.

Reprenons les choses dans l'ordre, allons faire un peu de shopping.

Cart Shopping

Remplissons notre panier et dirigeons-nous vers la confirmation.

Checkout

Nous revoila sur la page checkout mais avec des données à manipuler.

EXPLOIT (SQL Injection)

Un champ custom_cart dans les cookies qui s'avère être vulnérable à une Injection SQL.

BURPSUITE

Database

On récupère le nom de la base de données, puis des tables... La table user peut contenir des informations intéressantes.

Tables

On récupère ses colonnes.

Columns

Un seul utilisateur enregistré james_mason et le hash de son mot de passe, en MD5 à première vue.

Users

Essayons de cracker son mot de passe.

Crack Password

Mais on aurait aussi très bien pu enregistrer la requête dans un fichier depuis BurpSuite et utiliser SQLMap.

BurpSuite File

SQLMap Injection

SQLMap Tables

SQLMap Dump

FOOTHOLD

Avec son mot de passe, on peut se connecter en SSH à la machine cible.

SSH Foothold

Cet utilisateur fait partie du groupe developer, ce qui lui donne tout les droit sur le dossier /opt/scripts_review.

Mais pas encore de flag...

Developer Group

On sait qu'il y a un autre utilisateur, qui a lui aussi une configuration SSH dans son répertoire HOMEDIR.

(C'est surement lui qui détient le flag)

Users

Uploadons PsPy sur la machine cible pour énumérer les processus en temps réel.

Pspy

Il nous révèle un processus qui lance iPython (interactive python) depuis /opt/scripts_review.

CVE-2022-21699

Après quelques recherches sur ce package, il comporte une vulnérabilité d'exécution de code arbitraire à travers un modèle de système de dossiers spécifique, à partir du répertoire courant.

On sait que iPython est lancé depuis /opt/scripts_review sur lequel nous avons les droits en écriture, et que la clé SSH id_rsa de l'utilisateur dan_smith est possiblement à notre portée durant l'exécution.

iPython

On créer un petit script foo.py pour récupérer la clé SSH. On le place dans le répertoire profile_default/startup à partir de celui dans lequel iPython est lancé.

Get Key

Lateral Movement

SSH

SSH Lateral Movement

Si la clé n'a pas de mot de passe, on peut maintenant se connecter à la machine via le service SSH en tant que dan_smith.

Groups

Cette fois, cet utilisateur fait parti du groupe sysadmin avec un executable associé redis_connector_dev qui, d'après son nom, permet au developpeur de se connecter au système de gestion de base de données Redis, je suppose.

Redis Connector

Il se connecte sur le port 6379 par défaut et utilise un mot de passe.

On va le télécharger sur notre machine pour l'examiner.

Setup Download

Download Redis Connector

Lançons le binaire en écoutant sur le port 6379 avec netcat pour intercepter l'authentification.

Run Redis Connector

Il nous donne le mot de passe pour accéder au service Redis.

Get Redis Password

Privilege Escalation

CVE-2022-0543 (Lua Sandbox Escape)

On s'y connecte sans préciser d'utilisateur, ça doit être default, l'utilisateur par défaut de Redis. Puis, on lance un script Lua pour échapper au bac à sable Lua et lancer un reverse shell en bash.

LUA Exploit

Ça fonctionne pour lancer quelques commandes mais ce n'est pas stable, la connexion coupe au bout d'une minute environ.

Get Root With POC

J'ai continué en quête d'une meilleur méthode.

CHISEL

On va utiliser Chisel pour faire du port forwarding, rediriger le port 6379 de la cible vers le port 6379 de notre machine en la faisant écouter sur le port 9999.

Tunneling Schema

Pour mettre en place notre tunnel, il faut l'exécutable chisel sur les 2 machines.

Upload Chisel

Et on le télécharge sur la cible.

Download Chisel

On met en place chisel en mode serveur en écoute sur le port 9999 de notre machine.

Chisel Server

Puis en mode client sur la cible sur le port 6379 en entrée et en sortie.

Chisel Client

Nous pouvons maintenant utiliser le service Redis depuis notre machine comme si il y était. Cette fois-ci, pour l'exploiter, nous allons utliser un script python trouver pendant mes recherches sur cette CVE.

Modified Script

Une fois le script modifié et ajusté pour notre situation, nous pouvons enfin récupérer le flag root.

Get Root

Merci Nauten à pour cette Box super intéressantes avec des CVEs récentes.

N'hésitez pas à aller lui donner du "respect" sur son profil si elle vous a plu.

Liens:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0