Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
demiguise — 面向红队的 HTA 加密工具 | Kitploit
工具/GitHubGitHub/nccgroup/demiguise
钓鱼工具Payload生成IDS/IPS规避Web应用程序漏洞利用红队
GitHubnccgroup/demiguise

demiguise

面向红队的 HTA 加密工具

查看仓库
1.4k2464年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Demiguise - HTA 加密工具

由 NCC Group Plc 以开源形式发布 - http://www.nccgroup.trust/

由 Richard Warren 开发, richard [dot] warren [at] nccgroup [dot] trust

http://www.github.com/nccgroup/demiguise

基于 AGPL 发布,详见 LICENSE 文件

它的作用是什么?

该项目的目标是生成.html文件,这些文件包含一个加密的 HTA 文件。其思路是,当目标访问页面时,获取密钥,并在浏览器中动态解密 HTA,然后直接推送给用户。这是一种绕过某些安全设备实施的内容/文件类型检查的规避技术。该工具并非设计用于创建优秀的 HTA 内容。有许多其他工具/技术可以帮助您实现这一点。它可能帮助您的是,首先将您的 HTA 送入某个环境,并且(如果您使用环境密钥)避免它被沙盒捕获。

它是如何工作的?

这是通过使用 RC4 加密 HTA 文件,然后在运行时使用 navigator.msSaveBlob “保存”该文件来实现的——而不是直接从服务器获取 HTA。这意味着在任何时候,都没有任何 HTTP 请求/响应包含明文形式的 HTA 文件——代理只会看到一个包含加密 blob 的 text/html 文件。在最新版本的 Edge 中,这会导致用户被提示“运行”HTA。

虽然不是本工具的主要目标,但还是为基础 HTA 提供了几种有效载荷选项。每种选项使用了之前由 Matt Nelson、Matthew Demaske、Ryan Hanson 和 Etienne Stalmans 记录的不同技术。使用这些技术的好处是,您的代码不会作为 mshta.exe 的子进程执行。如前所述,HTA 的内容并非本工具的主要目标。我鼓励您修改 HTA 模板以包含您自己的自定义代码 :)

如何运行它?

运行 demiguise.py 文件,提供您的加密密钥、有效载荷类型、输出文件名以及您希望 HTA 运行的命令。

示例:python demiguise.py -k hello -c "notepad.exe" -p Outlook.Application -o test.hta

环境密钥

为了规避沙盒,您不应将密钥直接嵌入 HTA 中。相反,您应该从目标所处的环境中动态获取密钥。一个示例可能是使用客户的外部 IP 地址作为密钥。这样做的好处是,如果代码在第三方沙盒中运行,HTA 将无法解密。实际上,文件名甚至都不会被解密,意味着没有人会知道您的有效载荷是什么/做什么 :)

环境密钥的一些示例在 examples/externalip.js 和 examples/virginkey.js 中给出。

额外福利

由于该工具输出一个包含 JavaScript 的 HTML 文件,您可以简单地获取这个 JS 并将其托管在任何您喜欢的地方。这意味着,如果您客户的网站存在反射型 XSS 漏洞,您可以使用它从其(高度可信的)域名提供您的 HTA 文件。

另外,Outlook 默认不会阻止 .html 附件,其他一些应用程序也是如此——发挥您的想象力吧!:)

检测

目前它未被 VT 检测到:

https://www.virustotal.com/en/file/24b86ee6210b2abc446021feacfe25502b60403455aa24a32c80b2e7b0f81a70/analysis/1499880541/

防御

尽管混淆技术可能难以签名化,但防御 HTA 攻击的一种方法是首先阻止 HTA 本身运行。这可以通过使用软件限制策略 (SRP)、设备防护 (Windows 10 和 Server 2016),或更改与 .hta 文件关联的默认文件处理程序来实现。

请注意,这些更改可能会影响依赖 HTA 运行的软件。因此,建议在您自己的环境中对修复进行全面测试。

使用 SRP:

更改默认文件处理程序:

root@kitploit:~
ftype htafile=%SystemRoot%\system32\NOTEPAD.EXE %1

改回默认值 (x64):

root@kitploit:~
ftype htafile=C:\Windows\SysWOW64\mshta.exe "%1" {1E460BD7-F1C3-4B2E-88BF-4E770A288AF5}%U{1E460BD7-F1C3-4B2E-88BF-4E770A288AF5} %*

常见问题

  • 这不会写入磁盘吗?
    • 在最新版本的 Edge 中测试,这种方式“写入磁盘”的方式与提供常规 HTA 相同。无论哪种方式,它最终都会作为临时文件存在于磁盘上。
  • 如果我已经通过检查域加入状态/打印机等手段为 $product 实现了沙盒检测,为什么还要使用这个工具?
    • 本工具的目的是首先避免在沙盒中执行。如果您明智地选择密钥,HTA 将无法正确解密,$product 也无法知道它是一个 HTA 文件——这意味着沙盒无法执行它。
  • 如何在不首先访问目标网络的情况下找到环境密钥源?
    • 这留给读者作为练习,不过通常可以通过良好的 OSINT 发现。如果您正在执行指纹识别活动,请查看 WebFEET 和 BeEF 以获得一些灵感。

致谢 / 先前作品

  • Matt Nelson - WbemScripting.SWbemLocator 和 ShellBrowserWindow COM 执行技术
  • Matthew Demaske - WbemScripting.SWbemLocator COM 执行 PoC
  • Ryan Hanson - Excel.Application.RegisterXLL COM 执行技术
  • Etienne Stalmans - Outlook.Application.CreateObject COM 执行技术
  • Brandon Arvanaghi 和 Chris Truncer's CheckPlease 工具。
  • The Empire Project
下载工具