miguel@home:~$

Pressenter - DockerLabs

OS Dificultad Creator
Linux Fácil d1se0

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 acceder al puerto 80, encontramos una página con un mensaje de inicio de reto. image

En el código fuente aparece un dominio oculto: pressenter.hl. Lo añadimos en /etc/hosts y accedemos nuevamente.

image

Observamos que el sitio usa WordPress, por lo que intentamos acceder a wp-admin y otros recursos de WordPress.

image

Usamos WPSCAN para enumerar los usuarios de WordPress:

wpscan --url http://pressenter.hl/ -e vp,cb,u

Identificamos dos usuarios: pressi y hacker.

Fuerza bruta

Ejecutamos fuerza bruta sobre pressi con el diccionario rockyou.txt:

wpscan --url http://pressenter.hl/ -U pressi -P /usr/share/wordlists/rockyou.txt 

image

Obtenemos la contraseña dumbass para pressi y accedemos al panel de WordPress.

image

Reverse Shell

En el panel de WordPress, instalamos el plugin File Manager.

image

Aprovechamos la sección de subida de archivos para cargar una reverseshell en PHP. ara esto, generamos una reverseshell desde Pentest Monkey, una herramienta popular para crear shells PHP que nos permiten obtener acceso remoto al servidor. La ruta de la reverseshell es la siguiente:

Reverseshell de Pentest Monkey

image

Iniciamos netcat en nuestro sistema para escuchar conexiones entrantes:

nc -lvnp 4444

Accedemos a la reverse shell a través del navegador:

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

Intrusion con el usuario enter.

Identificamos al usuario enter en el sistema y exploramos el archivo wp-config.php en WordPress, donde encontramos las credenciales de la base de datos (admin / rooteable).

image

mysql -u admin --password=rooteable

Una vez en MySQL, exploramos la base de datos wordpress y buscamos en la tabla wp_usernames:

select*from wp_usernames;
+----+----------+-----------------+---------------------+
| id | username | password        | created_at          |
+----+----------+-----------------+---------------------+
|  1 | enter    | kernellinuxhack | 2024-08-22 13:18:04 |
+----+----------+-----------------+---------------------+

Esto nos proporciona la contraseña de enter: kernellinuxhack.

Con esto, cambiamos al usuario enter:

su enter

Escalada de Privilegios

Al ejecutar sudo -l, notamos que tiene permisos para ejecutar cat como root y whoami como root .Utilizando GTFOBins sabemos cómo explotar estos binarios.

image

Exploramos la raíz de enter y encontramos user.txt, lo que sugiere que un archivo equivalente puede estar en el directorio /root. Como podemos usar cat como root, lo leemos:

image

image

Alternativamente, al probar la misma contraseña de enter para root, conseguimos acceso root:

image