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
Empire — Empire é um agente de pós-exploração em PowerShell e Python. | Kitploit
Ferramentas/GitHubGitHub/empireproject/empire
Escalada de PrivilégiosGeração de PayloadsMecanismos de PersistênciaExploraçãoMovimento LateralPós-ExploraçãoTestes de PenetraçãoComando e ControleRed TeamingArchived
GitHubempireproject/empire

Empire

7.9k2.9khá 6 anosRevisado 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

Empire é um agente de pós-exploração em PowerShell e Python.

Ver RepositórioSite

Invoke-Obfuscation v1.8

Invoke-Obfuscation Screenshot

Introdução

Invoke-Obfuscation é um ofuscador de comandos e scripts PowerShell compatível com PowerShell v2.0+.

Histórico

No outono de 2015, decidi começar a pesquisar a flexibilidade da linguagem PowerShell e comecei a catalogar as várias maneiras de realizar um conjunto de técnicas comuns que a maioria dos atacantes usa regularmente.

Inicialmente focando em sintaxes de comando codificado e cradle de download remoto, descobri que vários caracteres de escape que não atrapalhavam a execução do comando persistiam nos argumentos da linha de comando, tanto no processo em execução quanto no que é registrado nos logs de eventos Security EID 4688 e Sysmon EID 1. Isso me levou a explorar sistematicamente maneiras de ofuscar cada tipo de 'token' encontrado em qualquer comando ou script PowerShell.

Depois explorei maneiras mais obscuras de realizar ofuscação em nível de string, várias técnicas de codificação/criptografia (como ASCII/hex/octal/binário e até SecureString) e, finalmente, técnicas de lançamento do PowerShell para abstrair os argumentos da linha de comando do powershell.exe e empurrá-los de volta para o processo pai e até mesmo avô.

Propósito

Atacantes e malwares comerciais começaram a usar técnicas de ofuscação extremamente básicas para esconder a maior parte do comando dos argumentos da linha de comando do powershell.exe. Desenvolvi esta ferramenta para ajudar a Equipe Azul a simular comandos ofuscados com base no que atualmente sei ser sintaticamente possível no PowerShell 2.0-5.0, para que possam testar suas capacidades de detecção dessas técnicas.

O único propósito da ferramenta é quebrar quaisquer suposições que nós, como defensores, possamos ter sobre como comandos PowerShell podem aparecer na linha de comando. Espero que isso incentive a Equipe Azul a mudar para a busca de Indicadores de Ofuscação na linha de comando, além de atualizar o log do PowerShell para incluir logs de Módulo, ScriptBlock e Transcrição, pois essas fontes simplificam a maioria dos aspectos das técnicas de ofuscação geradas por esta ferramenta.

Uso

Embora todas as camadas de ofuscação tenham sido construídas em scripts separados, a maioria dos usuários achará a função Invoke-Obfuscation a maneira mais fácil de explorar e visualizar as técnicas de ofuscação que este framework suporta atualmente.

Instalação

O código-fonte do Invoke-Obfuscation está hospedado no Github, e você pode baixá-lo, criar forks e revisá-lo a partir deste repositório (https://github.com/danielbohannon/Invoke-Obfuscation). Por favor, reporte problemas ou solicitações de funcionalidades através do rastreador de bugs do Github associado a este projeto.

Para instalar:

root@kitploit:~
Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation

Licença

Invoke-Obfuscation é lançado sob a licença Apache 2.0.

Notas de Lançamento

v1.0 - 2016-09-25 DerbyCon 6.0 (Louisville, Kentucky, EUA): Lançamento Público do Invoke-Obfuscation.

v1.1 - 2016-10-09 SANS DFIR Summit (Praga, República Tcheca): Adicionada funcionalidade de reordenação do operador de formato -f a todas as funções de ofuscação TOKEN aplicáveis. Também foram adicionadas opções de sintaxe adicionais para definir valores de variáveis.

v1.2 - 2016-10-20 CODE BLUE (Tóquio, Japão): Adicionada ofuscação de TOKEN de Tipo (conversão direta de tipo com opções de ofuscação de string para o nome do tipo).

v1.3 - 2016-10-22 Hacktivity (Budapeste, Hungria): Adicionados dois novos LAUNCHERs: CLIP+ e CLIP++. Também foi adicionada sintaxe adicional (e mais simples) de conversão de array de caracteres para todas as funções de ENCODING que não requer For-EachObject/%.

v1.4 - 2016-10-28 BruCON (Ghent, Bélgica): Adicionada nova função de ENCODING BXOR. Também melhorada a aleatoriedade de maiúsculas/minúsculas para todos os componentes de todas as funções de ENCODING, bem como para os flags de execução do PowerShell para todos os LAUNCHERs. Finalmente, adicionada a opção abreviada -EP para -ExecutionPolicy a todos os LAUNCHERs, bem como a representação opcional em inteiro do flag de execução -WindowStyle do PowerShell: Normal (0), Hidden (1), Minimized (2), Maximized (3).

v1.5 - 2016-11-04 Blue Hat (Redmond, Washington, EUA): Adicionado LAUNCHER WMIC com alguma aleatorização dos argumentos da linha de comando do WMIC.

v1.6 - 2017-01-24 Blue Hat IL (Tel Aviv, Israel):

  • Adicionada funcionalidade de CLI: Ex.: Invoke-Obfuscation -ScriptBlock {Write-Host 'CLI FTW!'} -Command 'Token\All\1, Encoding\1,Launcher\Stdin++\234,Clip' -Quiet -NoExit
  • Adicionada funcionalidade UNDO para remover uma camada de ofuscação de cada vez.
  • Removida ofuscação de Espaços em Branco de Token\All\1 para acelerar a ofuscação de scripts grandes.
  • Adicionada saída da Árvore de Argumentos do Processo para todos os lançadores para ajudar os defensores.
  • Adicionada funcionalidade de detecção automática do menu base para evitar a necessidade de usar BACK ou HOME: Ex.: se você executou TOKEN, depois ALL, depois 1, então basta digitar LAUNCHER e você chegará ao menu LAUNCHER sem precisar digitar HOME ou BACK para voltar ao menu inicial.
  • Adicionada sintaxe de múltiplos comandos utilizada pelo CLI e modo interativo: Ex.: Token\All\1,String\3,Encoding\5,Launcher\Ps\234,Clip
  • Adicionada capacidade de regex a todos os comandos de menu e ofuscação: Ex.: Token**,String[13],Encoding(1|6),Launcher.*[+]{2}\234,Clip
  • Adicionada funcionalidade de comando único OUT FILEPATH.
  • Adicionada decodificação se a sintaxe powershell -enc for inserida como um valor SCRIPTBLOCK.
  • Adicionado alias ForEach às opções de sintaxe aleatória de ForEach-Object/% em todas as funções ENCODING.
  • Adicionadas opções de sintaxe de substring -Key -Ke -K KEY ao Out-SecureStringCommand.ps1.
  • Adicionada aleatoriedade de maiúsculas/minúsculas mais completa a todas as funções de ofuscação \Home\String.
  • Adicionados flags -ST/-STA (Single-Threaded Apartment) às funções de lançador CLIP+ e CLIP++, pois são necessários se executados no PowerShell 2.0.
  • Adicionada sintaxe Get-Item/GI/Item em todos os lugares onde Get-ChildItem é usado para obter valores de variáveis.
  • Adicionada sintaxe de instanciação de variável Set-Item à função de ofuscação TYPE.
  • Adicionada sintaxe adicional de Invoke-Expression/IEX usando variáveis automáticas do PowerShell e concatenações de valores de variáveis de ambiente na função Out-EncapsulatedInvokeExpression do Out-ObfuscatedStringCommand.ps1 e copiada para todos os lançadores, funções STRING e ENCODING para adicionar inúmeras sintaxes de linha de comando para IEX.
  • Adicionadas duas novas sintaxes JOIN para String\Reverse e todas as opções de ofuscação ENCODING:
  1. Adicionada sintaxe JOIN [String]::Join('',$string)
  2. Adicionada sintaxe JOIN com variável OFS (variável automática Output Field Separator)
  • Adicionadas mais duas sintaxes SecureString ao Encoding\5:
  1. PtrToStringAnsi / SecureStringToGlobalAllocAnsi
  2. PtrToStringBSTR / SecureStringToBSTR
  • Adicionadas seis sintaxes alternativas GetMember para vários membros do SecureString:
  1. PtrToStringAuto, ([Runtime.InteropServices.Marshal].GetMembers()[3].Name).Invoke
  2. PtrToStringAuto, ([Runtime.InteropServices.Marshal].GetMembers()[5].Name).Invoke
  3. PtrToStringUni , ([Runtime.InteropServices.Marshal].GetMembers()[2].Name).Invoke
  4. PtrToStringUni , ([Runtime.InteropServices.Marshal].GetMembers()[4].Name).Invoke
  5. PtrToStringAnsi, ([Runtime.InteropServices.Marshal].GetMembers()[0].Name).Invoke
  6. PtrToStringAnsi, ([Runtime.InteropServices.Marshal].GetMembers()[1].Name).Invoke
  • Atualizado Out-ObfuscatedTokenCommand.ps1 para que a ofuscação VARIABLE não encapsule variáveis em ${} se já estiverem encapsuladas (então ${${var}} não ocorrerá, pois causa erros).
  • Substituído Invoke-Obfuscation.psm1 por Invoke-Obfuscation.psd1 (obrigado @Carlos_Perez).
  • Corrigidos vários bugs de ofuscação em nível TOKEN reportados por @cobbr_io e @IISResetMe.

v1.7 - 2017-03-03 nullcon (Goa, Índia):

  • Adicionados 3 novos LAUNCHERs: RUNDLL, RUNDLL++ e MSHTA++
  • Adicionadas strings de variável curinga ExecutionContext adicionais

v1.8 - 2017-07-27 Black Hat (Las Vegas, Nevada, EUA):

  • Adicionadas 2 novas opções de ENCODING: Caracteres Especiais e Espaços em Branco
Baixar ferramenta