Encontrar malware oculto en .NET

La recopilación de información no es una tarea fácil. En muchas fases, el pentester tiene que pasar por muchas herramientas para reunir mucha información. Hoy estamos hablando de una herramienta llamada SHED, para la extracción de información. Esta herramienta puede ser útil para extraer información de programación .NET. En muchas fases de pentesting, si el pentester tiene un software con código .NET, el pentester puede abrir el software fácilmente utilizando Shed, que da una visión general de qué información se almacena y ejecuta.

Según investigadores en seguridad en redes del Instituto Internacional de Seguridad Cibernética, Shed es útil en la fase inicial de análisis de malware.

La siguiente demostración fue realizada en Windows 10.

  • Descargue la herramienta desde: https://github.com/enkomio/shed/releases/tag/2.0.0
  • Descomprima la herramienta utilizando cualquier software de descompresión
  • Luego abra CMD como administrador. Para abrir, escriba cmd en el menú de inicio y haga clic derecho en el icono de cmd y luego haga clic en run as administrator. Vaya a la ubicación donde Shed se ha descomprimido. Escriba cd C:\Users\Username\Desktop\Shed
  • Escriba dir
  • Escriba Shed.exe –help
  • Luego para escanear archivos .NET exe, puede usar los archivos exe proporcionados en github: https://github.com/enkomio/shed
  • Después de descargar y descomprimir el archivo, abra el proyecto en Visual Studio. Debe configurarlo para abrir este proyecto, pues requiere .net framework 4.7.2
  • Si es necesario .net framework no está instalado. Luego vaya a: https://dotnet.microsoft.com/download/thank-you/net472
  • Después de descargar e instalar .net framework 4.7.2. Abra Visual Studio 2015 o cualquier versión de Visual Studio con el marco requerido
  • Y abra el proyecto como se muestra abajo
  • Después de abrir el programa como se muestra a continuación
  • Para comprobar si el framework .net está instalado
  • Elija cualquier programa (HelloWorld)
  • Haga clic derecho en el programa. Ir a propiedades. Compruebe .NET Framework como se muestra a continuación
  • Luego abre el código y luego haga clic en compilar o presione F6. Después de construir un exe se creará
  • Y ahora vaya a depurar la ubicación en el software. Vaya a C: \Users\Username\Desktop\shed-master\Tests\HelloWorld\bin\Debug
  • Copie el archivo exe a la ubicación de Shed (C:\Users\Username\Desktop\Shell) y luego vuelva a cmd donde se abrió Shed
  • Ir a CMD abierto de Shed
  • Escriba Shed.exe –exe HelloWorld.exe
  • La consulta anterior muestra los valores de cadena del programa .net. También muestra las DLL (Dynamic Link Library) y los módulos dinámicos
  • La información anterior muestra los DLL del programa. Esta herramienta se puede utilizar para analizar cualquier código de malware. Esta herramienta se puede utilizar en otras actividades de hacking
  • Ahora usaremos Shed para mostrar cómo inyectar una DLL en un proceso en ejecución. Usaremos un programa .net dado en Shed llamado WindowsFormHelloWorld. Compile este programa como lo hicimos anteriormente y genere WindowsFormHelloworld.exe y cópielo en el directorio derramado como lo hicimos anteriormente
  • Luego escriba WindowsFormHelloworld.exe
  • La consulta anterior iniciará el programa .net y mostrará su PID. Ahora este PID se puede utilizar en la inyección de una DLL
  • Para inyectar dll: Usted ha depurado dll presentado en código de ejemplo. Luego copie el archivo InjectAssembly.dll de
  • C:\Users\Username\Desktop\ shed-master \ Tests \ HelloWorld \bin\Depurar a
  • C: \Users\Desktop\Shed
  • Escriba Shed.exe –exe InjectAssembly.dll –inject –pid 10804
  • La consulta anterior ha inyectado la dll. Ahora para abrir el resultado, vaya a: C:\Users\ Username\Desktop\Shed\Result\14284
  • En los resultados, abra los registros donde puede ver la dll y la dll dinámica, valores de cadena. Como se muestra arriba en la primera consulta. Esta información puede ser utilizada en el análisis del exe.
  • Además crea un archivo .json. El archivo muestra los espacios de nombres de SystemIO. Referencias que se utilizan en la programación .net. Puedes separar esos espacios de nombres
  • La captura de pantalla de arriba muestra los espacios de nombres .net. Estos generalizan los espacios de nombres del sistema
  • El malware .net puede ofrecer software publicitario que también puede tomar capturas de pantalla de su escritorio. Este cobertizo puede ayudarte a encontrar malware en los programas .net
  • Esta información puede considerarse en el análisis de malware u otras actividades de hacking