Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
PackMyPayload — A PoC that packages payloads into output containers to evade Mark-of-the-Web flag & demonstrate risks associated with container file formats. Supports: ZIP, 7zip, PDF, ISO, IMG, CAB, VHD, VHDX | Kitploit
ツール/GitHubGitHub/mgeeky/packmypayload
フィッシングツールコンテナセキュリティエクスプロイトフレームワークペイロード生成レッドチーミングペイロード開発
GitHubmgeeky/packmypayload

PackMyPayload

A PoC that packages payloads into output containers to evade Mark-of-the-Web flag & demonstrate risks associated with container file formats. Supports: ZIP, 7zip, PDF, ISO, IMG, CAB, VHD, VHDX

リポジトリを見る
1.2k1712年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

PackMyPayload - コンテナ化されたマルウェアの新たな脅威

サポートされているフォーマットへ

このツールは、入力としてファイルまたはディレクトリを受け取り、それらをアーカイブ/コンテナとして機能する出力ファイルに埋め込みます。これは、埋め込まれたマルウェアを含むコンテナファイルフォーマットの新たなリスクを示す概念実証として機能するだけでなく、プロフェッショナルなレッドチームオペレーターが初期アクセスの操作を磨くための補助としても役立ちます。

現在、脅威アクターはさまざまなコンテナファイルフォーマットでアーカイブされたマルウェアを密輸することが知られています。その一部を挙げると:

  • 7zip
  • zip
  • ISO
  • IMG

彼らは、ペイロードをファイルコンテンツスキャナーを通過させるためですが、さらに重要なのは、ファイルにMark-Of-The-Webフラグが付与されるのを避けるためです。攻撃者がファイルにMOTWを付与されたくない理由はさまざまですが、Microsoft Officeの保護されたビューは常にその一つです。

彼らが被害者にコンテナファイルを提供すれば、インターネット経由のOfficeドキュメントにおけるVBAマクロの無効化の基盤が回避される可能性があります。

背景

2月7日、マイクロソフトはインターネット経由のVBAマクロをデフォルトでブロックする構成変更を発表しました。これは、ユーザーのワークステーションとその内部にインストールされたクライアントソフトウェアのベースライン構成を強化するための素晴らしい一歩です。議論の余地はありますが、標準的なWindows+Officeのインストール環境に劇的に良い影響を与える重要なステップです。

実装された動作は、MOTW(Mark of the Web)フラグに基づいてマクロ対応のOfficeドキュメントを区別することで機能すると説明されています。このフラグは、ソフトウェアクライアント(ブラウザ、メールクライアント、ファイルアーカイバなど)がインターネットなどの信頼できない領域から来たファイルをマークするための_汚染_ラベルとして機能します。

OutflankはMOTWについて、2020年にMOTWフラグが一様に伝播されない領域を示唆してさらに詳しく説明しました。これらの領域は防御のギャップとして機能し、現在まで何年もの間、脅威アクターによって一般的に悪用されています。

彼らの研究により、一部の_コンテナ_ファイルフォーマット、すなわちISO、VHD/VHDXは、自動マウントまたは自動抽出時に内部ファイルにMOTW汚染フラグを伝播しないことが明らかになりました。さらに、Windows 8以降ではこれらのフォーマットをダブルクリックで自動的に開くことができるため、これらは_悪名高い感染キャリアとなり、MOTWのセキュリティ対策としての価値を低下させる可能性があります_。

デモ - 脅威アクターがMOTWを回避してマクロを密輸する方法

実際にMark of the Webフラグがどのように見えるかを示しましょう:

1. ブラウザを使用して通常のファイルをダウンロード

1.gif

ファイルをダウンロードしたら、右クリックしてプロパティを確認します。

ファイルが信頼できないゾーンから来ているため、ブロックを解除するように促すメッセージが表示されます:

motw

その情報は、次のようなZone.Identifierという名前のNTFS ADS(代替データストリーム)に保存されます:

zone-identifier

ZoneId=3はファイルを汚染としてマークする役割を果たします。

2. そのファイルをISOにパックする

PackMyPayload.pyを使用して、以下のコマンドでファイルをISO Jolietディスクに簡単に配置します:

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

2.gif

3. シンプルなHTTPサーバーでファイルを提供し、ダウンロード、ISOを開き、MOTWを確認

ISOファイルを作成したら、Pythonを使用してHTTPサーバーを模倣します:

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

そしてブラウザを使用してISOファイルをダウンロードします。

3.gif

そのISOファイルのプロパティを確認すると、MOTWフラグが付いていることがわかります。

marked

しかし、内部の7zipインストーラEXEファイルにはMOTWマークがありません!

not-marked


論拠

業界の注目がマイクロソフトのVBAマクロブロックの勇気ある決断に集まっている機会を利用して、私たちプロフェッショナルなセキュリティ研究者は、世界のテクノロジーの悪用に対する回復力を高めることを最大限に考慮し、現在の脅威アクターのTTPに以下の洞察を追加したいと思います:

脅威アクターは、MOTWがフィッシングペイロードに与える影響をよく認識しています。彼らはずっと前から適応しており、現在は悪意のあるプログラムをコンテナの中に密輸しています。最も一般的に観察されるものとしては、ISO、IMG、CABが挙げられます。

私は今、マイクロソフトの立場に基づいて構築された勢いを高め、これらの回避手段に関する議論を強化するためにこのツールをリリースします。

上記の拡張子を持つファイルが信頼できないゾーンから発信された場合、該当する場所ではそれらを封じ込め(および/またはブロック)することを推奨します:

  • Webプロキシ
  • メールスキャンエンジン
  • エンドポイント保護エージェント - EDR、XDR、AV
  • ファイルアップロードフォームと機能

リリースされたツールにより、より多くのレッドチームが議論されたリスクをシミュレートし、パートナーの防御における検出のギャップをより容易に特定できるようになることを願っています。


機能

このスクリプトは以下の機能と特典を提供します:

  • 入力ファイルまたはディレクトリを出力コンテナにパッケージ化
  • 既存のコンテナをバックドア化するか、新しいものを作成可能
  • サポートされているフォーマットにパスワード暗号化を提供

サポートされているフォーマット:

  • ZIPの場合、CVE-2022-41091が悪用されるとMOTWが除去される可能性があります。PackMyPayloadはデフォルトで内部ZIPファイルを読み取り専用にマークします(--zip-noreadonlyが指定されていない場合)。

インストール

  • このリポジトリをクローン
  • 要件をインストール:
root@kitploit:~
cmd> pip3 install -r requirements.txt

使用例

  1. ファイルを含むディレクトリを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. VHD/VHDXにファイルをパックするには、昇格されたユーザーコンテキスト(例:ローカル管理者)でWindows上でこのスクリプトを実行する必要があります。これはDISKPARTが物理デバイスオブジェクト/名前空間への管理者アクセスを必要とするためです。最良の体験は、ANSIカラーをサポートするWindows Terminal (wt)またはConEmuでスクリプトを実行することです。出力が見苦しい場合は、-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

全使用法

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

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

既知の問題

  • VHD/VHDXマウントボリュームにファイルをコピーする際にディレクトリを作成できません。

TODO

  • MSIファイルのサポートを追加
  • MS Office 2007+ドキュメントにファイルを埋め込む: word -> embeddings -> oleObject1.bin (OLEストリーム) + 調整
  • その他のエキゾチックなアーカイブフォーマットのサポートを検討(MOTWに対応していないか、Windowsで標準サポートされていないもの):
    • tar
    • cpio
    • pax
    • xar
    • ar
    • mtree
    • shar
    • tar
    • cpgz
    • uu

トリビア

以下の行を鏡の前でできるだけ速く声に出して読んでいただくようお願いします:

root@kitploit:~
py Pack My Payload dot py

この呪文は古代のDAEMONとSheepsを召喚するとか ( ͡~ ͜ʖ ͡°)


貢献者

このツールの改善に協力してくれた以下の貢献者に拍手と感謝を:

  • @ChoiSG (@_choisec) - ISO/IMGコンテナでファイルを隠すための--hideフラグを追加
  • Daniel Hauenstein (@dhauenstein) - --hideフラグの問題を修正

☕ サポートを示す ☕

このプロジェクトや他のプロジェクトは、眠れぬ夜と多くのハードワークの成果です。私の活動を気に入ってくださり、常にコミュニティに還元していることを評価していただけるなら、コーヒーを一杯ご馳走することを検討してください(できればビールの方がいいですが)感謝の気持ちとして! 💪


root@kitploit:~
Mariusz Banach / mgeeky, (@mariuszbit)
<mb [at] binary-offensive.com>
ツールをダウンロード
フォーマットMOTWを除去?標準Windowsサポート?権限昇格が必要?備考
Zipいいえ/はい*はいいいえ(CVE-2022-41091でMOTW除去)
7zip部分的いいえいいえ手動ファイル抽出時のみMOTW除去
ISOはいはいいいえ
IMGはいはいいいえ
PDF?はいいいえPDFリーダーのJavascriptサポートに依存
CABいいえはいいいえ被害者側でさらに数回のクリックが必要
VHDはいはいはいこのスクリプトは現在ディレクトリを作成できません
VHDXはいはいはいこのスクリプトは現在ディレクトリを作成できません
lha
  • WinZip Proは以下のフォーマットの抽出もサポートしています - 追加する価値があるかもしれません:
    • B64, BHX, BZ, BZ2, GZ, HQX, LHA, LZH, MIM, TAZ, TBZ,
    • TBZ2, TGZ, TXZ, TZ, UU, UUE, VMDK, XXE, XZ, Z, ZIPX,