El Cliente
Última actualización
Última actualización
¡Hola Hacker! Bienvenid@ a un nuevo artículo. En esta ocasión, estaremos resolviendo una nueva máquina, la cual creé para nuestra comunidad de The Hackers Labs, la máquina El cliente.
Iniciamos, como de costumbre, realizando un envío de paquetes ICMP (ping) hacia la máquina objetivo para verificar la conectividad de la red. Observamos que la máquina responde a nuestros paquetes, lo que confirma que existe comunicación activa entre nuestro sistema y el objetivo.
Además, al analizar el TTL (Time To Live) del paquete de respuesta, que es de 64, deducimos que el sistema operativo de la máquina objetivo es probablemente Linux. Este valor de TTL es característico de los sistemas Linux en su configuración predeterminada, ya que otros sistemas operativos, como Windows, suelen utilizar valores diferentes (por ejemplo, 128).
Realizamos un escaneo con nmap
para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.
Lanzamos una serie de script básicos de enumeración propios de nmap
, para conocer la versión y servicio que esta corriendo bajo los puertos.
Ingresamos al puerto 80 y nos encontramos con el siguiente sitio web:
Vemos que si accedemos a alguno de los enlaces del menú, intenta resolver a el dominio arka.thl
.
Registramos este dominio en nuestro archivo /etc/hosts
.
Navegando por el sitio web, nos encontramos con una sección de contacto la cual presenta un formulario en el que podemos completar además de datos personales un mensaje.
Antes de probar si este formulario presenta vulnerabilidades, podemos realizar un poco de fuzzing de subdominios bajo el dominio principal arka.thl
.
Encontramos un subdominio disponible, admin.arka.thl
.
Lo agregamos al archivo /etc/hosts
.
Al ingresar al sitio, nos encontramos con el siguiente login.
Probamos credenciales tipicas, admin:admin
, admin:passsword
, root:toor
admin:12345678
pero nada. Intentamos con inyecciones SQL pero tampoco logramos nada.
SI recordamos, contabamos con un formulario de contacto a través del cual podemos enviar un mensaje.
El campo mensaje es vulnerable a XSS (Cross Site Scripting) y para llevar a cabo la explotación completaremos el formulario y en el campo de mensaje
utilizaremos el siguiente payload:
En este caso use este payload, pero podemos usar otros como por ejemplo:
Al cargarse la imagen anterior, se ejecutará el evento onerror
ya que no se proporciono una ruta de imagen valida.
Antes de enviar el formulario, nos ponemos en escucha con netcat.
Enviamos el formulario. Si todo va bien, luego de unos segundos recibiremos una conexión a nuestra máquina atacante con la cookie de sesión del usuario admin
.
Volvemos al sitio web de admin.arka.thl
y asignamos el valor de la cookie.
Recargamos la web y deberíamos ganar acceso al panel de administración.
Genial, ganamos acceso al panel.
Si miramos dentro de la sección de proyectos, podemos ver que existe un formulario para cargar nuevos proyectos y uno de los campos solicitados es Documentos
el cual nos permite cargar archivos. Como indica el mensaje, solo se permiten cargar archivos .pdf, .docx, .png, .jpeg, y .jpg. En este punto, deberíamos cargar el formulario y tramitar la petición por Burp Suite al Repeater, para maninpular la misma y modificar extensiones de nuestro interes o el mime type.
En este caso, otra de las extensiones que permite cargar además de las nombradas anteriormente es .phar
, por lo que cargamos un archivo el cual nos permita ejecutar comandos.
Vemos que una vez creado el proyecto, se lista en la tabla junto al formulario.
Si accedemos al enlace del documento, logramos acceder a nuestro script.
Nos ponemos en escucha con netcat por el puerto elegido, en este caso el 443.
Nos enviamos una reverse shell.
Codificamos el &
como %26
Ganamos acceso al sistema.
Hacemos el tratamiento de la tty para tener una terminal más interactiva:
script /dev/null -c bash
CTRL + Z
stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=bash
stty rows <rows> columns <columns>
Si miramos el archivo de conexión a la base de datos db.php
vemos la contraseña del usuario scott
y en el sistema existe un usuario con ese nombre, por lo que podemos probar si existe reutilización de contraseña.
Efectivamente, la contraseña es valida.
Si realizamos una enumeración básica, vemos que podemos ejecutar el binario tar
como el usuario kobe.
Nos movemos al usuario kobe de la siguiente manera:
Referencia: Tar | GTFOBins
Leemos el flag de user.
Si realizamos nuevamente una enumeración, vemos que podemos ejecutar con sudo el binario systemctl
, para lo cual abusaremos de este creando un servicio falso que asigne permisos suid a el binario /bin/bash
.
De esta forma, logramos escalar privilegios.
Referencia: systemctl | GTFOBins
Por ultimo, leemos el flag de root.
De esta forma, llegamos al final de la máquina El Cliente.
Si te gustó este CTF, te inivito a que lo compartas.
Si aun no eres parte de nuestra comunidad, te dejo los enlaces a la web The Hackers Labs y a el servidor de Discord.
Gracias por tu lectura!
Happy Hacking!