Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
PackMyPayload — Un PoC que empaqueta cargas útiles en contenedores de salida para evadir la bandera Mark-of-the-Web y demostrar los riesgos asociados a los formatos de archivo contenedor. Soporta: ZIP, 7zip, PDF, ISO, IMG, CAB, VHD, VHDX | Kitploit
Herramientas/GitHubGitHub/mgeeky/packmypayload
Herramientas de PhishingSeguridad de ContenedoresFrameworks de ExploitsGeneración de PayloadsRed TeamingDesarrollo de Payloads
GitHubmgeeky/packmypayload

PackMyPayload

Un PoC que empaqueta cargas útiles en contenedores de salida para evadir la bandera Mark-of-the-Web y demostrar los riesgos asociados a los formatos de archivo contenedor. Soporta: ZIP, 7zip, PDF, ISO, IMG, CAB, VHD, VHDX

Ver Repositorio
1.2k171hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

PackMyPayload - Amenaza emergente de malware contenerizado

Ir a formatos compatibles

Esta herramienta toma un archivo o directorio como entrada y los incrusta en un archivo de salida que actúa como un archivo/contenedor. Puede servir como Prueba de Concepto para presentar el riesgo emergente de los formatos de archivo contenedor con malware incrustado, así como una ayuda para Operadores de Red Team profesionales para afinar sus maniobras de Acceso Inicial.

Actualmente se sabe que los Actores de Amenazas introducen de contrabando su malware archivado en varios formatos de archivo contenedor, por nombrar algunos:

  • 7zip
  • zip
  • ISO
  • IMG

Hacen eso para que sus cargas útiles pasen los escáneres de contenido de archivos, pero más importante aún para evitar tener la marca Mark-Of-The-Web en sus archivos. Hay varios motivos por los cuales los adversarios no quieren MOTW en sus archivos: Protected View en Microsoft Office siempre estuvo entre ellos.

Si proporcionan un archivo contenedor a sus víctimas, se podría eludir una base para deshabilitar las macros VBA en documentos de Office originados en Internet.

Antecedentes

El 7 de febrero, Microsoft anunció un cambio de configuración predeterminada para bloquear las macros VBA originadas de Internet. Este es un paso increíble hacia el endurecimiento de la configuración base de la estación de trabajo del usuario y el software cliente instalado en ella. Sin duda, tardío, pero un paso importante que afecta drásticamente de manera positiva las configuraciones típicas de instalación de Windows+Office.

El comportamiento implementado se explica por la diferenciación de documentos de Office con macros habilitadas basada en la bandera MOTW (Mark of the Web). Esa bandera actúa como una etiqueta de contaminado disponible para los clientes de software (navegadores, clientes de correo, archivadores de archivos, etc.) para marcar archivos que se originan en áreas no confiables como Internet.

Outflank arrojó más luz sobre MOTW, en 2020, al indicar áreas donde la bandera MOTW no se propaga uniformemente. Estas áreas sirven como brecha de defensa y son comúnmente abusadas por actores de amenazas desde hace años.

Su investigación reveló que algunos formatos de archivo contenedor – específicamente ISO, VHD/VHDX – no propagan la bandera de contaminación MOTW a los archivos internos al montarse o extraerse automáticamente. Además, Windows 8+ puede abrir estos formatos automáticamente con doble clic, convirtiéndolos en notorios portadores de infecciones, posiblemente devaluando MOTW en su función de medida de seguridad.

Demo - Cómo los Actores de Amenazas Evaden MOTW y Contrabandean Macros

Veamos cómo se ve la bandera Mark of the Web en la práctica:

1. Descargue un archivo normal usando su navegador

1.gif

Después de descargar un archivo, haga clic derecho sobre él y revise sus propiedades.

Verá un mensaje solicitando desbloquear el archivo, porque se origina de una zona no confiable:

motw

Esa información se almacena en el ADS (Flujo de Datos Alternativo) de NTFS llamado Zone.Identifier que se ve así:

zone-identifier

El ZoneId=3 cumple la función de marcar el archivo como contaminado.

2. Empaque ese archivo en ISO

Usando PackMyPayload.py coloque el archivo en un disco ISO Joliet fácilmente con un comando:

root@kitploit:~
PS> py PackMyPayload.py 7z2107-x64.exe 7z2107-x64.iso

2.gif

3. Sirva el archivo con un Servidor HTTP Simple, descargue, abra ISO, revise MOTW

Habiendo creado el archivo ISO, imite un servidor HTTP usando Python:

root@kitploit:~
PS> py -m http.server 80

y luego descargue el archivo ISO usando su navegador.

3.gif

Cuando revise las Propiedades de ese archivo ISO, verá que está marcado con la bandera MOTW.

marked

Sin embargo, ¡el archivo EXE instalador de 7zip interno no está marcado con MOTW!

not-marked


Fundamentos

Aprovechando la ocasión de que los ojos de la Industria están puestos en la valiente decisión de Microsoft de bloquear las macros VBA, nosotros, profesionales Investigadores de Seguridad que tomamos la máxima consideración en aumentar la resiliencia de las tecnologías del mundo contra su mal uso, queremos agregar la siguiente perspectiva sobre las TTPs actuales de los Actores de Amenazas:

Los Actores de Amenazas son muy conscientes del impacto que MOTW tiene en sus cargas útiles de phishing. Se han adaptado hace mucho tiempo y ahora están contrabandeando sus programas maliciosos dentro de contenedores. Entre los más comúnmente observados podemos destacar ISO, IMG, CAB.

Ahora publico esta herramienta para aumentar el impulso generado por la postura de Microsoft y ayudar a intensificar las discusiones sobre estas vías de evasión.

Se recomienda contener (y/o bloquear) los archivos que tengan las extensiones mencionadas anteriormente siempre que se originen de zonas no confiables y donde sea aplicable:

  • Proxies Web
  • Motores de escaneo de correo
  • Agentes de protección de endpoints - EDRs, XDRs, AVs
  • Formularios y funcionalidades de carga de archivos

La herramienta publicada permitirá, con suerte, que más Equipos Rojos simulen los riesgos discutidos y les ayude a identificar más fácilmente las brechas de detección dentro de las defensas de sus Socios.


Características

Este script ofrece los siguientes beneficios y ventajas:

  • Empaqueta un archivo o directorio de entrada en un contenedor de salida
  • Puede backdoorar contenedores existentes o crear nuevos.
  • Proporciona cifrado con contraseña para formatos compatibles

Formatos compatibles:

  • En el caso de ZIP, MOTW puede ser eliminado cuando se abusa de CVE-2022-41091. PackMyPayload por defecto marca los archivos ZIP internos como solo lectura a menos que se proporcione --zip-noreadonly.

Instalación

  • Clone este repositorio
  • Instale los requisitos:
root@kitploit:~
cmd> pip3 install -r requirements.txt

Ejemplo de uso

  1. Empaquete un directorio con archivos en ISO:
root@kitploit:~
PS> py PackMyPayload.py C:\my\dir malicious.iso -v

+      o     +              o   +      o     +              o
    +             o     +           +             o     +         +
    o  +           +        +           o  +           +          o
-_-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-_-_-_-_-_-_-_,------,      o
   :: PACK MY PAYLOAD (1.2.0)       -_-_-_-_-_-_-|   /\_/\
   for all your container cravings   -_-_-_-_-_-~|__( ^ .^)  +    +
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-''  ''
+      o         o   +       o       +      o         o   +       o
+      o            +      o    ~   Mariusz Banach / mgeeky    o
o      ~     +           ~          <mb [at] binary-offensive.com>
    o           +                         o           +           +

[.] Packaging input file to output .iso (iso)...
Burning files onto ISO:
    Adding file: //malicious.lnk
    Adding file: //malicious.docm
[INFO] [+] File packaged into ISO.
[INFO] Successfully packed input file.

[+] Generated file written to (size: 69632): malicious.iso
  1. Para empaquetar archivos en VHD/VHDX, se debe ejecutar este script en Windows desde un contexto de usuario elevado (por ejemplo, Administrador Local). Esto se debe a que DISKPART requiere acceso de Administrador a los objetos/espacio de nombres de dispositivos físicos. La mejor experiencia se obtiene ejecutando el script en Windows Terminal (wt) o ConEmu ya que admiten colores ANSI. De lo contrario, si la salida se ve mal, desactive esos colores con la bandera -N:
root@kitploit:~
PS> py PackMyPayload.py .\evil.lnk .\evil.vhd -v -N

+      o     +              o   +      o     +              o
    +             o     +           +             o     +         +
    o  +           +        +           o  +           +          o
-_-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-_-_-_-_-_-_-_,------,      o
   :: PACK MY PAYLOAD (1.2.0)       -_-_-_-_-_-_-|   /\_/\
   for all your container cravings   -_-_-_-_-_-~|__( ^ .^)  +    +
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-''  ''
+      o         o   +       o       +      o         o   +       o
+      o            +      o    ~   Mariusz Banach / mgeeky    o
o      ~     +           ~          <mb [at] binary-offensive.com>
    o           +                         o           +           +

[.] Packaging input file to output .vhd (vhd)...
[INFO] Drive letters currently occupied:
    X
    C
    Z
    D
[INFO] Will create VHD of size:    1024MB (Dynamic)
[INFO] Will assign VHD letter :    V:
[INFO] Will format VHD with   :    FAT32
[INFO] Creating VHD file...
[+] Created & mounted VHD file on V:\
[.] Packing files into created VHD...
[INFO] Packaged file:
[INFO]     evil.lnk => V:\
[.] Detaching VHD file...
[+] Detached VHD file from V:\
[INFO] [+] File packaged into VHD.
[INFO] Successfully packed input file.

[+] Generated file written to (size: 6311936): evil.vhd

Uso completo

root@kitploit:~
usage:
+      o     +              o   +      o     +              o
    +             o     +           +             o     +         +
    o  +           +        +           o  +           +          o
-_-^-^-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_,------,      o
   :: PACK MY PAYLOAD (1.3.0)       -_-_-_-_-_-_-|   /\_/\
   for all your container cravings   -_-_-_-_-_-~|__( ^ .^)  +    +
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-''  ''
+      o         o   +       o       +      o         o   +       o
+      o            +      o    ~   Mariusz Banach / mgeeky    o
o      ~     +           ~          <mb [at] binary-offensive.com>
    o           +                         o           +           +

Usage: PackMyPayload.py [options] <infile> <outfile>

options:
  -h, --help            show this help message and exit

Required arguments:
  infile                Input file/directory to be packaged into output archive/container
  outfile               Output file with extension pointing at output format

Options:
  -v, --verbose         Verbose mode.
  -d, --debug           Debug mode.
  -N, --nocolor         Dont use colors in text output.
  -i BACKDOOR, --backdoor BACKDOOR
                        Instead of generating blank new output container/archive, will backdoor existing input one.
  -n NAME, --filename NAME
                        Package input file into archive/container under this filename (may contain relative path).
  -p PASSWORD, --password PASSWORD
                        If output archive/container format supports password protection, use this password to protect
                        output file.
  --out-format {zip,7z,iso,img,cab,pdf,vhd,vhdx}
                        Explicitely define output format disregarding output file's extension. Can be one of
                        following: zip, 7z, iso, img, cab, pdf, vhd, vhdx
  -H HIDE, --hide HIDE  (Supported in ISO/IMG, ZIP) Set hidden attribute on file(s). Cannot be repeated, only comma-
                        separated. Example: --hide icon.ico,evil.exe . Supports wildcards: --hide icon?.*

ZIP specific options:
  --zip-noreadonly      DISABLE ZIP MOTW bypass that is used by default. By default, PackMyPayload marks Office files
                        as Read-Only making ZIP software unable to set MOTW flag on them when extracted. This option
                        disables that behavior.

VHD specific options:
  --vhd-size SIZE       VHD dynamic size in MB. Default: 1024
  --vhd-letter LETTER   Drive letter where to mount VHD drive. Default: will pick unused one at random.
  --vhd-filesystem FS   Filesystem to be used while formatting VHD. Default: FAT32. Supported: fat, fat32, ntfs

=====================================================

Supported container/archive formats:

        - zip
        - 7z
        - iso
        - img
        - cab
        - pdf
        - vhd
        - vhdx

=====================================================

Problemas conocidos

  • No se pueden crear directorios al copiar archivos en volúmenes montados VHD/VHDX.

POR HACER

  • Agregar soporte para archivos MSI

  • Incrustar archivos en documentos de MS Office 2007+: word -> embeddings -> oleObject1.bin (flujo OLE) + ajustar

  • Considerar agregar soporte para otros formatos de archivo exóticos (que realmente no lidian con MOTW o no son compatibles de forma nativa con Windows):

    • tar
    • cpio
    • pax
    • xar
    • ar
    • mtree
    • shar
    • tar
    • cpgz
    • uu

Curiosidad

Le pido amablemente que lea la siguiente línea en voz alta y lo más rápido que pueda frente a un espejo:

root@kitploit:~
py Pack My Payload dot py

Algunos dicen que el hechizo invoca al antiguo DAEMON y a las Ovejas ( ͡~ ͜ʖ ͡°)


Contribuidores

Un aplauso y gracias a los siguientes contribuidores que ayudaron a mejorar esta herramienta:

  • @ChoiSG (@_choisec) - agregó la bandera --hide para ocultar archivos en contenedores ISO/IMG
  • Daniel Hauenstein (@dhauenstein) - corrigió un problema con la bandera --hide

☕ Mostrar apoyo ☕

Este y otros proyectos son el resultado de noches en vela y mucho trabajo duro. Si te gusta lo que hago y aprecias que siempre devuelvo algo a la comunidad, Considera invitarme un café (o mejor una cerveza) solo para dar las gracias! 💪


root@kitploit:~
Mariusz Banach / mgeeky, (@mariuszbit)
<mb [at] binary-offensive.com>
Descargar herramienta
Formato¿Elimina MOTW?¿Soporte nativo de Windows?¿Requiere elevación?Observaciones
ZipNo/Yes*SíNo(MOTW eliminado con CVE-2022-41091)
7zipParcialmenteNoNoMOTW eliminado solo en extracción manual de archivos
ISOSíSíNo
IMGSíSíNo
PDF?SíNoDepende del soporte de Javascript en el lector PDF
CABNoSíNoRequiere algunos clics adicionales del lado de la víctima
VHDSíSíSíEste script actualmente no puede crear directorios
VHDXSíSíSíEste script actualmente no puede crear directorios
  • lha
  • WinZip Pro también admite la extracción de los siguientes formatos - quizás valga la pena agregarlos también:

    • B64, BHX, BZ, BZ2, GZ, HQX, LHA, LZH, MIM, TAZ, TBZ,
    • TBZ2, TGZ, TXZ, TZ, UU, UUE, VMDK, XXE, XZ, Z, ZIPX,