Shed est une application qui permet d'inspecter l'exécution .NET d'un programme afin d'extraire des informations utiles. Il peut être utilisé pour inspecter les applications malveillantes afin d'avoir un premier aperçu général des informations stockées une fois que le malware est exécuté.
Shed est capable de:
Shed est un outil de ligne de commande. Pour afficher toutes les options disponibles exécutées:
shed.exe --help
Afin d'inspecter un processus déjà en cours d'exécution, vous devez passer le PID à perdre . Exemple:
Shed.exe --pid 2356
Afin d'inspecter un binaire, le hangar doit l'exécuter et s'y attacher afin d'inspecter l'exécution. Exemple:
Shed.exe --exe malware.exe
Vous pouvez également spécifier la durée (en millisecondes) pour attendre avant de suspendre le processus. Cela permettra au programme d'avoir le temps d'initialiser ses propriétés. Exemple:
Shed.exe --timeout 2000 --exe malware.exe
Avec Shed est possible pour injecter un assemblage .NET dans un processus distant grâce à la bibliothèque ManagedInjector. Pour ce faire, il est nécessaire de spécifier le PID du processus et l' EXE à injecter. Une fois que l'assemblage est injecté est possible pour l'activer en invoquant une méthode spécifique. Les règles pour identifier la méthode sont héritées par le projet ManagedInjector et sont les suivantes:
Par exemple, pour injecter l'assemblage injecté à assemblage dans le processus avec PID 1234 , vous avez le hangar de course avec la commande suivante:
shed.exe --pid 1234 --exe InjectedAssembly.dll --inject
Avec l'option - Méthod, vous pouvez spécifier une méthode, à partir d' injection injectée.exe à invoquer.
Trouvez ci-dessous un exemple d'exécution:
Par défaut, le hangar jette à la fois le tas et les modules. Si vous ne voulez qu'un seul de celui-ci, spécifiez l'option --dump-heap pour vider uniquement les objets dans le tas ou les modules - dump pour vider uniquement les modules.
Le vidage du tas peut produire de nombreuses informations qui ne sont pas strictement utiles pour l'analyse. Vous pouvez le filtrer en utilisant deux fichiers:
BlackList.txt Ce fichier contient le préfixe de noms de types qui ne doit pas être enregistré
Whitelist.txt Ce fichier contient le préfixe de noms de types qui doit être enregistré même s'il est sur liste noire
Par exemple, si vous souhaitez filtrer tout l'espace de noms System.io , mais que vous êtes intéressé à journaliser System.io.MemoryStream , vous pouvez ajouter la première valeur à BlackList.txt et la seconde à Whitelist.txt .
Dans le dossier Exemples , vous trouverez trois projets différents que vous pouvez utiliser pour tester le hangar . Exemple:
Shed.exe --exe ..ExamplesConfigurationSampleConfigurationSample.exe
Une fois l'analyse terminée, le hangar imprimera où vous pourrez trouver le résultat, comme indiqué ci-dessous:
[+] Résultat enregistré sur C: Shed Result 7800
Si vous avez installé Visual Studio, exécutez simplement le fichier Build.bat Batch, il créera un fichier zip dans le dossier Build.
Copyright (C) 2017 Antonio Parata - @ S4TAN
Licence: Licence publique générale GNU, version 2 ou version ultérieure; Voir la licence incluse dans cette archive pour plus de détails.