Trust - dockerlabs.es
Last updated
Last updated
IP: 172.17.0.2
Siempre como primer paso revisamos que haya conexión con la maquina (objetivo), para esto lanzamos un simple ping a la ip objetivo que en este caso al correr la maquina nos ahorra el trabajo de localizar el host especifico que en caso de no encontrarlo podemos usar nmap -sn y escanear toda la red.
podemos observar que el ping fue respondido con éxito no considero necesario explicar el uso del comando ping ya que en este caso no va mas allá de su función base.
Por costumbre la detección de puertos y servicios siempre la separo en dos fases
fase1: descubrimiento de puertos
fase2: descubrimiento de versiones y servicios por host esto es mas por gustos míos que por cualquier otra cosa así que veamos que encontramos
Fase1
para el descubrimiento de puertos vamos a usar el siempre confiable nmap y un Stealth Scan
Donde:
sS
= a el tipo de escaneo que va a ejecutar nmap en este caso un Stealth Scan
p
= los puertos a escanear en este caso el -
indica que recorremos todo el rango de puertos disponibles entonces serán 65535 los puertos que se analizaran
vvv
= indicamos un nivel tres de verbose lo cual nos dará toda la información que obtenga en el momento
n
= para que no haga resolución de dns
T5
= para usar la plantilla de escaneo mas rápida como dice nmap entre mas alta mas rápida
oN
= Le decimos que todo lo que obtenga lo guarde en un archivo de formato normal
una ves lanzado el comando obtenemos los siguientes puertos abiertos:
Encontramos los puertos 22 y 80 que podemos desde este momento identificar que hay en cada uno ya que
22 --> Es estándar para SSH
80 --> Es estándar para servicios http también nmap ya te coloca ahí lo que es pero para estar mas seguros procedamos a agregar algunas cosas al comando de nmap
Fase2
Aunque podemos saber desde un inicio que hay en los puertos siempre es bueno revisar un poco mas a fondo ya que en este mundo nada es lo que parece en algunos casos asi que con el siguiente comando
Donde:
sC
= Equivalente a --script=default esto lanza algunos scripts siemples de reconocimiento
sV
= Este argumento instruye a Nmap para intentar identificar la versión de los servicios que se detectan. Esto puede ser útil para determinar si un servicio en particular tiene vulnerabilidades conocidas. con esto encontramos lo siguiente:
22 --> OpenSSH 9.2p1 Debian 2+deb12u2
80 --> Apache httpd 2.4.57 ((Debian))
una ves que corroboramos los puertos y servicios ahora si vamos con lo interesante.
sabemos que por la versión de ssh no podemos hacer mucho entonces no perderemos tiempo en intentar cosas por ahora.
En el puerto 80 podemos ver que hay un apache corriendo así que vamos a ver que encontramos primero vamos a usar whatweb
este comando nos ayuda a identificar desde linea de comandos las tecnologías que hay corriendo en alguna pagina en este caso encontramos poco pero vemos que hay un default page
y como podemos ver si solo esta la pagina web default de apache, ahora bien esto es lo que vemos en un inicio pero puede que haya alguna cosas por ahi que no están indexadas o puede que este mal configurado y por eso vemos solo esto asi que usaremos el FUZZING para ver si hay algo mas.
para entender mejor el fuzzing debemos saber que el fuzzing o fuzz testing, es una técnica para descubrir bugs o fallas de seguridad, en este caso lo usaremos para buscar directorios en el sitio web con el uso de un diccionario a base de prueba y error, para esto usaremos la herramienta gobuster hay algunas mas como wfuzz o fuzz que funcionan de la misma manera asi que cada uno es libre de usar la que mejor se acople a sus necesidades al final todo es codigo abierto.
Donde:
dir
= a lo que queremos buscar en este caso directorios
w
= la ruta del diccionario a usar
u
= la url objetivo
t
= el numero de hilos de procesador a usar
con este comando encontramos poco si no es que nada ya que index es la pagina default entonces vamos a ir un poco mas profundo ya que no hay mas lugar para entrar, busquemos también extensiones para esto usaremos el parámetro -x
en gobuster para que busque extensiones
ahora si encontramos algo mas interesante el directorio secret.php
dentro vemos lo siguiente:
siempre es bueno en paginas simples como esta revisar el código fuente ya que suelen estar llenos de comentarios o cosas que olvidad los desarrolladores eliminar, pero en este caso no hay nada de interesante. en este punto este CTF muy fácil se torno un verdadero puzzle después de varias horas pensado que algo me faltaba y si aquí se ve que los CTF son para pensar y divertirse, acomodando las piezas recordé que hay un servicio ssh y en esta pagina vemos un Hola Mario entonces tal ves Mario es un usuario del sistema entonces vamos por por la nunca mala fuerza bruta por diccionario.
Para esto vamos con la herramienta hydra con los siguientes parámetros
Donde:
l
= Es login o el usuario en caso de que se tenga
P
= Es pass o la password en este caso no contamos con ella por esto usamos el diccionario rockyou
v
= Verbose mode Una ves ejecutamos
hydra BINGO dimos con una contraseña
En este caso probaremos por ssh con las siguentes credenciales
usr --> mario
pass --> chocolate
Pues nos conectamos y vamos con los pasos finales.
Para este paso hay varias formas de verificar como podemos ser root en una maquina por ejemplo si tenemos la contraseña podemos usar sudo -l
para listar si el usuario tiene permisos de ejecución sobre algún archivo en especifico y en este caso encontramos algo ala primera.
mario puede ejecutar vim como root entoces usaremos la pagina https://gtfobins.github.io/ para que sea mas fácil explotar este sudo vim:
una ves en gtfobins podemos ver que con sudo vim -c ':!/bin/sh'
podemos escalar los privilegios pero para no solo ejecutar y escalar desglosemos que hace este comando que a ciencia cierta es bastante simple lo que hace la usar el parámetro -c
este ejecutara el comando encerrado en las comillas y como vim lo ejecuta sudo una sh aparecerá pero con el usuario root ejecutándola
y listo hemos comprometido la maquina trust como recomendación ejecutar vim desde la ruta absoluta para evitar inconvenientes...