Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
PackMyPayload — Un PoC qui conditionne des payloads dans des conteneurs de sortie pour contourner le flag Mark-of-the-Web et démontrer les risques associés aux formats de fichiers conteneurs. Support : ZIP, 7zip, PDF, ISO, IMG, CAB, VHD, VHDX | Kitploit
Outils/GitHubGitHub/mgeeky/packmypayload
Outils de PhishingSécurité des ConteneursFrameworks d'ExploitationGénération de PayloadsRed TeamingDéveloppement de Charges Utiles
GitHubmgeeky/packmypayload

PackMyPayload

Un PoC qui conditionne des payloads dans des conteneurs de sortie pour contourner le flag Mark-of-the-Web et démontrer les risques associés aux formats de fichiers conteneurs. Support : ZIP, 7zip, PDF, ISO, IMG, CAB, VHD, VHDX

Voir le dépôt
1.2k1715il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

PackMyPayload - Menace émergente des malwares conteneurisés

Accéder aux formats supportés

Cet outil prend un fichier ou un répertoire en entrée et les intègre dans un fichier de sortie agissant comme une archive/un conteneur.
Il peut servir de preuve de concept pour présenter le risque émergent des formats de fichiers conteneurisés contenant des malwares, ainsi que d'assistant pour les opérateurs Red Team professionnels afin d'affiner leurs manœuvres d'accès initial.

Actuellement, les acteurs menaçants sont connus pour faire passer leurs malwares dissimulés dans divers formats de fichiers conteneurisés, notamment :

  • 7zip
  • zip
  • ISO
  • IMG

Ils le font pour faire passer leurs charges utiles au travers des scanners de contenu, mais plus important encore, pour éviter d'avoir le flag Mark-Of-The-Web sur leurs fichiers. Il existe diverses raisons pour lesquelles les adversaires ne veulent pas de MOTW sur leurs fichiers : la Vue protégée dans Microsoft Office en a toujours fait partie.

S'ils fournissent un fichier conteneurisé à leurs victimes, un fondement pour la désactivation des macros VBA dans les documents Office provenant d'Internet peut être contourné.

Contexte

Le 7 février, Microsoft a annoncé un changement de configuration par défaut pour bloquer les macros VBA provenant d'Internet. C'est un pas incroyable vers le durcissement de la configuration de base du poste de travail de l'utilisateur et des logiciels clients installés. Sans doute attendue depuis longtemps, mais une étape importante qui affecte considérablement de manière positive les configurations typiques Windows+Office.

Le comportement implémenté est expliqué comme fonctionnant en différenciant les documents Office compatibles macros en fonction du flag MOTW (Mark of the Web). Ce flag agit comme une étiquette contaminée disponible pour les logiciels clients (navigateurs, clients de messagerie, archiveurs, etc.) pour marquer les fichiers provenant de zones non fiables comme Internet.

Outflank a apporté plus de lumière sur MOTW, en 2020, en indiquant les zones où le flag MOTW n'est pas uniformément propagé. Ces zones jouent un rôle de brèche défensive et sont couramment abusées par les acteurs menaçants depuis des années.

Leurs recherches ont révélé que certains formats de fichiers conteneurisés - notamment ISO, VHD/VHDX - ne propagent pas le flag de contamination MOTW sur les fichiers internes lors du montage automatique ou de l'extraction automatique. De plus, Windows 8+ est capable d'ouvrir ces formats automatiquement en double-cliquant, ce qui en fait des vecteurs d'infection notoires, pouvant dévaluer le rôle de MOTW en tant que mesure de sécurité.

Démo - Comment les acteurs menaçants contournent MOTW et font passer des macros

Présentons à quoi ressemble le flag Mark of the Web en pratique :

1. Téléchargez un fichier normal avec votre navigateur

1.gif

Après avoir téléchargé un fichier, faites un clic droit dessus et examinez ses propriétés.

Vous verrez un message vous invitant à débloquer le fichier, car il provient d'une zone non fiable :

motw

Cette information est stockée dans le flux ADS NTFS (Alternate Data Stream) nommé Zone.Identifier qui ressemble à ceci :

zone-identifier

Le ZoneId=3 joue le rôle de marquage du fichier comme contaminé.

2. Empaqueter ce fichier dans un ISO

En utilisant PackMyPayload.py, placez le fichier dans un disque ISO Joliet facilement avec une commande :

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

2.gif

3. Servir le fichier avec un serveur HTTP simple, téléchargez, ouvrez l'ISO, examinez MOTW

Après avoir créé le fichier ISO, simulez un serveur HTTP avec Python :

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

puis téléchargez le fichier ISO avec votre navigateur.

3.gif

Lorsque vous examinez les Propriétés de ce fichier ISO, vous verrez qu'il est marqué avec le flag MOTW.

marked

Cependant, le fichier EXE d'installation 7zip interne n'est pas marqué MOTW !

not-marked


Justification

En profitant de l'occasion que les regards de l'industrie sont tournés vers la décision courageuse de Microsoft de bloquer les macros VBA, nous, chercheurs en sécurité professionnels prenant en compte la maximisation de la résilience des technologies mondiales face à leur mauvaise utilisation, voulons ajouter l'aperçu suivant dans les TTP actuelles des acteurs menaçants :

Les acteurs menaçants sont bien conscients de l'impact de MOTW sur leurs charges utiles de phishing. Ils se sont adaptés il y a longtemps et font désormais passer leurs programmes malveillants à l'intérieur de conteneurs. Parmi les plus couramment observés, on peut souligner ISO, IMG, CAB.

Je publie maintenant cet outil pour augmenter l'élan créé par la position de Microsoft et pour aider à intensifier les discussions sur ces voies de contournement.

Il est conseillé de contenir (et/ou de bloquer) les fichiers ayant les extensions ci-dessus chaque fois qu'ils proviennent de zones non fiables, et chaque fois que applicable :

  • Proxies Web
  • Moteurs de scan de courrier
  • Agents de protection des terminaux - EDR, XDR, AV
  • Formulaires et fonctionnalités de téléchargement de fichiers

L'outil publié permettra, espérons-le, à plus d'équipes Red de simuler les risques discutés et de les aider à identifier plus facilement les lacunes de détection dans les défenses de leurs partenaires.


Fonctionnalités

Ce script offre les fonctions et avantages suivants :

  • Empaquète un fichier ou un répertoire d'entrée dans un conteneur de sortie
  • Peut backdoor des conteneurs existants ou en créer de nouveaux.
  • Fournit un chiffrement par mot de passe pour les formats supportés

Formats supportés :

  • Dans le cas ZIP, MOTW peut être supprimé lorsque CVE-2022-41091 est abusé. PackMyPayload marque par défaut les fichiers ZIP internes en lecture seule sauf si --zip-noreadonly est donné.

Installation

  • Clonez ce dépôt
  • Installez les dépendances :
root@kitploit:~
cmd> pip3 install -r requirements.txt

Exemple d'utilisation

  1. Empaqueter un répertoire avec des fichiers dans un 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. Pour empaqueter des fichiers dans VHD/VHDX, il faut exécuter ce script sur Windows avec un contexte utilisateur élevé (par exemple, administrateur local). Cela est dû au fait que DISKPART nécessite un accès administrateur aux objets/espaces de noms de périphériques physiques. La meilleure expérience est obtenue en exécutant le script sur Windows Terminal (wt) ou ConEmu car ils supportent les couleurs ANSI. Sinon, si la sortie semble mauvaise, désactivez ces couleurs avec le flag -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

Utilisation complète

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

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

Problèmes connus

  • Impossible de créer des répertoires lors de la copie de fichiers sur des volumes montés VHD/VHDX.

À faire

  • Ajouter le support des fichiers MSI

  • Intégrer des fichiers dans des documents MS Office 2007+ : word -> embeddings -> oleObject1.bin (flux OLE) + ajuster

  • Envisager d'ajouter le support d'autres formats d'archive exotiques (pas vraiment liés à MOTW ou supportés nativement par Windows) :

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

Trivia

Je vous demande gentiment de lire la ligne suivante à voix haute et aussi vite que possible devant un miroir :

root@kitploit:~
py Pack My Payload dot py

Certains disent que l'incantation invoque un ancien DAEMON et des Moutons ( ͡~ ͜ʖ ͡°)


Contributeurs

Applaudissements et remerciements aux contributeurs suivants qui ont aidé à améliorer cet outil :

  • @ChoiSG (@_choisec) - a ajouté le flag --hide pour cacher les fichiers dans les conteneurs ISO/IMG
  • Daniel Hauenstein (@dhauenstein) - a corrigé un problème avec le flag --hide

☕ Montrez votre soutien ☕

Ce projet et d'autres sont le fruit de nuits blanches et de beaucoup de travail acharné. Si vous aimez ce que je fais et appréciez que je donne toujours en retour à la communauté, Envisagez de m'offrir un café (ou mieux une bière) pour me dire merci ! 💪


root@kitploit:~
Mariusz Banach / mgeeky, (@mariuszbit)
<mb [at] binary-offensive.com>
Télécharger l’outil
FormatSupprime MOTW ?Support Windows natif ?Élévation requise ?Remarques
ZipNon/Oui*OuiNon(MOTW supprimé avec CVE-2022-41091)
7zipPartiellementNonNonMOTW supprimé uniquement lors de l'extraction manuelle des fichiers
ISOOuiOuiNon
IMGOuiOuiNon
PDF?OuiNonDépend du support JavaScript dans le lecteur PDF
CABNonOuiNonNécessite quelques clics supplémentaires côté victime
VHDOuiOuiOuiCe script ne peut actuellement pas créer de répertoires
VHDXOuiOuiOuiCe script ne peut actuellement pas créer de répertoires
  • lha
  • WinZip Pro prend également en charge l'extraction des formats suivants - peut-être intéressant de les ajouter aussi :

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