Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
PackMyPayload — 一个将载荷打包到输出容器中,以规避Mark-of-the-Web标志并演示与容器文件格式相关风险的概念验证(PoC)。支持:ZIP, 7zip, PDF, ISO, IMG, CAB, VHD, VHDX | Kitploit
工具/GitHubGitHub/mgeeky/packmypayload
钓鱼工具容器安全漏洞利用框架Payload生成红队Payload 开发
GitHubmgeeky/packmypayload

PackMyPayload

一个将载荷打包到输出容器中,以规避Mark-of-the-Web标志并演示与容器文件格式相关风险的概念验证(PoC)。支持:ZIP, 7zip, PDF, ISO, IMG, CAB, VHD, VHDX

查看仓库
1.2k171543年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

PackMyPayload - 容器化恶意软件的新兴威胁

跳转到支持的格式

该工具接收文件或目录作为输入,并将其嵌入到充当归档/容器的输出文件中。它可作为概念验证,展示容器文件格式与嵌入恶意软件的新兴风险,同时作为专业红队操作员的助手,以优化其初始访问策略。

目前已知威胁行为者通过多种容器文件格式走私恶意软件,例如:

  • 7zip
  • zip
  • ISO
  • IMG

他们这样做是为了让有效载荷绕过文件内容扫描器,但更重要的是避免在其文件上留下“网络标记”标志。攻击者不希望在其文件上出现 MOTW 的原因有多种:Microsoft Office 中的受保护视图一直是其中之一。

如果他们向受害者提供容器文件,可能绕过针对源自 Internet 的 Office 文档禁用 VBA 宏的基础。

背景

2022年2月7日,Microsoft 宣布默认配置更改,阻止源自 Internet 的 VBA 宏。这是朝着强化用户工作站基线配置及其中安装的客户端软件迈出的重要一步。虽然姗姗来迟,但这是一项重要举措,显著且积极地影响了典型的 Windows+Office 安装配置。

已实现的行为解释为:基于 MOTW(网络标记)标志来区分启用宏的 Office 文档。该标志充当一个“污染”标签,供软件客户端(浏览器、邮件客户端、文件归档器等)标记来自不受信任区域(如 Internet)的文件。

Outflank 在 2020 年更详细地阐述了 MOTW,指出了 MOTW 标志未统一传播的区域。这些区域起到了防御缺口的作用,多年来一直被威胁行为者普遍滥用。

他们的研究表明,一些容器文件格式——即 ISO、VHD/VHDX——在自动挂载或自动提取时不传播 MOTW 污染标志到内部文件。此外,Windows 8+ 能够通过双击自动打开这些格式,使其成为臭名昭著的感染载体,可能降低 MOTW 作为安全措施的作用。

演示 - 威胁行为者如何绕过 MOTW 并走私宏

让我们展示“网络标记”标志在实践中的样子:

1. 使用浏览器下载常规文件

1.gif

下载文件后,右键单击并查看其属性。

您将看到一条提示消息,要求解除文件阻止,因为它源自不受信任的区域:

motw

该信息存储在名为 Zone.Identifier 的 NTFS ADS(备用数据流)中,如下所示:

zone-identifier

ZoneId=3 充当标记文件为“已污染”的作用。

2. 将该文件打包到 ISO 中

使用 PackMyPayload.py 轻松将文件放入 ISO Joliet 光盘,命令如下:

PS> py PackMyPayload.py 7z2107-x64.exe 7z2107-x64.iso

2.gif

3. 使用简单 HTTP 服务器提供文件,下载,打开 ISO,检查 MOTW

创建 ISO 文件后,使用 Python 模拟 HTTP 服务器:

PS> py -m http.server 80

然后使用浏览器下载 ISO 文件。

3.gif

当您查看该 ISO 文件的属性时,您会看到它带有 MOTW 标志。

marked

但是,内部的 7zip 安装程序 EXE 文件没有 MOTW 标志!

not-marked


理由

借行业目光聚焦于 Microsoft 阻止 VBA 宏这一勇敢决定之际,我们专业安全研究人员,在最大程度上考虑提高世界技术对其滥用的抵御能力,希望就当前威胁行为者的 TTP 提出以下见解:

威胁行为者非常清楚 MOTW 对其钓鱼有效载荷的影响。他们早已适应,并正在容器内走私恶意程序。在常见观察到的容器类型中,我们可以突出 ISO、IMG、CAB。

我现在发布此工具,以借 Microsoft 立场所形成的势头,帮助加剧关于这些规避途径的讨论。

建议在适当的情况下,对源自不受信任区域且具有上述扩展名的文件进行遏制(和/或阻止):

  • Web 代理
  • 邮件扫描引擎
  • 端点保护代理 - EDR、XDR、AV
  • 文件上传表单和功能

发布的工具有望让更多红队模拟所讨论的风险,并帮助他们更容易地识别合作伙伴防御中的检测漏洞。


功能

此脚本提供以下特性和好处:

  • 将输入文件或目录打包到输出容器中
  • 可以后门现有容器或创建新容器
  • 为支持的格式提供密码加密

支持的格式:

格式是否可以剥离 MOTW?开箱即用的 Windows 支持?需要提权?备注
Zip否/是*是否(利用 CVE-2022-41091 可剥离 MOTW)
7zip部分否否仅在手动提取文件时剥离 MOTW
ISO是是否
IMG是是否
PDF?是否取决于 PDF 阅读器对 JavaScript 的支持
CAB否是否需要在受害者端进行额外几次点击
VHD是是是此脚本当前无法创建目录
VHDX是是是此脚本当前无法创建目录
  • 在 ZIP 情况下,当利用 CVE-2022-41091 时可剥离 MOTW。PackMyPayload 默认将内部 ZIP 文件标记为只读,除非指定了 --zip-noreadonly。

安装

  • 克隆此仓库
  • 安装依赖:
cmd> pip3 install -r requirements.txt

使用示例

  1. 将包含文件的目录打包到 ISO:
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           +           +

[.] 正在将输入文件打包到输出 .iso (iso)...
Burning files onto ISO:
    Adding file: //malicious.lnk
    Adding file: //malicious.docm
[INFO] [+] 文件已打包到 ISO。
[INFO] 成功打包输入文件。

[+] 生成的文件已写入(大小:69632):malicious.iso
  1. 要将文件打包到 VHD/VHDX,必须在 Windows 上以提升的用户上下文(例如本地管理员)运行此脚本。这是因为 DISKPART 需要管理员权限访问物理设备对象/命名空间。最佳体验是在支持 ANSI 颜色的 Windows Terminal (wt) 或 ConEmu 上运行脚本。否则,如果输出看起来不佳,请使用 -N 标志禁用颜色:
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           +           +

[.] 正在将输入文件打包到输出 .vhd (vhd)...
[INFO] 当前占用的驱动器盘符:
    X
    C
    Z
    D
[INFO] 将创建大小为 1024MB(动态扩展)的 VHD
[INFO] 将分配 VHD 盘符:V:
[INFO] 将使用 FAT32 格式化 VHD
[INFO] 正在创建 VHD 文件...
[+] 已创建并挂载 VHD 文件到 V:\
[.] 将文件打包到创建的 VHD 中...
[INFO] 已打包文件:
[INFO]     evil.lnk => V:\
[.] 正在分离 VHD 文件...
[+] 已从 V:\ 分离 VHD 文件
[INFO] [+] 文件已打包到 VHD。
[INFO] 成功打包输入文件。

[+] 生成的文件已写入(大小:6311936):evil.vhd

完整用法

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                要打包到输出归档/容器的输入文件/目录
  outfile               输出文件,扩展名指向输出格式
下载工具