Fecha de lanzamiento | 28 Abr 2018 |
Estado | Retirada |
Dificultad | Easy |
Plataforma | Solaris |
IP | 10.10.10.76 |
Información de la máquina
RECONOCIMIENTO
Realizamos un escaneo de puertos a la máquina víctima, y observamos que existen numerosos puertos abiertos.
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn -oG allPorts 10.10.10.76 nmap -sCV -p79,111,515,6787,22022 -oN targeted 10.10.10.76
Que nos llame la atención, vemos que tenemos finger expuesto así como el servicio SSH por un puerto no común.
Finger
El servicio finger es un protocolo que proporciona información de los usuarios de una máquina, estén o no conectados en el momento de acceder al servicio.
Haciendo uso del comando directamente, podemos ver cual es el output normal si comprobamos un usuario que no exista.
Existe una herramienta en el lenguaje perl
que vamos a utilizar para realizar un ataque de diccionario usando una lista de usuarios comunes, para ver cuales existen en la máquina víctima. Se puede descargar desde el siguiente enlace: link.
Vamos a correrla con un diccionario de SecLists y vamos a ver si nos reporta algún usuario conectado.
perl finger-user-enum.pl -U /usr/share/seclists/Usernames/Names/names.txt -t 10.10.10.76
La salida del comando es bastante fea y desordenada, pero podemos observar 3 usuarios que se distinguen del resto, teniendo la palabra ssh y una IP asignada a la sesión: root, sammy, sunny.
EXPLOTACION
SSH
Teniendo el servicio ssh expuesto, vamos a descartar de momento al usuario ROOT, y vamos a realizar pruebas con estos usuarios hallados y con contraseñas simples como admin, password, root, el nombre de la máquina (sunday), etc…
Existe una combinación correcta, que se trata de usar el nombre de la máquina como contraseña para el usuario sunny –> sunny:sunday
Si hacemos una enumeración de la máquina, observamos que existe un directorio denomindado backup
, donde encontramos lo que parece ser un archivo de backup del shadow de la máquina. Tenemos dos hashes, del cual uno ya conocemos la contraseña en texto claro pero vamos a intentar crackear el otro para poder pivotar de usuario. Nos traemos a nuestra máquina local (un copia y pega valdría) el backup y el /etc/passwd
y mediante el comando unshadow
vamos a crear un archivo crackeable por hashcat
.
unshadow passwd shadow.backup > unshadow.hashes hashcat unshadow.hashes /usr/share/wordlists/rockyou.txt
Ya tenemos la contraseña del usuario sammy. Vamos a pivotar a ese usuario desde la sesión de ssh que tenemos activa.
Ya tenemos acceso como el usuario Sammy y podemos ver la flag correspondiente al usuario.
ESCALADA DE PRIVILEGIOS
No se si fue porque alguien había modificado ya el archivo sudoers para escalar privilegios en esta máquina o que realmente la escalada de privilegios es así de facil, pero haciendo un simple sudo -l
me encontré (ALL) ALL.
Por ello, con un simple sudo su
y aportando la contraseña de nuestro usuario, ya somos ROOT en la máquina víctima y podemos leer ambas flags.