Titulo: HackTheBox - Bounty Hunter |
Fecha: 13-09-2021 |
Descripcion: Enumeracion - XXE - Burp Suite - Enconder URL |
Hack The Box - Bounty Hacker Writeup
## Ping:
ping -c1 10.10.11.100
Mediante el comando ping vamos a trazar una ruta ICMP para ver si la maquina esta activa y ante que tipo de sistema operativo estamos
Podemos ver que la respuesta del ttl es 63 , el TTL en maquinas Linux es 64 y en maquinas Windows 128 , en este caso es 63 porque pasa por un nodo intermediario.
## Enumeracion :
Ahora vamos a proceder a ver que servicios tiene esta maquina abiertos para ello vamos a realizar una enumeracion de puertos:
Mediante el parametro --min-rate 5000 va a emitir paquetes no mas lento que 5000 paquetes por segundo
Mediante la herramienta WhatWeb vamos a proceder a inspeccionar si estamos ante algun gestor de contenido , ya que nos encontramos con el puerto 80 abierto que nos proporciona el servicio HTTP
Nos reporta poca cosa , asi que vamos a realizar un escaneo mediante la herramienta Nmap en busqueda de la version y aplicar scripts basicos para obtener mayor informacion
## Pagina Web:
Vamos a proceder abrir la pagina web y poder inspeccionarla
Podemos ver el codigo fuente que no nos proporciona mayor informacion , por lo que tendremos que aplicar Fuzzing en busqueda de directorios web activos
## Fuzzing Web:
Vamos aplicar Fuzzing mediante la herramienta Wfuzz
Nos reporta las siguientes rutas:
Estos directorios web el unico interesante es /resources que nos encontraremos antes una nota
Como no hemos encontrado nada interesante vamos aplicar fuzzing en busqueda de extension .php
Nos reporta 2 posibles ficheros php potenciales , que vamos a investigar
El primero /portal que nos redirigue a un fichero php llamado log_submit.php que sirve para reportar una vulnerabilidad
Si rellenamos el formulario y enviamos la solicitud podemos ver que funciona
Luego tenemos otro fichero php potencial llamado /db.php , que no sale nada en principio ya que trabajara con el portal anterior para registrar las vulnerabilidades reportadas
Podemos intentar realizar un curl sobre el fichero para obtener mas detalles del funcionamiento del mismo
## Burp Suite:
Vamos a proceder a usar la herramienta Burp Suite para obtener mas informacion de como se tramita los datos entre los dos ficheros PHP
Los datos se envia codificados en un metodo llamado "URL enconding" , si enviamos los datos obtenidos al "Repeater" podemos decodificarlos y ver el contenido
Podemos ver que los datos se tramitan en formato XML , aqui ya podemos estar pensando en realizar un ataque XXE
## Ataque XXE:
Una vulnerabilidad XXE . es una vulnerabilidad de entidad externas XML que afectan a los servicios que se basan en XML.
Una vulnerabilidad XXE se produce cuando el servicio que analiza o lee y procesa , los mensajes XML enviados por el cliente.
Podemos ver si es vulnerable , mediante los siguientes pasos
Tras analizarlo y probarlo podemos ver que es vulnerable a XXE , por lo que vamos aplicar ya "Wrapper" para inyecciones XXE y obtener ficheros , nos podemos ayudar de la siguiente informacion: https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/XXE%20Injection/Files/XXE%20PHP%20Wrapper.xml
Necesitaremos encoder la informacion , primero vamos a intentar obtener el fichero de los usuarios del sistema
Vamos a copiar el resultado hasheado y vamos a copiar en el apartado data de burp suite
Vamos a copiar el resultado que nos devulve el portal de vulnerabilidades y vamos a descifrarlo ya que viene cifrado
Podemos ver como nos muestra perfectamente el fichero /passwd , por lo que ahora vamos a intentar mirar que contiene el fichero db.php que se encuentra en el servidor apache
Volvemos hacer el mismo "Wrapper" cambiando el fichero que ahora nos interesa para buscar usuarios y contraseñas potenciales y entrar al sistema
Lo introducimos en la variable data en Burp Suite y decodeamos la informacion que nos devuelve
Ya podemos ver informacion potencialmente peligrosa , que nos proporciona un usuario y una contraseña , al principio inspeccionando la pagina web habia 3 comentarios y uno de ellos era de un usuario llamado "development" por lo que vamos a probar esta contraseña con dicho usuario
## Flag User.txt:
Si intentamos acceder al SSH mediante el usuario "development" y la contraseña potencial que tenemos podemos entrar dentro de la maquina y obtener el flag del usuario
## Escalada de Privilegios:
El usuario development no tiene permisos de Root , por lo que mediante el comando sudo -l , vamos a buscar permisos SUID , que nos permitan realizar funciones de usuario root siendo usuarios no privilegiados
Nos reporta un fichero escrito en Python que es un validor de Ticket , si procedemos abrir dicho script y entender su funcionamiento
Podemos ver que analiza un fichero en extension .md , que necesita una ciertas lineas necesarias para poder ejecutar la validacion del ticket
Hay que crear un ticket en formato .md y que nos proporcione una shell con permisos de Root
Ahora si procedemos a ejecutar el validador de ticket y le pasamos nuestro ticket malicioso vamos a obtener una shell como Root y ya podremos visualizar el flag del usuario Root
Ya tendriamos la Maquina Bounty Hunter Explotada , una maquina de una dificultad Facil!