Yadis
Yadis es una máquina fácil de la plataforma de VulNyx. El principio de la máquina se basa en “La enumeración es la clave”.
- Temas a tratar: Enumeración, Local Port Forwarding, Go, Redis.
- OS: Linux.
- IP victima: 192.168.166.133
Enumeración
Nmap
1 | sudo nmap -p- 192.168.166.133 -sSVC -T5 -Pn |
Samba
1 | smbclient -NL //192.168.166.133/ |
1 | smbclient -N //192.168.166.133/announcements |
Dentro de uno de los documentos encontramos un correo y una contraseña, también hacen mención a un chat interno.
Puerto 80/TCP (HTTP)
De este sitio solo hay nombres de usuario como información relevante y uno de ellos concuerda con el que venia en uno de los documentos:
Podemos suponer que los usuarios tienen lo correos de la siguiente manera:
Compromiso inicial via Redis 6379/TCP
Version de Redis no vulnerable pero existen otros métodos para tener acceso a la maquina, uno de ellos es por medio de SSH, si este servicio se encuentra con configuraciones no seguras Redis SSH
1 | # Se crea el id_rsa |
Mattermost
Dentro de la maquina encontramos información interesante en los puertos internos:
Si realizamos un curl en el puerto 8065 obtenemos un sitio web:
Si realizamos un local port forwarding con ssh para poder acceder obtenemos lo siguiente:
1 | ssh -L 8065:localhost:8065 -i id_rsa redis@192.168.166.133 |
No permite crear usuarios dentro de la plataforma.
Anteriormente creamos una lista de posibles usuarios, así que intentemos si uno de estos permite acceder a la plataforma con la contraseña por defecto que se menciona en el documento.
Credencial en el documento: 4bNyx5oft12E!
Accedimos bajo el usuario rodney.gleason@yadis.nyx. En el chat llamado Development, encontramos una contraseña, que si miramos la conversación del chat es del usuario developer de la maquina.
Privilege Scalation
Encontramos que este usuario tiene privilegios de ejecutar un binario llamado yaegi:
Investigando Yaegi, es un interprete de go, esto significa que es posible ejecutar una bash como root.
Investigando el como realizar esto encontramos el siguiente articulo Executing System Commands in Go:
No esta permitiendo importar una librería, así que tendremos que buscar otro método.
Revisando la documentación de Go, encontramos la siguiente librería “os”.
Esta librería permite realizar operaciones del sistema, como por ejemplo ejecutar una /bin/bash por medio de la función StartProcess:
1 | package main |







