Hackthebox — Writeup SolidState No/MSF
Estamos en al recta final de la lista de OS Linux de TJnull at NetSec Focus , por ahora y en el proceso de aprendizaje se va creando un “mindset” de que tipo de acceso inicial y escalada de privilegio.
Para el acceso inicial se ejecuto previamente un exploit RCE , esto permitió crear un usuario, y con este usuario cambiar contraseña de los usuarios para listar sus bandejas de entrada y correos, en este proceso se obtuvo usuario y contraseña para una conexión ssh, la escalada de privilegio es una ejecución condicionada de una tarea programada y un archivo que tiene permisos de escritura para todos los usuarios, digamos que es una condición bidireccional en este escenario.
Después de ordenar los horarios para tener un poco más de tiempo continuamos con el equipo de preparación hacia el OSCP, solo recuerdo el mantra ”Disfruta el proceso”, y aplico esa frase en todos los aspectos, por ejemplo entrenamiento.
Identificación de puertos y servicios
Como es necesario, primero debemos identificar todos los puertos y servicios activos en el equipo “Solidstate”
nmap -sC -sV -p22,25,80,110,119,4555 --min-rate=4500 -oA solidstate.services -Pn 10.10.10.51
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4p1 Debian 10+deb9u1 (protocol 2.0)
| ssh-hostkey:
| 2048 77:00:84:f5:78:b9:c7:d3:54:cf:71:2e:0d:52:6d:8b (RSA)
| 256 78:b8:3a:f6:60:19:06:91:f5:53:92:1d:3f:48:ed:53 (ECDSA)
|_ 256 e4:45:e9:ed:07:4d:73:69:43:5a:12:70:9d:c4:af:76 (ED25519)
25/tcp open smtp JAMES smtpd 2.3.2
|_smtp-commands: solidstate Hello nmap.scanme.org (10.10.14.37 [10.10.14.37]),
80/tcp open http Apache httpd 2.4.25 ((Debian))
|_http-server-header: Apache/2.4.25 (Debian)
|_http-title: Home - Solid State Security
110/tcp open pop3 JAMES pop3d 2.3.2
119/tcp open nntp JAMES nntpd (posting ok)
4555/tcp open james-admin JAMES Remote Admin 2.3.2
Service Info: Host: solidstate; OS: Linux; CPE: cpe:/o:linux:linux_kernel
Enumeración
Analizando los servicios que estan activos, el primero que me llamó la atención fue “James Remote Admin 2.3.2”
El exploit crea un usuario a nivel del servicio
Se ejecuta el exploit y crea una cuenta
Una vez ejecutado el exploit procedemos a conectarnos con el usuario por defecto “root”
Listamos todos los usuarios
Para acceder a cada buzón es necesario conocer la contraseña o “reiniciarla”
setpassword [user] [new-password]
La forma seria la siguiente, el comando setpassword [user] [new-password], ahora, es hora de revisar si hay algo en cada uno de los buzones para continuar.
El pobre james, solo se dedicaba a mandar correo, no tiene nada en su bandeja
Thomas es el típico usuario que solo se conecta, no recibe ni envía correos (jajaj)
Bueno parece que aqui ya comienza lo interesante, James (jaimito) le envia un correo a John (Juancito)
Accedemos al buzon de Mindy y encontramos 2 mensajes, el mas importante es el segundo en el cual se identifican user & password
username: mindy
pass: P@55W0rd1!2@
Acceso Inicial
Con el usuario y contraseña identificados, se procedió a acceder al equipo
El acceso estaba restricto a la ejecución de ciertos comandos, por ejemplo whoami, id, hostname, ifconfig y otros.
Escalada de Privilegio
En este proceso, yo, al menos tengo un orden de ejecución y seguramente varia al de muchos, si estas leyendo este articulo, coméntame cual es tu path de enumeración para la escalada de privilegios :)
sudo -l
find / -perm -u=s -type f 2>/dev/null
debido a la restricion de la shell, enumerar de forma manual se complicaba
Una forma de escapar de rbash restricto es
ssh mindy@10.10.10.51 -t 'bash --noprofile'
Ahora ya podemos ejecutar algunos comandos, podes ver todas las técnicas en el siguiente enlace
Se identifico un archivo en python que tiene permiso de escritura para todos, vamos uniendo los puntos.
Confirmamos los permisos
Ahora a esperar que se ejecute la tarea
Conclusión
No es recomendable enviar credenciales de acceso vía correo electrónico, en todo caso la contraseña debe cambiarse en el primer acceso, se debe actualizar la versión del servicio de James para evitar ejecución de comando remotos a traves del servicio vulnerable, sobre la escalada de privilegio eliminar permisos de escritura para todos los usuarios sobre los archivos creados o ejecutados por el usuario root