
Gerador e Ofuscador de Cradle de Download Remoto PowerShell

O Invoke-CradleCrafter é um gerador e ofuscador de cradles de download remoto do PowerShell compatível com PowerShell v2.0+.
No outono de 2016, após lançar o Invoke-Obfuscation, continuei atualizando minha planilha de cradles de download remoto do PowerShell, pensando que um dia poderia adicionar um menu "seletor de cradle" ao Invoke-Obfuscation. Essa lista consistia em cradles que eram obscuros para mim, e muitos dos quais não estavam sendo observados de forma prevalente (ou nenhuma) na natureza.
No entanto, como o Invoke-Obfuscation foi projetado para ofuscar qualquer comando ou script arbitrário do PowerShell, existem certas técnicas de ofuscação que eu sabia que precisava incluir em relação à criação de cradles personalizados que não eram viáveis de incluir no Invoke-Obfuscation.
Esse foi o ponto que me levou a deslocar esta pesquisa sobre cradles para um projeto separado, embora você sempre possa pegar a saída do Invoke-CradleCrafter e inseri-la no Invoke-Obfuscation e continuar a diversão. Como o Invoke-CradleCrafter é muito mais controlado, isso me permitiu incluir técnicas de ofuscação completamente diferentes de qualquer técnica encontrada no Invoke-Obfuscation.
Algumas das novas técnicas de ofuscação nesta ferramenta incluem ofuscação de tokens por meio de enumeração de tipos de dados e correspondência curinga, e a reordenação da estrutura de comandos ao introduzir variáveis e sintaxes de variáveis adicionais.
Por último, a ferramenta suporta mais de 10 sintaxes de invocação que vão além do mais prevalente Invoke-Expression e IEX.
O Invoke-CradleCrafter existe para ajudar Equipes Azuis e Equipes Vermelhas a explorar, gerar e ofuscar facilmente cradles de download remoto do PowerShell. Além disso, ajuda as Equipes Azuis a testar a eficácia de detecções que podem funcionar para saída produzida pelo Invoke-Obfuscation, mas podem falhar ao lidar com o Invoke-CradleCrafter, pois este não contém concatenações de strings, codificações, acentos, conversão de tipos, etc.
Outro componente importante desta pesquisa e desenvolvimento da ferramenta foi destacar efetivamente o comportamento de alto nível e os artefatos deixados para trás quando cada cradle é executado. Tentei destacar essas informações quando você entra em um novo tipo de cradle nos menus interativos da ferramenta.
Em última análise, saber mais sobre o comportamento e os artefatos de cada cradle ajudará a Equipe Azul a detectar melhor esses cradles. Esse conhecimento também deve beneficiar o Membro da Equipe Vermelha ao fazer seleções mais informadas sobre qual cradle usar em um determinado cenário.
Embora todos os cradles possam ser produzidos chamando diretamente a função Out-Cradle, a complexidade das peças móveis para todos os componentes ofuscados empilhados torna o uso da função Invoke-CradleCrafter a maneira mais fácil de explorar e visualizar as sintaxes de cradle e as técnicas de ofuscação que esta estrutura atualmente suporta.
O código-fonte do Invoke-CradleCrafter está hospedado no Github, e você pode baixá-lo, fazer fork e revisá-lo a partir deste repositório (https://github.com/danielbohannon/Invoke-CradleCrafter). Por favor, relate problemas ou solicitações de recursos através do rastreador de bugs do Github associado a este projeto.
Para instalar:
Import-Module ./Invoke-CradleCrafter.psd1
Invoke-CradleCrafter
O Invoke-CradleCrafter é lançado sob a licença Apache 2.0.
v1.0 - 2017-04-28 x33fcon (Gdynia, Polônia): Lançamento PÚBLICO do Invoke-CradleCrafter.
v1.1 - 2017-05-11 NOPcon (Istambul, Turquia): Adicionados 3 novos cradles baseados em memória:
v1.1.1 - 2018-01-08: Adicionado 1 novo cradle baseado em memória:
v1.1.2 - 2018-02-05: Adicionadas strings de User-Agent às informações do cradle