Continuamos con nuestra serie de Metasploitable, en concreto con el servidor vsftpd que encontramos en la anterior entrega.
En el último post aprendimos como detectar la versión de los servicios que estaban corriendo en la máquina metasploitable y como usar metasploit para buscar y utilizar exploits ya configurados en la herramienta.
En este post vamos a realizar el mismo ataque pero de forma manual. Adelanto ya que es una backdoor muy fácil de explotar pero estamos empezando y lo mas importante es el proceso en si más que la vulnerabilidad.
Entendiendo la vulnerabilidad
Habíamos visto que el servicio que corría era un vsftp 2.3.4, de modo que lo primero que vamos a hacer es preguntar a nuestro querido amigo google
Bueno, pues parece que tenemos mucha información a simple vista. En el primer enlace, nuestros amigos de SecurityByDefault se hicieron eco de la noticia. Al parecer, alguien logró acceder al repositorio de código y sustituyó el codigo fuente original por uno que incluía una backdoor. No fué nada demasiado sofisticado, el atacante modificó el codigo para que, si el usuario introducido en el login acababa con :)
abriera un socket en el puerto 6200 enganchado a una shell y esperara conexión.
Comprobando la vulnerabilidad en metasploitable
Vamos a realizar la prueba. Lo primero que hacemos es lanzar un nmap al metasploitable para verificar que el puerto 6200 esta cerrado:
Ahora nos logamos con un usuario cuyo nombre acabe en :)
y dejamos la pass en blanco:
Vamos a verificar si efectivamente se nos ha abierto la puerta trasera:
Vaya, pues parece que si funciona. Abrimos una nueva terminal y lanzamos un netcat al puerto 6200 y ¡voilà! tenemos una shell con permisos de root:
Conclusiones
Ahora que sabemos como funciona el exploit podemos sacar varias conclusiones que con el simple uso de metasploit no podríamos sacar:
- En realidad, como hemos visto, no hay un escalado de privilegios ni nada similar de modo que, dependiendo de los permisos que tuviera el usuario con el que se ejecutara el servicio, así tendriamos los permisos en la shell.
- Al tener que realizarse una conexión a un puerto relativamente poco común (6200) este backdoor no sería efectivo en redes wan ya que los routers/firewall no permitirían el acceso (en la mayoria de los casos) a este nuevo puerto. En redes Lan su efectividad dependería de los accesos que tuvieran los usuarios al servidor a nivel de red.
- Segun he podido investigar, la versión backdoorizada del software se mantuvo online varios días, por lo que todas las personas que descargaron esa versión y la pusieron en producción estarían afectados. No obstante, el bug es del 2011, la mayoría deberían estar sustituidas por nuevas versiones.
- He aquí un ejemplo claro de la ventaja de publicar tu código fuente. El creador de software fue alertado por un tercero que, al revisar el código observó algo extraño. ¿Cuánto hubiera tardado el creador en descubrir el backdoor si el código solo lo tuviera él?
- Con esto aprendemos una valiosa lección: actualiza. Eso de «Si funciona no lo toques» es la excusa del vago o del poco profesional, al que le da miedo no poder volver a levantarlo. Actualiza, cuanto antes mejor.
En los próximos post veremos como seguir explotando el servidor ftp pero por otro medios, sin usar esta backdoor a la que ya le hemos extraido todo el jugo.
Bye, bye