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 seconds

Veremos 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