
Инспектор среды выполнения .NET
Shed — это приложение, которое позволяет инспектировать среду выполнения .NET программы для извлечения полезной информации. Его можно использовать для анализа вредоносных приложений, чтобы получить общее представление о том, какие данные сохраняются после выполнения вредоносной программы.
Shed способен:
Shed — это инструмент командной строки. Чтобы отобразить все доступные опции, выполните:
shed.exe --help
Для инспекции уже запущенного процесса необходимо передать Shed его PID. Пример:
Shed.exe --pid 2356
Для инспекции бинарного файла Shed необходимо его выполнить и подключиться к нему для изучения среды выполнения. Пример:
Shed.exe --exe malware.exe
Вы также можете указать время ожидания (в миллисекундах) перед приостановкой процесса. Это позволит программе инициализировать свои свойства. Пример:
Shed.exe --timeout 2000 --exe malware.exe
С помощью Shed можно внедрить .NET-сборку в удаленный процесс благодаря библиотеке ManagedInjector. Для этого необходимо указать pid процесса и exe-файл для внедрения. После внедрения сборку можно активировать, вызвав определённый метод. Правила определения метода наследуются из проекта ManagedInjector и таковы:
Например, чтобы внедрить сборку InjectedAssembly в процесс с PID 1234, нужно выполнить Shed со следующей командой:
shed.exe --pid 1234 --exe InjectedAssembly.dll --inject
С помощью опции --method можно указать метод из InjectedAssembly.exe для вызова.
Ниже приведён пример выполнения:

По умолчанию Shed выгружает как кучу, так и модули. Если вам нужен только один из этих параметров, укажите опцию --dump-heap для дампа только объектов в куче или --dump-modules для дампа только модулей.
Дамп кучи может создать много информации, не всегда полезной для анализа. Вы можете отфильтровать её с помощью двух файлов:
blacklist.txt — этот файл содержит префиксы имён типов, которые не должны логироваться
whitelist.txt — этот файл содержит префиксы имён типов, которые должны логироваться, даже если они в чёрном списке
Например, если вы хотите отфильтровать все пространства имён System.IO, но хотите логировать System.IO.MemoryStream, добавьте первое значение в blacklist.txt, а второе — в whitelist.txt.
В папке Examples вы найдёте три различных проекта, которые можно использовать для тестирования Shed. Пример:
Shed.exe --exe ..\Examples\ConfigurationSample\ConfigurationSample.exe
По завершении анализа Shed выведет, где найти результат, как показано ниже:
[+] Результат сохранён в C:\Shed\Result\7800
Если установлена Visual Studio, просто запустите пакетный файл build.bat; он создаст zip-файл в папке build.
Copyright (C) 2017 Antonio Parata - @s4tan
Лицензия: GNU General Public License, версия 2 или более поздняя; смотрите LICENSE, включённый в этот архив, для получения подробной информации.