Resolución de la maquina Trust | DockerLaps.es | WriteUp


Trust




Que tal lord & lady


En esta ocasión te traigo la primer resolución de maquina de la plataforma Dockerlabs.es, maquina Trust.

Requisitos previos:

- Tener configurado al menos una maquina virtual como Kali o Parrot (link aquí)

- Tener descargado lo necesario para el laboratorio de dockerlabs.es (link aquí)


Write Up Maquina Trust #dockerlabs.es

Reconocimiento

Como es el primer post del hackeo de una maquina vamos primero a ver la fase de reconocimiento.

En esta fase, lo que se intenta lograr es obtener la mayor información de nuestro target, en nuestro caso, solo tenemos una IP que nos ha dado el laboratorio que se ha desplegado, en nuestro caos particular es la IP 172.17.0.2.

Por lo pronto no realizaremos un reconcomiendo tan exhaustivo, pero vamos a mandar un ping para poder ver, primero que nada que este activo nuestro target (o maquina victima) y ver si podemos obtener un nuero de TTL:


Ya hemos realizado el ping hacia nuestra maquina victima y obtenemos una respuesta, ademas de un TTL igual a 64.

Este numero es importante ya que es un numero estándar el cual nos indica con que tipo de dispositivo y plataforma estamos tratando, por ejemplo Windows responde con un TTL de 128.

Te dejo información de los TTLs más comunes y que plataformas corresponden.

Identify Operating System Using TTL Value And Ping - OSTechNix


Bien, ya que sabemos que tenemos una IP activa y además que estamos frente a una maquina Linux, podríamos ahora realizar un escaneo de puertos.


Escaneo de puertos con Nmap

Vamos a ver muy rápidamente, ¿Qué es Nmap?

link: Nmap - Wikipedia, la enciclopedia libre


Para esto vamos a ejecutar el siguiente comando, te lo comparto para que lo puedas copiar:


sudo nmap -sS -p- --open --min-rate 5000 -vvv -n -Pn TUIPVICTIMA -oN nmap_quickScan.txt


Explicando los parámetros de Nmap:

-sS: este parámetro le indica a Nmap que realice un SYN connect con la maquina victima, este tipo de escaneo le ayuda a ser veloz y sin llamar tanto la atención en la red.

-p-: este parámetro le indica a Nmap que puertos vamos a escanear. Como vemos le estamos pasando un guion a su lado derecho, esto indicaría que escanee todo el rango de puertos, que va desde el 0 hasta el 65535.

--open: este parámetro le indica a Nmpa que nos muestro solo aquellos puertos que estén abiertos.

--min-rate: este parámetro le indica a Nmap que mande paquetes, no mas lentos que X cantidad, por segundo, en nuestro caso son 5000/s.

-vvv: triple verbose; este parámetro le indica a Nmap que confirme vaya obteniendo información de los puertos que va encontrando, nos muestre los detalles de los findings.

-n: este parámetro le indica a Nmap que no realice resolución de DNS, ya que esto le pudiera también consumir tiempo en el escaneo.

-Pn: este parámetro le indica a Nmap que no realice un ping de reconocimiento hacia la maquina o maquinas victima, estamos asumiendo que la maquina esta activa y tenemos alcance en nuestro reconocimiento hacia ella.

-oN: este parámetro le indica a Nmap que realice un export de los resultados a un formato de NMAP tradicional, seguido de este parámetro podemos ver cual es el nombre de este archivo.


Ejecutamos y esperamos el resultado:



Como vemos, tanto el puerto 22 como el 80 están abiertos.

Vamos a ejecutar nuevamente el nmap pero ahora con el parametro -sC y -sV para obtener más detalles de los puertos encontrados:


sudo nmap -sCV -p22,80 TUIPVICTIMA -oN nmap_targettedPorts.txt


Explicando los parámetros de Nmap adicionales:

-sC: este parametro le indica a Nmap ejecutar scripts de reconocimiento para los puertos asignados en el parametro "-p", en nuestro caso son los puertos 22 y 80.

-sV este parametro le indica a Nmap que versione (o intente versionar) los puertos que se le pasen al paretro "-p", que en nuestro casi son los puertos 22 y 80.

-sCV: es la combinación de colocar los dos anteriores.


Ejecutamos y esperamos el resultado:



Pues como vemos, tenemos un servicio openssh con version 9.2p1 para el puerto 22 y un servicio de apache httpd 2.4.57.

Como vemos en ambos nos da indicios de que son para un sistema operativo Debian. Esto es muy importante por que también podríamos buscar vulnerabilidades para el sistema.

Puerto 22

Para este puerto, al menos con ayuda de nmap y sus scripts de reconocimiento no hay mucho que ver, pero es buena practica realizar la investigación manual, por ejemplo utilizando searchsploit o en internet.


Como vemos, al menos searchsploit no nos encontro vulnerabildiades conocidas para este servicio de ssh y su version 9.2.

Otra cosa que yo intentaría es usar Google y tal ves filtrando por palabras clave de la siguiente manera:


Vaya vaya, al parecer si hay registros de que la version es vulnerable, pero cuando menos a dia de hoy no hay un PoC o exploit que ayude a realizar la explotación.

Para nosotros dejaremos la indagación hasta aquí, tu pudiera realizar alguna investigación por tu parte y no se, tal ves seas quien agregue el PoC a alguna cuenta de Github.

Por ahora, vamos ahora con el siguiente puerto abierto.

Puerto 80

Como tenemos el puerto 80 y tenemos un servicio de Apache, esto quiere decir que esta maquina tiene un servicio web en este puerto, vamos a ver que encontramos:


Cuando menos sabemos que contine un sitio con una pagina por default del servicio de Apache.

Vamos también a ejecutar el comando "whatweb" para ver si vemos alguna información interesante:


El comando "whatweb", si es que es la primera ves que lo ejecutas es como un mini Wappalizer, el cual te información tanto de plugins y otras tecnologías detrás de un sitio.

Y si de la misma manera es la primera vez que ves el nombre de Wappalizer, es un "whatweb" pero mucho mas potente, pero no te preocupes, seguramente entraremos a detalle a utilizar estos 2 en alguna resolución de otra maquina.

Fuzzing

Ya que estamos revisando el sitio web en el puerto 80 y este no tiene como tal un sitio como para poder navegar y jugar con el, vamos a realizar rápidamente un fuzzing.


Para ellos tenemos algunas herramientas en kali, podriamos utilizar gobuster, dirbuster o wfuzz. En esta ocación yo estare utilizando gobuster, por que es muy como para mi, aun que wfuzz también puedo decir que es potente.

Vamos a ver si tenemos instalado gobuster en nuestro sistema:


Si escribimos "gobuster" y damos enter, vemos que no lo tenemos instalado, pero nos aparece la opcion a instalarlo, asi que vamos a darle a "y" y damos enter para poder continuar, y ya sabes, si te llega a pedir la contraseña de kali, ya sabemos cual es ;).

Vamos a esperar a que el proceso de instalación termine.

Una vez finalizado y si colocamos nuevamente "gobuster" podemos ver la ayuda del programa, esto quiere decir que podemos continuar con nuestro fuzzing.


Continuando, vamos a colocar el siguiente comando para poder visualizar posibles paginas y o archivos en el sitio web:


IMPORTANTE

Vamos hacer uso del diccionario rockyou.txt que siempre viene con  nuestro kali.


Si tu al igula que yo, necesitas descomprimir el archivo rockyou.txt.gz, vamos a relizar los siguientes pasos:

1- Vamos a la carpeta /usr/share/wordlist

2- ejecutamos el comando gzip -d rockyou.txt.gz


Y listo, ya tenemos el diccionario de rockyou.txt disponible para utilizarlo.


Ejecutamos el comando gobuster con los parametros para poder realizar el fuzzing:


gobuster dir -w /usr/share/wordlists/rockyou.txt -u http://172.17.0.2 -x php,html,txt,zip,bak



Por ahi alcanzamos a ver un archivo llamado "secret.php", vamos al sitio para ver que nos muestra...


Bueno, no alcanzamos a ver algun menu de navegación, links, etc,
Vamos a dar Ctrl + U para ver el codigo y esperemos ver alguna pista o inidicio que nos ayude a poder entrar de alguna manera a la maquina victima.



Como tal la página se ve muy sencilla y por lo tanto no vemos hacia donde hacernos.

Aunque, si prestamos atención, vemos en la imagen anterior que hay un usuario llamado Mario, igual nos haría pensar que es un usuario valido en el sistema.

Algo que pudiéramos intentar hacer es jugar con "hydra" para usar el usuario "mario" y esperando que alguna de las contraseñas del ya mencionado rockyou pudiera hacer match y podieramos entrar a traves de ssh.

Fuerza bruta con Hydra


Vamos a ver que parametros necesitamos darle a hydra para poder ejecutar nuestra fuerza bruta:


Hago esto por 2 razones, uno no me acuerdo como van los parametros (jejetl) y otra también para que vayas viendo como es que al ejecutar un comando o programa desde la terminal de kali, te muestra como debes ejecutar el programa en si.

Ejecutamos:

hydra -l "mario" -P /usr/share/wordlists/rockyou.txt ssh://172.17.0.2


Y boom!

Como vemos hemos obtenido la contraseña del usuario mario que, esta incluida en nuestro archivo rockyou.txt

De ahi la importancia de contar con una buena contraseña, ya que en internet hay una gran variedad de diccionarios donde, tal ves, exista nuestra contraesña.


Ahora si, vamos a ssh con la contraseña que hemos encontrado para mario.



Hemos entrado a la maquina con el usuario mario desde ssh.


Elevación de privilegios

Ahora es turno de ver como elevar privilegios en la maquina.

Para ello hay muchas técnicas y muchas maneras de comenzar.

Por ahora lo que se me ocurre es ver si contamos con sudoers y ver que permisos especiales a nivel de sudo hay:


Parece que si, hay un ejecutable, "vim", el cual puede ser ejecutado por mario.

A mi en lo personal, me gusta ir a un sitio donde podemos ver que binarios del sistema pueden ayudarnos a elevar privilegios.

El sitio es GTFOBins donde podriamos colocar el binario que podemos ejecutar en este sistema:


Por ahí vemos que si esta la opción, y vemos el apartado de SUDO, damos clic...



Hay algunas opciones que nos ayudarían a escalar privlegios, vamos a elegir la primera (a) para ver que resultados nos arroja:



Boom!
Ya somos root, ahora si, hasta la cocina.


¿Qué te pareció la maquinita? ¿Vale la pena verdad?


Eso fue todo por este post, espero te haya gustado la resolución de la maquina Trust de la pagina de https://dockerlabs.es.
Nos vemos en un siguiente post.
Salu2.

Comentarios