Invoke-Obfuscation
função a maneira mais fácil de explorar e visualizar as técnicas de ofuscação que essa estrutura suporta atualmente.Instalação
O código fonte para Invoke-Obfuscation está hospedado no Github, e você pode fazer o download, bifurcar e revisá-lo deste repositório ( https://github.com/danielbohannon/Invoke-Obfuscation ). Por favor, relate problemas ou solicitações de recursos através do bug tracker do Github associado a este projeto.
Para instalar:
Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation
Licença
Invoke-Obfuscation é liberada sob alicença Apache 2.0.
Notas de versão
v1.0 – 2016-09-25 DerbyCon 6.0 (Louisville, Kentucky EUA): Lançamento público de Invoke-Ofuscação.
v1.1 – 2016-10-09 SANS DFIR Summit (Praga, República Tcheca): Adicionada a funcionalidade de reordenamento do operador em formato -f para todas as funções de ofuscação TOKEN aplicáveis. Também adicionou opções adicionais de sintaxe para definir valores de variáveis.
v1.2 – 2016-10-20 CODE BLUE (Tóquio, Japão): Adicionada ofuscação TOKEN do tipo (conversão direta de tipos com opções de ofuscação de string para o nome do tipo).
v1.3 – 2016-10-22 Hacktivity (Budapeste, Hungria): Adicionado dois novos LAUNCHERs: CLIP + e CLIP ++. Também foi adicionada sintaxe de conversão de caracteres adicionais (e mais simples) para todas as funções de ENCODING que não exigem For-EachObject /%.
v1.4 – 2016-10-28 BruCON (Ghent, Bélgica): Adicionada nova função BXOR ENCODING. Além disso, o caso randomizado aprimorado para todos os componentes de todas as funções ENCODING, bem como para sinalizadores de execução do PowerShell para todos os LAUNCHERs. Por fim, adicionei a opção -EP shorthand para -ExecutionPolicy a todos os LAUNCHERs, bem como a representação de inteiro opcional do sinalizador de execução do -WindowStyle PowerShell: Normal (0), Hidden (1), Minimized (2), Maximized (3).
v1.5 – 2016-11-04 Blue Hat (Redmond, Washington, EUA): Adicionado o WMIC LAUNCHER com alguma aleatoriedade dos argumentos da linha de comando da WMIC.
v1.6 – 2017-01-24 Blue Hat IL (Tel Aviv, Israel):
- Funcionalidade CLI adicionada: Por exemplo, Invoke-Obfuscation -ScriptBlock {Write-Host ‘CLI FTW!’} -Command ‘Token \ All \ 1, Codificação \ 1, Launcher \ Stdin ++ \ 234, Clip’ -Quiet -NoExit
- Funcionalidade UNDO adicionada para remover uma camada de ofuscação de cada vez.
- Removido o ofuscamento de espaço em branco de Token \ All \ 1 para acelerar a ofuscação de scripts grandes.
- Adicionada a saída Process Argument Tree para todos os lançadores para ajudar os defensores.
- Funcionalidade de autodetecção do menu base adicionada para evitar a necessidade de usar BACK ou HOME: Por exemplo, se você executou o TOKEN em seguida ALL, então digite LAUNCHER e chegará ao menu LAUNCHER sem precisar digitar HOME ou BACK para voltar o menu inicial.
- Adicionado a sintaxe multi-comando utilizada pela CLI e pelo modo interativo: Por exemplo, Token \ All \ 1, String \ 3, Codificação \ 5, Launcher \ Ps \ 234, Clip
- Adicionado o recurso de regex a todos os comandos de menu e ofuscação: por exemplo, Token **, String [13], Codificação (1 | 6), Launcher. * [+] {2} \ 234, Clip
- Adicionado funcionalidade de comando único OUT FILEPATH.
- Adicionada a decodificação se a sintaxe powershell -enc for inserida como um valor SCRIPTBLOCK.
- Adicionado alias ForEach a ForEach-Object /% randomized syntax options em todas as funções ENCODING.
- Adicionadas as opções de sintaxe de subcadeia -Key -Ke -K KEY para Out-SecureStringCommand.ps1.
- Adicionada randomização de caso mais completa para todas as funções de ofuscação de \ Home \ String.
- Adicionado sinalizadores -ST / -STA (Single-Threaded Apartment) às funções de iniciador CLIP + e CLIP ++, uma vez que são necessários se estiverem sendo executados no PowerShell 2.0.
- Adicionada a sintaxe Get-Item / GI / Item em todos os lugares onde o 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 Invoke-Expression / IEX adicional usando variáveis automáticas do PowerShell e concatenações de valores de variáveis de ambiente na função Out-EncapsulatedInvokeExpression de Out-ObfuscatedStringCommand.ps1 e copiada para todas as funções de launchers, STRING e ENCODING para adicionar várias sintaxes de linha de comando para IEX.
- Adicionadas duas novas sintaxes de JOIN para String \ Reverse e todas as opções de ofuscação de ENCODING:
- Adicionado [String] :: Join (”, $ string) Sintaxe de JOIN
- Adicionada a sintaxe JOIN da variável OFS (variável automática do separador de campo de saída)
- Adicionadas mais duas sintaxes do SecureString ao Encoding \ 5:
- PtrToStringAnsi / SecureStringToGlobalAllocAnsi
- PtrToStringBSTR / SecureStringToBSTR
- Adicionadas seis sintaxes alternativas de GetMember para vários membros do SecureString:
- PtrToStringAuto, ([Runtime.InteropServices.Marshal] .GetMembers () [3] .Name) .Invoke
- PtrToStringAuto, ([Runtime.InteropServices.Marshal] .GetMembers () [5] .Name) .Invoke
- PtrToStringUni, ([Runtime.InteropServices.Marshal] .GetMembers () [2] .Name) .Invoke
- PtrToStringUni, ([Runtime.InteropServices.Marshal] .GetMembers () [4] .Name) .Invoke
- PtrToStringAnsi, ([Runtime.InteropServices.Marshal] .GetMembers () [0] .Name) .Invoke
- PtrToStringAnsi, ([Runtime.InteropServices.Marshal] .GetMembers () [1] .Name) .Invoke
- Atualizado Out-ObfuscatedTokenCommand.ps1 para que a ofuscação VARIÁVEL não encapsule variáveis em $ {} se elas já estiverem encapsuladas (então $ {$ {var}} não acontecerá, pois isso causa erros).
- Substituiu Invoke-Obfuscation.psm1 por Invoke-Obfuscation.psd1 (obrigado @Carlos_Perez).
- Corrigidos vários bugs de ofuscação no nível TOKEN reportados por @cobbr_io e @IISResetMe.
v1.7 – 2017-03-03 nullcon (Goa, Índia):
- Adicionado 3 novos LAUNCHERs: RUNDLL, RUNDLL ++ e MSHTA ++
- Adicionadas sequências de variáveis curinga ExecutionContext adicionais
v1.8 – 2017-07-27 Black Hat (Las Vegas, Nevada, EUA):
- Adicionado 2 novas opções de ENCODING: Caracteres Especiais e Espaço em Branco
v1.8.1 – 2017-12-19:
- Adicionado função COMPRESS para facilitar a conversão de scripts multi-line para um comando one-liner enquanto reduz drasticamente o comprimento do comando para fins de limitação de comprimento de linha de comando cmd.exe.
v1.8.2 – 2018-01-04:
- Adicionado funções de ofuscação AST, que ofuscam manipulando a estrutura do AbstractSyntaxTree sem usar muitos caracteres especiais.