AppleScript es un lenguaje de programación desarrollado por Apple para automatizar tareas en macOS y en aplicaciones de Apple (y compatibles de terceros). Con AppleScript, los usuarios pueden crear scripts para automatizar tareas comunes como abrir aplicaciones, enviar correos electrónicos o modificar documentos de texto. Y también le puedes sacar partido para hacer algo de macOS Hacking.
Lo que vamos a ver hoy difiere un poco del trabajo que hicimos con AppScrapping iMessages, donde lo que usamos es un modelo para APIficar al app de iMessages para poder utilizarla desde scripts de pentesting, como por ejemplo para saber si un número de teléfono estaba asociado a una cuenta de iMessages o no.
Figura 1: macOS Hacking - Cómo automatizar el envío de iMessages con AppleScript
Imagen Dall-e 2 "happy hacker in Van Gogh style"
Imagen Dall-e 2 "happy hacker in Van Gogh style"
Lo que vamos a ver hoy difiere un poco del trabajo que hicimos con AppScrapping iMessages, donde lo que usamos es un modelo para APIficar al app de iMessages para poder utilizarla desde scripts de pentesting, como por ejemplo para saber si un número de teléfono estaba asociado a una cuenta de iMessages o no.
En el ejemplo de hoy, para interactuar con las distintas partes del sistema y las aplicaciones existen los llamados diccionarios. Los diccionarios son documentos especiales que contienen información sobre la sintaxis, los comandos y los objetos de una aplicación específica. Al utilizar estos diccionarios en conjunto con el editor de scripts de AppleScript, los desarrolladores pueden obtener información detallada sobre cómo interactuar con una aplicación en particular mediante scripts.
Figura 3: Libro de macOS Hacking en 0xWord |
Los diccionarios de las aplicaciones son una herramienta muy valiosa para los desarrolladores ya que les proporciona información sobre los comandos y objetos disponibles para una aplicación específica. Esto es especialmente útil para aquellos que no están familiarizados con la estructura interna de una aplicación o que buscan documentación detallada sobre cómo utilizar una aplicación con AppleScript.
Figura 4: Algunos diccionarios posibles en las aplicaciones instaladas en macOS
- Los comandos: son acciones que se pueden realizar en una aplicación, como abrir una ventana o enviar un mensaje. Los comandos (se indican con una C dentro de un círculo azul) se pueden enviar a una aplicación mediante la sintaxis de "tell" de AppleScript.
- Las clases: (se representan con una C dentro de un cuadrado morado) son tipos de objetos en una aplicación, como una ventana o un mensaje. Las clases proporcionan información sobre los objetos con los que se puede trabajar y las propiedades y comandos disponibles para esos objetos.
- Las propiedades: (aparecen como una P dentro de un cuadrado morado) son características o valores de un objeto, como el título de una ventana o el contenido de un mensaje. Las propiedades se pueden leer y, en algunos casos, modificar.
- Los elementos: (una E dentro de un cuadrado amarillo) son objetos individuales dentro de una clase, como una ventana específica o un mensaje específico. Los elementos se pueden seleccionar y trabajar mediante AppleScript.
Automatización de envío de iMessages con AppleScript
El diccionario de la aplicación de Mensajes de Apple para enviar iMessages proporciona información sobre la sintaxis, los comandos y los objetos disponibles para trabajar con la aplicación de Mensajes en AppleScript. Con este diccionario, los desarrolladores pueden automatizar tareas como enviar y recibir mensajes, gestionar chats y contactos, y realizar otras acciones en la aplicación de Mensajes.
Figura 5: Diccionario de la aplicación iMessage (que se usa también en iOS)
Para automatizar el envío de un mensaje a un usuario en particular con AppleScript, se podrá usar el comando "send" del objeto "message" del diccionario de la aplicación de Mensajes. El código sería algo similar a esto:
set messageBody to "Hola, ¿cómo estás?" set recipient to "+1234567890" tell application "Messages" set theBuddy to buddy recipient send messageBody to theBuddy end tellEn este ejemplo, se establece el texto del mensaje como "Hola, ¿cómo estás?" y el destinatario como un número de teléfono (también podría ser una cuenta de email registrada). Luego, el script utiliza el comando "tell" para especificar que se está trabajando con la aplicación de Mensajes. Dentro del bloque "tell", se establece una variable para el destinatario del mensaje utilizando el comando "buddy", y, por último, se utiliza el comando "send" para enviar el mensaje.
Figura 6: Libro de Hacking iOS:iPhone & iPad (2ª Edición) en 0xWord de Chema Alonso, Ioseba Palop, Pablo González y Alejandro Ramos entre otros. |
Integración con Python
Como ocurre con otros muchos proyectos, es posible trabajar conjuntamente con AppleScripts y Python. Para ello existen librerías como py-applescript o applescript.py que ayudan a realizar esta integración de manera sencilla. El siguiente ejemplo muestra el mismo código anterior pero adaptado a Python:
Figura 7: Código en Python para usar AppleScript en iMessages
Antes de su ejecución se debe instalar la librería applescript.py haciendo uso del comando pip:
- pip install applescript.
Figura 8: Libro de Python para Pentesters 2ª Edición en 0xWord
por Daniel Echeverri Montoya a.k.a. Adastra
Saludos,
Autor: Álvaro Núñez-Romero, investigador en el equipo de Ideas Locas. Autor del libro "Arduino para Hackers (& Makers): PoCs and Hacks Just for Fun" y del VBOOK de "Arduino para Hackers (& Makers): PoCs and Hacks Just for Fun"
No hay comentarios:
Publicar un comentario