El cobertizo es una aplicación que permite inspeccionar el tiempo de ejecución .NET de un programa para extraer información útil. Se puede utilizar para inspeccionar aplicaciones maliciosas para tener una primera visión general de qué información se almacena una vez que se ejecuta el malware.
El cobertizo es capaz de:
El cobertizo es una herramienta de línea de comandos. Para mostrar todas las opciones disponibles ejecutándose:
shed.exe --help
Para inspeccionar un proceso ya en ejecución, debe pasar el PID al arroyo . Ejemplo:
Shed.exe --pid 2356
Para inspeccionar un binario, el cobertizo debe ejecutarlo y adjuntarlo para inspeccionar el tiempo de ejecución. Ejemplo:
Shed.exe --exe malware.exe
También puede especificar la cantidad de tiempo (en milisegundos) para esperar antes de suspender el proceso. Esto permitirá que el programa tenga tiempo para inicializar sus propiedades. Ejemplo:
Shed.exe --timeout 2000 --exe malware.exe
Con el cobertizo es posible inyectar un ensamblaje de .NET en un proceso remoto gracias a la biblioteca ManagedInjector. Para hacerlo, es necesario especificar el PID del proceso y el exe para inyectar. Una vez que se inyecte el ensamblaje, es posible activarlo invocando un método específico. Las reglas para identificar el método son heredadas por el proyecto ManagedInjector y son las siguientes:
Por ejemplo, para inyectar el ensamblaje inyectedAssembly en el proceso con PID 1234 , tiene el cobertizo de ejecución con el siguiente comando:
shed.exe --pid 1234 --exe InjectedAssembly.dll --inject
Con la opción --method puede especificar un método, desde inyectedassembly.exe para invocar.
Encuentre a continuación un ejemplo de ejecución:
De forma predeterminada , volcado tanto el montón como los módulos. Si solo desea uno de eso, especifique la opción --dump-heap para descargar solo los objetos en el montón o los modos --dump para volcar solo los módulos.
Doblar el montón puede producir mucha información que no es estrictamente útil para el análisis. Puede filtrarlo usando dos archivos:
BlackList.txt Este archivo contiene el prefijo de nombres de tipos que no se debe registrar
whitelist.txt Este archivo contiene el prefijo de nombres de tipos que debe registrarse incluso si está en la lista negra
Por ejemplo, si desea filtrar todo el espacio de nombres System.io , pero está interesado en registrar System.io.MemoryStream , puede agregar el primer valor a BlackList.txt y el segundo a Whitelist.txt .
En la carpeta de ejemplos encontrará tres proyectos diferentes que puede usar para probar el cobertizo . Ejemplo:
Shed.exe --exe ..ExamplesConfigurationSampleConfigurationSample.exe
Cuando se complete el análisis, el cobertizo imprimirá donde puede encontrar el resultado, como se muestra a continuación:
[+] Resultado guardado en c: shed resultado 7800
Si ha instalado Visual Studio, simplemente ejecute el archivo de lotes Build.bat, creará un archivo zip dentro de la carpeta de compilación.
Copyright (c) 2017 Antonio Parata - @S4tan
Licencia: Licencia pública general de GNU, versión 2 o posterior; Consulte la licencia incluida en este archivo para más detalles.