Uvalde 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-05-18 03:11 EDT
Nmap scan report for 192.168.5.23
Host is up (0.0013s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rw-r--r-- 1 1000 1000 5154 Jan 28 2023 output
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ::ffff:192.168.5.4
| 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 3
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
| ssh-hostkey:
| 3072 3a:09:a4:da:d7:db:99:ee:a5:51:05:e9:af:e7:08:90 (RSA)
| 256 cb:42:6a:be:22:13:2c:f2:57:f9:80:d1:f7:fb:88:5c (ECDSA)
|_ 256 44:3c:b4:0f:aa:c3:94:fa:23:15:19:e3:e5:18:56:94 (ED25519)
80/tcp open http Apache httpd 2.4.54 ((Debian))
|_http-title: Agency - Start Bootstrap Theme
|_http-server-header: Apache/2.4.54 (Debian)
MAC Address: 08:00:27:B4:40:7B (PCS Systemtechnik/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.82 secondsVeremos un puerto FTP y un puerto 80, si entramos donde se aloja una pagina web en el puerto 80 veremos una pagina web normal y corriente sin nada interesante, vamos a ver si podemos acceder al FTP de forma anonima.
Veremos que si nos deja y si listamos veremos lo siguiente:
Vamos a descargarnos dicho archivo a ver que continene:
Una vez descargado, vamos a leerlo:
Vemos que es un log del sistema, pero con esto ya estamos identificando un usuario llamado matthew, aunque de momento no veremos nada mas interesante, vamos a realizar un poco de fuzzing a ver que encontramos.
Gobuster
Info:
Veremos varias cosas interesantes, entre ellas este archivo llamado create_account.php, vamos a entrar dentro de dicho archivo a ver que nos encontramos.
Veremos que nos aparecera una campo en el que tendremos que ingresar nuestro nombre, por lo que vamos a poner test, una vez echo esto veremos lo siguiente en la pagina:
Y en la URL veremos esto otro:
Vemos que se nos genera una cadena codificada en Base64, vamos a decodificarla de esta forma:
Info:
Vemos que se ingresa el usuario que nosotros metemos y que despues se genera una contraseña por defecto que te genera la pagina web, por lo que podemos deducir que el usuario matthew puede tener dicha contraseña por defecto que te da la web siguiendo esta estructura:
Tambien vemos que el output esta en el 2023-01-28 por lo que seguramente el año de la cuenta de la password sea con dicho año, vamos a ponarnos un script que nos genere dicha password con los numeros aleatorios, pero con esa estructura y con ese año.
generate_dic.py
Ahora si ejecutamos esto:
Veremos que nos ha generado el diccionario de forma correcta, por lo que vamos a realizar fuerza bruta en el archivo de login.php mediante hydra.
Escalate user matthew
Hydra
Info:
Veremos que hemos obtenido las credenciales de dicho usuario, ahora si las probamos en el login.php, veremos que si nos deja, pero no veremos gran cosa, por lo que vamos a probarlas por SSH a ver si funcionan.
SSH
Metemos como contraseña matthew2023@1554 y veremos que estamos dentro, por lo que leeremos la flag del usuario.
user.txt
Escalate Privileges
SI hacemos sudo -l veremos lo siguiente:
Veremos que podremos ejecutar bash junto con el script superhack como el usuario root, por lo que vamos a investigar dicho script.
Si leemos el script, veremos lo siguiente:
Pero no veremos nada interesante, ahora si listamos la carpeta /opt veremos esto:
Vemos que el archivo esta dentro del /opt con estos permisos:
Por lo que podremos hacer una cosa con dicho archivo:
Lo guardamos y le establecemos permisos de ejecuccion.
Ahora si lo ejecutamos de esta forma:
Info:
Veremos que seremos root por lo que leeremos la flag de root.
root.txt
Last updated