SolidState
| Sistema operativo | Dificultad | Fecha de Lanzamiento | Creador |
|---|---|---|---|
| Linux | Medium | 08 Setiembre 2017 | ch33zplz |
Reconocimiento
Iniciamos como siempre, lanzando una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.

Enumeración inicial
Realizamos un escaneo con nmap para descubrir que puertos TCP se encuentran abiertos en la máquina víctima. Lanzamos una serie de script básicos de enumeración propios de nmap, para conocer la versión y servicio que esta corriendo bajo los puertos.
nmap -sS -sCV -p- --open --min-rate 5000 -Pn -n 10.10.10.51 -oN scan -vvv

Enumeración de servicios
Web

Explotación inicial
Apache James Server 2.3.2 - Remote Command Execution (RCE) (Authenticated)
James Server es un servidor de correo electrónico SMTP, POP3 y Noticias NNTP. Proyecto de la Apache Software Foundation 100% hecho en Java, siendo un completo y portable motor de Correo electrónico basado en los actuales protocolos de código abierto.
Probamos conectarnos al servicio utilizando telnet:

Vemos que las credenciales por defecto root:root son validas.
Enumeramos usuarios:

Podemos también cambiar las contraseñas de dichos usuarios para luego aprovecharnos para intentar un ataque de fuerza bruta al protocolo SSH (22)

Creamos una lista de usuarios:
james
thomas
john
mindy
mailadmin
Lanzamos un ataque de fuerza bruta al protocolo SSH.
hydra -L users.txt -p 'password123' ssh://10.10.10.51 -I
Pero no son validas.

Por otra parte, si probamos con POP 3 y vemos que si son validas.

Nos conectamos utilizando telnet

Algunos comandos POP3 más para interactuar con el correo electrónico:
STAT: Muestra el número de mensajes y el tamaño total del buzón.LIST: Muestra una lista de los mensajes y sus tamaños.RETR [número]: Recupera el mensaje número[número].DELE [número]: Marca el mensaje número[número]para eliminación.QUIT: Cierra la sesión.
Si miramos los mensajes, vemos que james no tiene mensajes en el buzón al igual que el usuario thomas.
Pero, si probamos con el usuario john tenemos el siguiente correo:

Si ingresamos con mindy, vemos que tenemos dos mensajes. El primero de ellos es el siguiente:

El mensaje anterior, simplemente le da la bienvenida a mindy a la empresa.
Pero si leemos el segundo, encontramos algo interesante, las credenciales de mindy enviadas por james:

mindy:P@55W0rd1!2@
Iniciamos sesión por ssh con mindy.

Usuario mindy
Leemos el flag de user.txt

Vemos que el usuario mindy tiene una restricted bash. Pero podemos hacer un bypass de la siguiente forma.
ssh mindy@10.10.10.51 -t "bash --noprofile"
Elevación de privilegios
Si realizamos una enumeración básica, encontramos un script de python el cual simplemente borra todos los archivos y directorios que se encuentran bajo el directorio tmp. La particularidad, es que los permisos de este script son 777 por lo tanto podemos alterar el script para que asigne por ejemplo permisos suid a la /bin/bash.
Podemos observar las tareas cron con pspy32:
Modificamos el script:

Esperamos a que corra el proceso y tendremos asignado el permiso SUID a la bash.
Por ultimo, leemos la flag de root.txt
