Skip to main content
HackTheBox machines – Napper WriteUp

HackTheBox machines – Napper WriteUp

Napper es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox basada en Windows

Napper es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad Difícil.

En este caso se trata de una máquina basada en el Sistema Operativo Windows.

 

Escaneo de puertos

Como de costumbre, agregamos la IP de la máquina Napper 10.129.189.114 a /etc/hosts como napper.htb y comenzamos con el escaneo de puertos nmap.

Una vez descubiertos los puertos abiertos, lanzamos un escaneo más detallado sobre los mismos.

 

Enumeración

Accedemos al portal web en el puerto 80 y nos redirecciona al portal app.napper.htb

HackTheBox machines – Napper WriteUp

 

Revisamos el portal y vemos varios posts en el mismo que hablan de reversing y de diferentes configuraciones a aplicar sobre un IIS, encontramos uno interesante en el cual aparece un comando con lo que podrian ser unas credenciales

Vista esta parte, continuamos la enumeración y descubrimos un subdominio nuevo

 

Añadimos al fichero hosts el dominio internal.napper.htb y accedemos

HackTheBox machines – Napper WriteUp

 

Pero nos solicita unas credenciales, así que utilizamos las que vimos en el comando mencionado anteriormente.

HackTheBox machines – Napper WriteUp

 

En este portal vemos otro post, en el cual habla sobre el malware Naplistenner y vemos 3 enlaces en el mismo

https://www.elastic.co/security-labs/naplistener-more-bad-dreams-from-the-developers-of-siestagraph

https://malpedia.caad.fkie.fraunhofer.de/details/win.naplistener

https://www.darkreading.com/threat-intelligence/custom-naplistener-malware-network-based-detection-sleep

 

En los enlaces anteriores vemos una poc de como funciona este malware, iocs y diferentes datos interesantes que nos ayudarán en los siguientes pasos.

Así que revisando los mismos vemos que utiliza la URI

Y le pasa el siguiente parámetro

Por lo que vamos a hacer una prueba para verificar si realmente puede ser un punto de entrada a la máquina y vemos que el curl nos devuelve un 200

Por lo que siguiendo la poc nos guardamos el script en python que utiliza

 

Vista esta parte, el siguiente paso, será crear una revshell que nos permita acceder a la máquina, así que con alguna que otra búsqueda en google creamos el siguiente fichero

 

Compilaremos el mismo con mono-csc

Y obtendremos el exe resultante en base64

Introducimos como payload el b64 sacado del anterior comando en nuestro exploit y ejecutaremos

Y obtendremos una revshell con el usuario ruben

 

Obteniendo la flag de user

Vamos al escritorio del usuario y obtenemos la primera flag

 

Escalado de privilegios

Continuando con los post anteriores, recordamos que hablaban de elastic, así que vamos a ver que puertos tiene abiertos

 

Y vemos el puerto 9200 utilizado por esta aplicación, así que vamos a buscar los índices utilizados por la misma

Y, si buscamos en los mismos, obtendremos un usuario y una password

 

Seguimos con la enumeración en la máquina y encontramos en el directorio del portal de internal un post que no estaba visible desde la web

En el mismo nos indica que la password del usuario backup se encuentra almacenada en la base de datos local del elastic, por lo que será donde tendremos que buscar, ya que la password vista antes no es válida para el usuario backup.

Seguimos revisando el directorio del portal de internal y encontramos un fichero .env y un ejecutable

Revisamos el contenido del fichero env

Y descargamos el exe mediante un smb levantado en nuestro kali para su posterior análisis.

Viendo las variables de entorno que carga, esta claro, que tenemos que tirar por ahí, por lo que vamos a levantar chisel para poder acceder al mismo.

Levantamos el servidor en nuestro kali

Ejecutamos el cliente en la máquina

Y accedemos al mismo a través del navegador

Primer acceso al elastic

 

Como no tenemos una gui como tal, vamos a instalar en el navegador el plugin elasticvue y recargamos

Acceso a la GUI con elasticvue

 

Accedemos con las credenciales obtenidas en los índices y vemos la página principal del elastic

Panel principal de elastic

 

Revisamos en detalle el portal y vemos dos índices

Índices en elastic

 

seed debe de ser la seed utilizada y user-00001 debe de ser el texto utilizado para el cifrado

Analizando los índices

 

Por el momento no podemos hacer mucho más aquí, así que vamos a analizar el binario con ghidra.

Se trata de un binario en golang, así que instalamos el siguiente plugin en ghidra para facilitarnos un poco el trabajo.

 

Siguiendo el código vemos que para generar la clave utiliza la seed como un número aleatorio, y que cada byte de la clave lo genera como un número aleatorio + 1

Analizando el binario con ghidra

 

Vemos también el comando utilizado

Analizando el binario con ghidra

 

Y el cifrado lo realiza en base64 y posteriormente en AES CFB

Descubriendo como se genera la clave

 

Análisis de la función encrypt

 

Siguiendo los resultados del análisis realizado necesitamos descifrar los datos en el elastic utilizando la última password generada, debido a que esta se regenera cada minuto.

Por lo que después de tiempo pérdido, varias búsquedas en google y alguna que otra ayuda por discord, utilizo el siguiente script para realizar este descifrado

 

Ejecutamos

Y con la clave lanzaremos RunAS para escalar al usuario backup. Importante destacar que el UAC está activado por lo que es necesario añadir el parámetro –bypass-uac para poder llevar a cabo el ataque

Y obtenemos una revshell con el usuario backup

Revisamos permisos del usuario y vemos que tiene prácticamente de todo

Así que hacemos una copia de sam y system

Lo descargamos por smb

Y sacamos los hashes

 

Obteniendo la flag de root

Además, como el usuario backup es administrador, vamos al escritorio de este y cogemos la flag

Y ya tenemos nuestra flag de root para completar esta máquina y conseguir nuestros puntos.

 

Si eres usuario de HackTheBox y te gustó mi writeup, por favor, dame respeto en el siguiente enlace

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *