RootCTF

Contenido

Parte 1 : Reconocimiento

Empezaremos lanzando un nmap:

Cuantos puertos están abiertos?

R: 2

Que versión del apache esta corriendo?

R: 2.4.29

Que esta corriendo en el puerto 22?

R: SSH

Para la siguiente pregunta vamos a lanzar un gobuster:

Directorio secreto? R: /panel/

Parte 2: Consiguiendo una Shell

Para el tema de la Shell tenemos como pista el directorio /panel/ , si accedemos a el:

Parece que podemos subir un fichero. Vamos a probar a crear un script en .php para ver si lo podemos subir y conseguir hacer reverse Shell:

(Recordar las comillas bien escritas)

Creamos el siguiente script que lo que hace es enviar una Shell a la ip que el digamos y al puerto en este caso 4444. Vamos a intentar subirlo:

Pero nos dice que php no esta permitido , asi que vamos a probar con otra extensión como por ejemplo .phtml :

Y parece que ahora si se lo ha tragado. Ahora si nos fijamos de nuevo en nuestro escáner del gobuster vemos como también ha encontrado el directorio /uploads/ vamos a ir allí:

Como podemos ver se ha subido sin problemas , ahora solo faltaría hacer un nc –lvnp 4444 para que nuestro equipo escuche en ese puerto y clickar en el script para que se ejecute y nos de una Shell:

Y como podemos ver ya tenemos la Shell.

R: THM{y0u_g0t_a_sh3ll}

Parte 3 : Escalada de privilegios

Lo primero que nos piden es buscar los archivos con permisos SUID (Set User id) es decir los archivos que al ejecutarse tengan permisos de root:

Utilizaremos el siguiente comando:

Este comando busca en el directorio raíz , los elementos de tipo archivo , con los permisos -04000 que se refiere a los que tengan activado el bit de SUID activado , es decir que al ser ejecutado por un usuario obtendrá los permisos del propietario de dicho archivo no del usuario que lo ejecute. Y para terminar hace un ls y manda los errores a dev/null.

Si nos fijamos vemos como esta el archivo /bin/usr/Python con permisos de root , asi que si encontramos un script de Python que al ejecutarlo nos de un reverse Shell ya estaría. Buscando por internet encontré el siguiente script:

Por supuesto antes de ejecutarlo abrimos un nc en otro terminal y obtenemos esto :