Post

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

web.png

Explorando la página podemos encontrar un potencial usuario, notch.

user.png

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.

jar.png

💣 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.

blockycore.png

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.

ssh.png

Una vez que hemos accedido a la máquina, podemos obtener la flag.

flag.png

🔐 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.

sudo.png

Una vez que tenemos acceso como root, podemos obtener la flag.

root-flag.png

This post is licensed under CC BY 4.0 by the author.