
.NET Runtime-Inspektor
Shed ist eine Anwendung, die es ermöglicht, die .NET-Laufzeit eines Programms zu inspizieren, um nützliche Informationen zu extrahieren. Sie kann verwendet werden, um schädliche Anwendungen zu inspizieren, um einen ersten allgemeinen Überblick darüber zu erhalten, welche Informationen gespeichert werden, sobald die Malware ausgeführt wird.
Shed ist in der Lage:
Shed ist ein Befehlszeilentool. Um alle verfügbaren Optionen anzuzeigen, führen Sie aus:
shed.exe --help
Um einen bereits laufenden Prozess zu inspizieren, müssen Sie die PID an Shed übergeben. Beispiel:
Shed.exe --pid 2356
Um eine Binärdatei zu inspizieren, muss Shed sie ausführen und sich an sie anhängen, um die Laufzeit zu inspizieren. Beispiel:
Shed.exe --exe malware.exe
Sie können auch die Wartezeit (in Millisekunden) angeben, bevor der Prozess angehalten wird. Dies gibt dem Programm Zeit, seine Eigenschaften zu initialisieren. Beispiel:
Shed.exe --timeout 2000 --exe malware.exe
Mit Shed ist es möglich, eine .NET-Assembly in einen entfernten Prozess einzuschleusen, dank der ManagedInjector-Bibliothek. Dazu müssen die PID des Prozesses und die einzufügende exe angegeben werden. Sobald die Assembly eingeschleust wurde, kann sie durch Aufrufen einer bestimmten Methode aktiviert werden. Die Regeln zur Identifizierung der Methode werden vom ManagedInjector-Projekt übernommen und lauten wie folgt:
Um beispielsweise die Assembly InjectedAssembly in den Prozess mit der PID 1234 einzuschleusen, führen Sie Shed mit dem folgenden Befehl aus:
shed.exe --pid 1234 --exe InjectedAssembly.dll --inject
Mit der Option --method können Sie eine Methode aus InjectedAssembly.exe angeben, die aufgerufen werden soll.
Nachfolgend finden Sie ein Beispiel für die Ausführung:

Standardmäßig dumpen Shed sowohl den Heap als auch die Module. Wenn Sie nur eines davon möchten, geben Sie die Option --dump-heap an, um nur die Objekte im Heap zu dumpen, oder --dump-modules, um nur die Module zu dumpen.
Das Dumpen des Heaps kann viele Informationen liefern, die für die Analyse nicht unbedingt nützlich sind. Sie können es mit zwei Dateien filtern:
blacklist.txt Diese Datei enthält die Präfixe von Typnamen, die nicht protokolliert werden dürfen
whitelist.txt Diese Datei enthält die Präfixe von Typnamen, die auch dann protokolliert werden müssen, wenn sie auf der Blacklist stehen
Wenn Sie beispielsweise den gesamten System.IO-Namespace filtern möchten, aber daran interessiert sind, System.IO.MemoryStream zu protokollieren, können Sie den ersten Wert in blacklist.txt und den zweiten in whitelist.txt hinzufügen.
Im Ordner Examples finden Sie drei verschiedene Projekte, die Sie zum Testen von Shed verwenden können. Beispiel:
Shed.exe --exe ..\Examples\ConfigurationSample\ConfigurationSample.exe
Wenn die Analyse abgeschlossen ist, gibt Shed aus, wo Sie das Ergebnis finden, wie unten gezeigt:
[+] Result saved to C:\Shed\Result\7800
Wenn Sie Visual Studio installiert haben, führen Sie einfach die Batch-Datei build.bat aus. Sie erstellt eine Zip-Datei im build-Ordner.
Copyright (C) 2017 Antonio Parata - @s4tan
Lizenz: GNU General Public License, Version 2 oder später; siehe die im Archiv enthaltene LICENSE-Datei für Details.