Hundred HackMyVM (Intermediate - Linux)
Escaneo de puertos
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>nmap -sCV -p<PORTS> <IP>Info:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-04-08 10:55 EDT
Nmap scan report for 192.168.28.16
Host is up (0.00062s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| -rwxrwxrwx 1 0 0 435 Aug 02 2021 id_rsa [NSE: writeable]
| -rwxrwxrwx 1 1000 1000 1679 Aug 02 2021 id_rsa.pem [NSE: writeable]
| -rwxrwxrwx 1 1000 1000 451 Aug 02 2021 id_rsa.pub [NSE: writeable]
|_-rwxrwxrwx 1 0 0 187 Aug 02 2021 users.txt [NSE: writeable]
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ::ffff:192.168.28.5
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 2
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
| 2048 ef:28:1f:2a:1a:56:49:9d:77:88:4f:c4:74:56:0f:5c (RSA)
| 256 1d:8d:a0:2e:e9:a3:2d:a1:4d:ec:07:41:75:ce:47:0e (ECDSA)
|_ 256 06:80:3b:fc:c5:f7:7d:c5:58:26:83:c4:f7:7e:a3:d9 (ED25519)
80/tcp open http nginx 1.14.2
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: nginx/1.14.2
MAC Address: 08:00:27:14:0C:94 (Oracle VirtualBox virtual NIC)
Service Info: OSs: Unix, 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.32 secondsVeremos que hay un FTP si intentamos entrar como anonimo, veremos que nos deja y veremos lo siguiente:
Info:
Veremos varias cosas interesantes, entre ellas que hay una clave PEM pero no sabemos de que usuario puede ser, por lo que nos vamos a descargar los siguiente archivos.
Pero vemos que tenemos una lista de usuarios:
Ahora si leemos la id_rsa veremos lo siguiente:
Parece que es un trolleo por lo que es falso, pero si leemos el siguiente:
id_rsa.pem
Vemos que este si parece que sirve.
Ahora vamos a entrar a la pagina web que esta alojada en el puerto 80, que si entramos veremos simplemente una imagen, pero si inspeccionamos la pagina veremos lo siguiente:
Vemos que en el codigo de CSS hay un parametro que no existe lo que parece ser una contraseña o algo encriptado:
Despues vemos que hay un directorio llamado l4nr3n pero no existe, pero si probamos como ruta h4ckb1tu5.enc veremos que se nos descarga dicho archivo:
Si lo intentamos leer veremos que esta encriptado, por lo que vamos a probar a desencriptarlo de la siguiente forma:
Vamos a probar a descifrarlo con la clave privada que obtuvimos .pem, esto nos lo decodificara de forma correcta y veremos lo siguiente:
Vemos que puede ser un directorio, si probamos a meterlo veremos lo siguiente:
Veremos esto:
Vemos que no hay nada interesante, por lo que vamos a realizar un poco de fuzzing.
Gobuster
Info:
Vemos que nos descubrio el archivo id_rsa que este si puede ser el real, por lo que nos lo vamos a descaragar:
Ahora si lo leemos veremos que si es un id_rsa por lo que le pondremos los permisos necesarios.
Ahora probaremos a conectarnos con un usuario que nos llamo bastante la atencion en la lista de users.txt llamado hmv:
Info:
Nos pedira que ingresemos la contraseña de la clave PEM pero no la tendremos, lo unico que tenemos es la imagen de la pagina web, vamos a realizarle esteganografía con la siguiente herramienta:
Escalate user hmv
stegseek
Vamos a pasarle como diccionario de palabras el archivo users.txt que obtuvimos mediante el FTP y veremos lo siguiente:
Veremos que ha funcionado y obtendremos el archivo llamado logo.jpg.out y si lo leemos veremos lo siguiente:
Info:
Vamos a probar dicha palabra si fuera la contraseña de la clave PEM.
SSH
Metemos como contraseña d4t4s3c#1 y veremos que estamos dentro.
Info:
Vamos a leer la flag del usuario.
user.txt
Escalate Privileges
Si listamos los permisos del archivo shadow:
Info:
Vemos que podemos editar dicho archivo, por lo que haremos lo siguiente:
Primero en nuestro host cifrariamos una contraseña:
Info:
Y con dicha contraseña cifrada, lo montaremos de tal forma:
Echo esto, probaremos hacer lo siguiente:
Metemos como contraseña 1234 y veremos que funciona.
Info:
Por lo que leeremos la flag de root.
root.txt
Last updated