Blocky
Blocky es bastante simple en general, y se basó en una máquina del mundo real. Demuestra los riesgos de las malas prácticas de contraseñas, así como la exposición de archivos internos en un sistema de cara al público. Además de esto, expone un vector de ataque potencial masivo: Minecraft. Decenas de miles de servidores existen que son de acceso público.
🔍 ENUMERACIÓN
Comenzamos la enumeración de la máquina realizando un nmap para descubrir todos los puertos abiertos.
1
nmap -p- --open -sS --min-rate 5000 -n -vvv -Pn 10.129.159.169 -oG allPorts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Nmap scan report for 10.129.159.169
Host is up, received user-set (0.046s latency).
Scanned at 2023-11-16 16:13:41 CET for 26s
Not shown: 65530 filtered tcp ports (no-response), 1 closed tcp port (reset)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE REASON
21/tcp open ftp syn-ack ttl 63
22/tcp open ssh syn-ack ttl 63
80/tcp open http syn-ack ttl 63
25565/tcp open minecraft syn-ack ttl 63
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 26.45 seconds
Raw packets sent: 131083 (5.768MB) | Rcvd: 23 (1.008KB)
Una vez que conocemos los puertos abiertos de la máquina, procedemos a hacer un examen más exhaustivo de los puertos para conocer la versión y servicio.
1
nmap -p21,22,80,25565 -sCV 10.129.159.169 -oN targeted
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Nmap scan report for 10.129.159.169
Host is up (0.11s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp?
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 d6:2b:99:b4:d5:e7:53:ce:2b:fc:b5:d7:9d:79:fb:a2 (RSA)
| 256 5d:7f:38:95:70:c9:be:ac:67:a0:1e:86:e7:97:84:03 (ECDSA)
|_ 256 09:d5:c2:04:95:1a:90:ef:87:56:25:97:df:83:70:67 (ED25519)
80/tcp open http Apache httpd 2.4.18
|_http-title: Did not follow redirect to http://blocky.htb
|_http-server-header: Apache/2.4.18 (Ubuntu)
25565/tcp open minecraft Minecraft 1.11.2 (Protocol: 127, Message: A Minecraft Server, Users: 0/20)
Service Info: Host: 127.0.1.1; 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 240.34 seconds
Puerto 80 - Web
Explorando la página podemos encontrar un potencial usuario, notch.
Vamos a realizar una enumeración de directorios a ver si encontramos algo interesante. Para ello vamos a utilizar la herramienta wfuzz.
1
wfuzz -c -t 200 -u http://blocky.htb/FUZZ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt --hc=404
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer *
********************************************************
Target: http://blocky.htb/FUZZ
Total requests: 220560
=====================================================================
ID Response Lines Word Chars Payload
=====================================================================
000000241: 301 9 L 28 W 313 Ch "wp-content"
000000519: 301 9 L 28 W 310 Ch "plugins"
000000014: 200 313 L 3592 W 52224 Ch "http://blocky.htb/"
000000013: 200 313 L 3592 W 52224 Ch "#"
000000012: 200 313 L 3592 W 52224 Ch "# on at least 2 different hosts"
000000011: 200 313 L 3592 W 52224 Ch "# Priority ordered case-sensitive list, where entri
es were found"
000000010: 200 313 L 3592 W 52224 Ch "#"
000000009: 200 313 L 3592 W 52224 Ch "# Suite 300, San Francisco, California, 94105, USA.
"
000000006: 200 313 L 3592 W 52224 Ch "# Attribution-Share Alike 3.0 License. To view a co
py of this"
000000008: 200 313 L 3592 W 52224 Ch "# or send a letter to Creative Commons, 171 Second
Street,"
000000005: 200 313 L 3592 W 52224 Ch "# This work is licensed under the Creative Commons"
000000002: 200 313 L 3592 W 52224 Ch "#"
000000004: 200 313 L 3592 W 52224 Ch "#"
000000786: 301 9 L 28 W 314 Ch "wp-includes"
000001073: 301 9 L 28 W 313 Ch "javascript"
000000001: 200 313 L 3592 W 52224 Ch "# directory-list-2.3-medium.txt"
000000007: 200 313 L 3592 W 52224 Ch "# license, visit http://creativecommons.org/license
s/by-sa/3.0/"
000000003: 200 313 L 3592 W 52224 Ch "# Copyright 2007 James Fisher"
000007180: 301 9 L 28 W 311 Ch "wp-admin"
000010825: 301 9 L 28 W 313 Ch "phpmyadmin"
000000190: 301 9 L 28 W 307 Ch "wiki"
000095524: 403 11 L 32 W 298 Ch "server-status"
000045240: 200 313 L 3592 W 52224 Ch "http://blocky.htb/"
Total time: 141.6590
Processed Requests: 220560
Filtered Requests: 220537
Requests/sec.: 1556.977
Vemos un directorio plugins en el que si accedemos, podemos encontrar dos archivos .jar. Los descargamos para analizarlos.
💣 EXPLOTACIÓN
Para poder analizar los archivos, usaremos una utilidad llamada jd-gui, la cual podemos instalar mediante el siguiente comando.
1
sudo apt intall jd-gui
Una vez instalada, la ejecutamos y abrimos el archivo BlockyCore.jar. Analizando el archivo podemos encontrar una contraseña en texto plano.
Como anteriormente obtuvimos el posible usuario notch, vamos a probar a acceder a él a través de ssh, ya que está habilitado en la máquina.
Una vez que hemos accedido a la máquina, podemos obtener la flag.
🔐 ESCALADA DE PRIVILEGIOS
Para la escalada de privilegios, si ejecutamos el comando id, observamos que notch pertenece al grupo sudo, y como sabemos la contraseña de notch podemos obtener acceso como root.
Una vez que tenemos acceso como root, podemos obtener la flag.








