
Générateur et obfuscateur de cradle de téléchargement distant PowerShell

Invoke-CradleCrafter est un générateur et obfusqueur de berceaux de téléchargement distant PowerShell compatible avec PowerShell v2.0+.
À l'automne 2016, après la publication d'Invoke-Obfuscation, j'ai continué à mettre à jour mon tableur de berceaux de téléchargement distant PowerShell, pensant qu'un jour j'ajouterais un menu « sélecteur de berceaux » dans Invoke-Obfuscation. Cette liste comprenait des berceaux qui m'étaient obscurs, et dont beaucoup n'étaient pas (ou pas du tout) observés dans la nature.
Cependant, étant donné qu'Invoke-Obfuscation a été conçu pour obfusquer n'importe quelle commande ou script PowerShell arbitraire, certaines techniques d'obfuscation que je savais devoir inclure pour construire des berceaux personnalisés n'étaient pas réalisables à intégrer dans Invoke-Obfuscation.
C'est le point qui m'a amené à transférer cette recherche sur les berceaux dans un projet séparé, bien que vous puissiez toujours prendre la sortie d'Invoke-CradleCrafter et l'injecter dans Invoke-Obfuscation pour continuer le plaisir. Comme Invoke-CradleCrafter est beaucoup plus étroitement contrôlé, cela m'a permis d'inclure des techniques d'obfuscation totalement différentes de toutes celles présentes dans Invoke-Obfuscation.
Parmi les nouvelles techniques d'obfuscation de cet outil figurent l'obfuscation des jetons via l'énumération des types de données et la correspondance par caractères génériques, ainsi que la réorganisation de la structure des commandes par l'introduction de variables et syntaxes de variables supplémentaires.
Enfin, l'outil prend en charge plus de 10 syntaxes d'invocation qui s'étendent au-delà des plus courantes Invoke-Expression et IEX.
Invoke-CradleCrafter existe pour aider les équipes bleues et rouges à explorer, générer et obfusquer facilement les berceaux de téléchargement distant PowerShell. De plus, il aide les équipes bleues à tester l'efficacité des détections qui peuvent fonctionner pour les sorties produites par Invoke-Obfuscation, mais qui peuvent échouer face à Invoke-CradleCrafter car celui-ci ne contient aucune concaténation de chaînes, encodage, apostrophes, transtypage, etc.
Un autre élément important de cette recherche et du développement de l'outil était de mettre efficacement en évidence le comportement de haut niveau et les artefacts laissés lors de l'exécution de chaque berceau. J'ai essayé de souligner ces informations lorsque vous entrez dans un nouveau type de berceau dans les menus interactifs de l'outil.
En fin de compte, mieux connaître le comportement et les artefacts de chaque berceau aidera l'équipe bleue à mieux détecter ces berceaux. Cette connaissance devrait également permettre au membre de l'équipe rouge de sélectionner plus judicieusement le berceau à utiliser dans un scénario donné.
Bien que tous les berceaux puissent être produits en appelant directement la fonction Out-Cradle, la complexité des pièces mobiles pour tous les composants obfusqués empilés fait de l'utilisation de la fonction Invoke-CradleCrafter le moyen le plus simple d'explorer et de visualiser les syntaxes de berceaux et les techniques d'obfuscation actuellement supportées par ce framework.
Le code source d'Invoke-CradleCrafter est hébergé sur Github, et vous pouvez le télécharger, le forker et l'examiner depuis ce dépôt (https://github.com/danielbohannon/Invoke-CradleCrafter). Veuillez signaler les problèmes ou demandes de fonctionnalités via le suivi de bogues Github associé à ce projet.
Pour installer :
Import-Module ./Invoke-CradleCrafter.psd1
Invoke-CradleCrafter
Invoke-CradleCrafter est publié sous la licence Apache 2.0.
v1.0 - 2017-04-28 x33fcon (Gdynia, Pologne) : Publication publique d'Invoke-CradleCrafter.
v1.1 - 2017-05-11 NOPcon (Istanbul, Turquie) : Ajout de 3 nouveaux berceaux mémoire :
v1.1.1 - 2018-01-08: Ajout d'1 nouveau berceau mémoire :
v1.1.2 - 2018-02-05: Ajout de chaînes User-Agent aux informations du berceau