# NMAP


Arrancamos como siempre con un reconocimiento rapido de puertos y servicios.


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

Dos puertos disponibles, SSH y HTTP.


80/HTTP

Al acceder al puerto 80 via Firefox obtenemos un Forbidden:


Fuzzing HTTP

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


 dirsearch -u http://10.10.84.111/

Obtenemos algo!, un recurso llamado /survey



¿Que es 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í.



MariaDB

Configuro MariaDB en Arch Linux para poder realizar esto correctamente:


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

1
sudo systemctl start mariadb

Seteo la contraseña de ROOT:

1
sudo mysql_secure_installation

Finalmente voy al archivo de configuracion y descomento lo siguiente:

1
bind-address=0.0.0.0

Corremos el daemon del server:

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

Seteando un user para LimeSurvey

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:

1
sudo mariadb -u root -p

Creamos un user y le damos los permisos:

1
2
3
4
5
6
CREATE USER 'shkz'@'%' IDENTIFIED BY 'Testing123';

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

FLUSH;FLUSH PRIVILEGES;


En la web configuramos todo:


Base de datos creada!:


Configuro el ADMIN y tenemos acceso al panel de control:


LimeSurvey Authenticated RCE

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.


config.xml



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

http://10.10.84.111/survey/upload/plugins/myRevShell/php-rev.php



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 analizando la variable de entorno:


USER

Conectamos via SSH y obtenemos user.txt.

1
2
# SSH
limesvc ---> 5W5HN4K4GCXf9E

ROOT

Esta parte es bastante sencilla y con un poco de enumeración y lógica sale rápido.
Hay algo interesante y es que si volvemos al contenedor, y rooteamos con la clave que sacamos de limesvc:


1
script -q /dev/null -c bash

y luego sudo su para volvernos root.


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 :


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


Pwn3d!
Saludos!