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