Avengers Blog Walkthrough - TryHackMe [EN][ES]

Write-up of the room Avengers Blog - TryHackMe. Difficulty: Easy 🟢

Avengers Blog Walkthrough [EN]

[Task 1] Deploy

Deploy the machine and wait 5 minutes.

ping

Initial scanning

My initial scanning of the machine:

allPorts
targeted

[Task 2] Cookies

Using the Cookie Editor extension to see the flag:

cookieEditor

Using the “Inspect Element” (F12 or right click) and entering in “Storage”:

cookieInspector
cookieInspector2

[Task 3] HTTP Headers

We need to look at the HTTP Headers with “Inspect Element” (F12 or right click). Then inspect the original request “/”.

HTTPHeaders

[Task 4] Enumeration and FTP

Enter in the FTP Share and download the file with the flag.

ftp
ftpCuriosity

[Task 5] GoBuster

Fuzz the web to found one secret path.

GoBuster
Wfuzz

[Task 6] SQL Injection

In this part, I used BurpSuite to repeat the injections until it worked.

sqli
sqli
sqli

Find how many lines of code are:

cweb

[Task 7] Remote Code Execution and Linux

We can execute codes in the input of the web but we can’t use “cat” to read the flag so we need to search other ways to read it. In my case, I used “less” instead of “cat” to read the flag.

rce
rce
rce


Avengers Blog Walkthrough [ES]

En este post vamos a resolver la room de TryHackMe llamada “Avengers Blog” explicando cómo la he realizado. Recomiendo encarecidamente que la persona que está leyendo esto, haya intentado o conseguido realizarla por si mismo. Es una sala bastante sencilla, que puede ser una buena introducción al hacking.

[Task 1] Deploy

En esta tarea simplemente tenemos que desplegar la máquina y conectarnos a la VPN. No creo que ninguna persona tenga ningún tipo de problema dado que es una tarea que suele estar en todas las salas de la plataforma. En cualquier caso, sería tan sencillo como acceder al apartado de acceso (“https://tryhackme.com/access”) y descargar el fichero de VPN. Luego simplemente deberíamos ejecutar “openvpn tu-fichero.ovpn”. A la hora de comenzar la sala, debemos de desplegar la máquina y esperar alrededor de 5 minutos para que la máquina se pueda configurar.

ping

Initial scanning

En este apartado voy a enseñar alguno de los análisis iniciales que se suelen realizar. Tras hacer uso de ping y asegurarnos de que está completamente desplegada podemos empezar con el análisis inicial. Iniciaremos con un reconocimiento con Nmap. Para ello haremos dos análisis, uno primero más extenso para saber qué puertos tiene activos y uno segundo en el que se trata de averiguar el servicio y versión que está corriendo.

allPorts
targeted

Ahora ya sabemos que tiene 3 puertos abiertos, los servicios que corren y las versiones. Alguna de las pruebas que podemos realizar son las siguientes; en el puerto FTP podemos probar el usuario Anonymous que puede que esté activado por defecto y en el servicio web podríamos revisar el código de la página o realizar Link Hovering, es decir, buscar links a otros enlaces de la web.

[Task 2] Cookies

Esta tarea está enfocada en una introducción a las cookies y el por qué de su uso. En caso de tener cierto conocimiento podremos muy fácilmente conseguir la flag. Explicaremos dos formas de sacar la flag, una haciendo uso de una extensión y otra en la que únicamente con el “inspeccionar elemento” del navegador.

En la primera forma haremos uso de la extensión Cookie Editor. Esta extensión nos permite ver y editar las cookies de una forma muy sencilla. Se incluye una foto en la que podemos observar como, gracias a la extensión, podemos observar una cookie llamada “flag1” y en la que podemos ver su contenido. El contenido de la cookie comentado, sería el resultado de esta tarea.

cookieEditor

Por otro lado, podemos realizar esto mismo haciendo uso del “Inspeccionar elemento” del navegador. Para ello debemos entrar en el inspector clickando con el botón derecho o con el botón F12. Dentro de toda la información que nos ofrece debemos acceder al apartado en el que se encuentren las cookies, en el caso de Firefox, el apartado se llama “Almacenamiento”. En ese apartado podemos encontrar la cookie que buscabamos. Se acompaña el párrafo con imágenes del proceso para ilustrarlo.

cookieInspector
cookieInspector2

[Task 3] HTTP Headers

La tercera tarea también es una tarea introductoria a las cabeceras HTTP. En este caso para resolver esta tarea debemos acceder de nuevo al “Inspeccionar elemento” del navegador. A diferencia de la anterior tarea deberemos ir al apartado “Red” o “Network” y podemos observar las peticiones que se realizan. Dentro de las peticiones, si nos centramos en la principal, es decir, en la primera que se realiza, vemos como dentro de las cabeceras de respuesta, está la flag.

HTTPHeaders

[Task 4] Enumeration and FTP

En este apartado debemos acceder mediante ftp con las credenciales que nos proporcionan. Para poder hacer uso de este servicio, desde la terminal debemos ejecutar lo siguiente “ftp IP”. Tras introducir las credenciales, podemos listar haciendo uso de “ls” y entrar en la carpeta que encontramos con “cd”. Simplemente debemos descargar la flag con “get” y leerla en local. Por otra parte, encontré como curiosidad una forma de leer el fichero simplemente con el get.

ftp
ftpCuriosity

[Task 5] GoBuster

En esta tarea debemos de realizar un fuzzing de la web. Existen una infinidad de herramientas para esta tarea pero en este caso nos explican el uso de GoBuster. En mi caso he realizado esta tarea con dos diferentes para ver las diferencias.

GoBuster
Wfuzz

[Task 6] SQL Injection

Al igual que el resto de la sala, esta tarea es una introducción a otra temática del hacking. En mi caso, he hecho uso de BurpSuite para poder repetir peticiones de una forma sencilla. Para facilitar el uso de BurpSuite y cambiar de proxy hago uso de la extensión FoxyProxy. Simplemente debemos de capturar la petición en la que hemos introducido unas credenciales y mandarlo al repeater. Después deberemos ir cambiando las credenciales, en este caso, las inyecciones que introducimos e ir viendo los resultados que nos emite hasta encontrar la indicada que nos da acceso. Esto lo podemos hacer de la misma forma en la web pero en este caso hemos optado por otras formas.

sqli
sqli
sqli

Finalmente, obtenemos que podemos bypassear el login introduciendo tanto en el usuario como en la pass lo siguiente ‘ or 1=1- - . Con esto conseguiríamos loguearnos y simplemente leyendo la cantidad de líneas de código de la web podríamos pasarnos la tarea. No debemos olvidar quitar el proxy al navegador.

cweb

[Task 7] Remote Code Execution and Linux

Finalmente nos encontramos con un input en el que podemos ejecutar comandos. Podemos hacer pruebas y vemos como el binario “cat” está deshabilitado para que no podamos leer la flalg. Como forma de bypassearlo, se puede leer la flag haciendo uso de “less”, en vez de “cat”.

rce
rce
rce

Alberto Fernandez-de-Retana
Alberto Fernandez-de-Retana
PhD Student

Kaixo! PhD Student at University of Deusto under supervision of Igor Santos-Grueiro and Pablo G. Bringas. My research interests include web security & privacy. In my free time I love to be pizzaiolo.