Este artículo es digno del blog Seguridad Apple, y útil para los que cuando haces las auditorías de red también están formados en el Hacking de macOS/OX y no solo de redes Windows. Hoy el artículo habla de una herramienta que puede ser utilizada en campañas de concienciación para empleados, con el objetivo de ver qué empleados caen en la tentación de ejecutar las macros de documentos que llegan de fuentes de no confianza o, por qué no, de fuentes de confianza suplantadas.
Figura 1: Hacking macOS / OSX con macros de Office para Mac y AppleScript |
En El lado del mal ya hemos hablado de herramientas que pueden ayudar en las campañas de concienciación de las empresas como Weeman o Mercure, las cuales, además, son Open Source y hoy toca de otra similar para macOS/OSX. La herramienta MacPhish, que está escrita en Python por Paulino Calderón, permite generar payloads para Office for Mac. Esta herramienta puede descargarse desde su Github.
Figura 2: MacPhis en GitHub |
La herramienta proporciona diferentes vectores de ataque para obtener ciertos privilegios, accesos o credenciales de una máquina que ejecuta Office for Mac y dónde el target es un empleado de una organización. Los vectores son: beacon, creds, meterpreter y meterpreter-grant.
Figura 3: Ayuda de MacPhish |
El primer método que hablaremos es el de creds. Este método permite generar un Applescript directamente, para el caso en el que se necesite ejecutarlo directamente en una shell. La instrucción para este método es la siguiente:
macphish.py –lh [host a la escucha] –lp [puerto a la escucha] –a creds.
Figura 4: Parte del payload para robar las credenciales en AppleScript |
En el siguiente video, el autor muestra como el fichero generado con el script en la macro solicita al usuario sus credenciales y las envía vía HTTP.
El segundo método es el beacon o señal baliza. Este método permite conocer cuando una máquina está viva o levantada. En otras palabras, si lo metemos como macro en un .doc generado para Office for Mac, el código nos proporcionará una señal al hostque hayamos configurado. Para generar el código debemos ejecutar la siguiente instrucción:
macphish.py –lh [host dónde recibiremos la señal]
En la siguiente imagen, podemos ver el código generado y que debemos utilizar como macro. Hay que fijarse que utiliza curl por defecto, pero podría cambiarse para utilizar, por ejemplo, wget u otros.
Figura 6: Apple script para generar la señal |
Otro método, quizá aún más interesante que los anteriores, es el del meterpreter. Es decir, la posibilidad de lanzar un meterpreter y poder ejecutar código en la máquina dónde se abre el documento ofimático. La forma más sencilla para llevar a cabo esto es utilizar la siguiente instrucción:
macphish.py –lh [host a la escucha] –lp [puerto a la escucha] –p [payload a ejecutar] -a meterpreter
Otra variante de este método es el conocido como meterpreter-grant, el cual consiste en generar un meterpreter que será ejecutado al ejecutar la macro y que invoca a GrantAccessToMultipleFiles(), para ello se puede ejecutar la siguiente instrucción:
macphish.py –lh [host a la escucha] –lp [puerto a la escucha] –p [payload] –a meterpreter-grant
Para ejemplificar este hecho, podemos lanzar la siguiente instrucción macphish.py –lh [host] –lp [puerto] –p python/meterpreter/reverse_https –a meterpreter. Se obtendrá algo similar a lo que vemos en la siguiente imagen.
Figura 7: Ejecución de meterpreter vía AppleScript |
En el video puede mostrarse un ejemplo de utilización de payload para lograr acceso a la máquina, tras la ejecución de la macro. Es bastante similar a la utilización de esta técnica en máquinas Windows.
Sería interesante analizar los resultados de los ficheros ofimáticos con el objetivo de ver el ratio de detección que tendríamos en nuestra prueba de concienciación. Quizá el menos intrusivo fuera el método beacon, por lo que podría ser más fácil de utilizar en una prueba de concienciación. Sin duda, una herramienta interesante para tener en los proyectos de Ethical Hacking y para ampliar el arsenal de técnicas y herramientas de Hacking macOS/OSX.