TEST DE PENETRACION COMPLETO – TRYHACKME (Vulnversity)
INDICE
TAREA 1 PAG 2
TAREA 2 PAG 3-4
TAREA 3 PAG 5-6
TAREA 4 PAG 7-8
TAREA 5 PAG 9
CONCLUSION PAG 9
Tarea 1 – Desplegar la maquina
Lo primero será conectarnos a los servidores de tryhackme mediante openvpn:
Ahora que ya estamos conectados y tenemos la maquina arrancada , probaremos a conectarnos a la ip que nos facilita tryhackme :
Al hacerle un ping parece que tenemos conexión con el equipo.
Tarea 2 – Reconocimiento
¿Cuántos puertos están abiertos?
Como podemos ver en la imagen tenemos 6 puertos abiertos :
21 ftp,22 ssh,139,445,3128,3333
¿Qué versión del squi esta corriendo en la maquina?
En la misma imagen podemos ver que la versión es Squid 3.5.12
¿Cuántos puertos escaneara nmap con el argumento –p-400?
En este caso el –p en el nmap es para especificar que puertos o que rangos de puertos escaneara , al añadir el rano “ -400” quiere decir que escaneara desde el 1 al 400 por lo que escaneara 400 puertos.
¿Qué sistema operativo esta corriendo la maquina?
Si nos fijamos en la primera imagen vemos como en el puerto 3333 esta corriendo un servidor web http apache que entre paréntesis te dice que es una maquina Ubuntu.
¿En que puerto esta corriendo el servidor web?
Como sabemos apache es un tipo de servidor web y según la imagen esta corriendo en el puerto 3333.
¿Cómo se habilita el verbose mode en nmap?
-v
Tarea 3 – Localizando directorios con gobuster
Por si no lo tenemos instalado:
Sudo apt install gobuster
A continuación ejecutamos el gobuster especifiando la ip a la que atacaremos con el argumento –u y la wordlist que utilizaremos con el –w:
Como podemos ver encontramos 4 directorios
¿Cuál de los directorios tiene un formulario?
/internal/ , seria el que tiene un formulario para subir archivos al servidor.
Tarea 4 – Comprometer el servidor web
¿Qué tipo de archivo quieres subir normalmente para explotar un servidor?
Un archivo .php
El siguiente paso seria instalar BurpSuite que es una herramienta usada en pentesting.
Una vez instalada , podemos ejecutarla escribiendo simplemente: burpsuite.
Lo siguiente será ir a la web del formulario y presionar en enviar para que se genere una petición html de tipo POST la cual copiaremos y pegaremos en el bursuite.
Acordarse también de hacerlo desde la pestaña intruder , y dentro de ella el tipo de ataque tiene que ser sniper.
Tambien hay que añadir nuestro archivo de worldlist con las palabras con las que queremos que checkee , en nuestro caso los diferentes tipos de archivo .php:
Como podemos ver al hacer la petición , hay una petición que tiene un tamaño diferent. .phtml
Asi que seria la extensión que utilizaremos para el ataque.
Como podemos ver el paquete termina con un success de que el formulario se ha enviado correctamente.
El siguiente paso será descargarnos el siguiente script:
Php-reverse-shell.php
, editarlo y poner nuestra ip de la maquina desde la que atacamos:
Una vez editado lo guardamos pero como .phtml que es la extensión valida.
Ahora vamos a utilizar la herramienta netcat para ver que conexiones entrantes estamos recibiendo con el comando nc –lvnp 1234:
Ahora nos vamos al directorio /internal/ y subimos nuestro srcipt , una vez subido lo ejecutaremos poniendo la url :
Ip/internal/php-reverse-shell.phtml
Una vez hecho esto vemos como ya estamos dentro de la maquina objetivo con un Shell abierto , y al ir al directorio /home vemos el nombre del usuario que en este caso es Bill
Y dentro de el nuestra flag.
Tarea 5 – Escalada de privilegios
Lo primero que haremos será ejecutar el siguiente comando:
Find / -user root –perm -4000 –exec ls –ldb {} \;
Mediante este comando listaremos los archivos/servicios SUID es decir que pueden tener permisos temporales , en este caso del usuario root que es el que hemos especificado
Como ya sabemos por que somos unos expertos en Linux :P , vemos que tenemos acceso al servicio systemctl que se utiliza para ejecutar comandos de forma elevada.
Asi que ahora lo que haremos será crear una variable en la que se guarda un servicio temporal que cuando lo ejecutemos mediante systemctl nos daremos permisos de administrador cuando ejecutemos un bash – p
Y con esto ya tenemos la flag que se escondia en root.txt
CONCLUSION
Me ha parecido una practica superinteresante la practica y en la que he aprendido muchas cosas , desde el uso del burpsuite , al uso del script de php para enviarte un Shell desde una maquina remota a la tuya. Aunque para ser sinceros la ultima tarea del escalado de privilegios tuve que encontrar la solución por internet puesto que con mis conocimientos actuales me hubiese sido imposible sacarlo , aunque gracias a eso ahora se mas sobre el uso del systemctl en Linux.