Tutoriales y Manuales
Entradas Mensuales
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
▼
2015
(Total:
445
)
-
▼
diciembre
(Total:
33
)
-
Se ha suicidado Ian Murdock, fundador de Debian GN...
-
Roban el código fuente del buscador Yandex, el Goo...
-
Ofrecen dinero a Raspberry por instalar malware
-
Fallo de seguridad en Steam
-
WhatsApp te avisará si espían tus conversaciones
-
LiveStream ha sido hackeado
-
Cómo analizar malware en .NET con 4 herramientas
-
Francia declara la guerra al retoque digital en lo...
-
Anonymous México amenaza a un menor por vejar a un...
-
Error 451: el nuevo código para la censura en Inte...
-
La FTC sentencia que Oracle tendrá que advertir de...
-
Lumia 550, el Windows 10 Phone de 129 euros llega ...
-
Hackean la comunidad de fans de Hello Kitty y filt...
-
Facebook empezará a utilizar HTML5 en sus vídeos
-
Se puede hackear Grub de Linux pulsando Retroceso ...
-
Google Zeitgeist 2015: estos han sido los términos...
-
Vulnerabilidad crítica en Joomla en las versiones ...
-
CryEngine llegará para entornos Linux en breve
-
Este smartphone tiene una batería que dura 10 días
-
Twitter notifica a algunos usuarios que podrían ha...
-
El fundador de Pirate Bay: "He renunciado"
-
Encuentran casi 10.000 fallos en unos 2.000 dispos...
-
AMD confirma que las futuras tarjetas gráficas inc...
-
Cada mes se roban más de 77.000 cuentas de Steam
-
Netflix publica su primer ranking de velocidad en ...
-
Sale a la venta el portátil más potente con dos ta...
-
QVD: Escritorio virtual seguro, confiable, y libre
-
Speedtest publica su test de velocidad sin Flash
-
Asus ZenFone Max anunciado oficialmente con una ba...
-
Ya no se necesita invitación para comprar un OnePl...
-
WD presenta un disco duro de 10 TB con helio
-
Adobe acepta el final de Flash y empieza a sugerir...
-
Varios millones de dispositivos comparten las mism...
-
- ► septiembre (Total: 47 )
-
▼
diciembre
(Total:
33
)
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
seguridad
(
391
)
privacidad
(
351
)
google
(
323
)
ransomware
(
321
)
vulnerabilidad
(
269
)
Malware
(
250
)
android
(
232
)
Windows
(
225
)
tutorial
(
216
)
cve
(
211
)
manual
(
201
)
software
(
199
)
hardware
(
184
)
linux
(
120
)
twitter
(
109
)
ddos
(
86
)
Wifi
(
81
)
WhatsApp
(
77
)
herramientas
(
75
)
cifrado
(
74
)
hacking
(
72
)
app
(
63
)
sysadmin
(
60
)
nvidia
(
50
)
Networking
(
49
)
ssd
(
49
)
youtube
(
42
)
firmware
(
39
)
hack
(
39
)
office
(
39
)
adobe
(
38
)
firefox
(
35
)
contraseñas
(
32
)
eventos
(
32
)
antivirus
(
31
)
cms
(
30
)
flash
(
28
)
anonymous
(
27
)
juegos
(
26
)
programación
(
25
)
MAC
(
24
)
multimedia
(
22
)
apache
(
21
)
exploit
(
21
)
javascript
(
21
)
Kernel
(
19
)
ssl
(
18
)
SeguridadWireless
(
17
)
documental
(
16
)
conferencia
(
15
)
Forense
(
14
)
lizard squad
(
14
)
Debugger
(
13
)
técnicas hacking
(
13
)
auditoría
(
12
)
delitos
(
11
)
metasploit
(
11
)
Virtualización
(
10
)
adamo
(
9
)
reversing
(
9
)
Rootkit
(
8
)
Ehn-Dev
(
7
)
MAC Adress
(
6
)
antimalware
(
6
)
oclHashcat
(
5
)
Entradas populares
-
Nueva filtración masiva de datos. Esta vez no afecta a una empresa del Ibex, como ha ocurrido en las dos últimas semanas, pero sí a uno de l...
-
ShinyHunters, asegura haber abierto una brecha de seguridad en los servidores de la empresa de venta de entradas Ticketmaster , encargada d...
-
El Departamento de Justicia de Estados Unidos, en colaboración con el FBI y agencias internacionales, desmanteló la botnet 911 S5 , conside...
Cómo analizar malware en .NET con 4 herramientas
viernes, 25 de diciembre de 2015
|
Publicado por
el-brujo
|
Editar entrada
Los códigos maliciosos, claro está, son programas, y como tales se crean
utilizando un lenguaje de programación. Si bien es común encontrarnos
con malware desarrollado en Delphi, C o C++ entre otros, también existen amenazas que utilizan lenguajes interpretados como el caso de Python, Java
o .NET. El análisis de malware para cada uno de estos lenguajes tiene
sus diferencias y es por ello que en este post veremos diferentes
herramientas que nos permitirán el análisis de malware u otros programas
en .NET, ya sea que hayan sido programados en VB.NET o en C#.
El malware desarrollado en .NET, y en particular las diferentes familias detectadas como variantes de MSIL/Injector, crecieron de manera notable durante los últimos años. Entre los tipos de amenazas más comunes que vemos desarrolladas con esta tecnología se encuentran diferentes tipos de BitCoinMiners, packers, o protectores que ocultan en su interior diferentes variantes de códigos maliciosos desarrollados en otras tecnologías. El siguiente gráfico muestra el crecimiento de malware en MSIL durante los últimos años:
Tal como muestra el gráfico, desde la tercera parte de 2014 han aumentado las detecciones de estas familias, ya sea en el rol de ocultar lo que hacen otras amenazas o robar información de los usuarios. En base a ello trabajaremos en cómo analizarlas o qué herramientas utilizar para hacerlo.
El malware desarrollado en .NET, y en particular las diferentes familias detectadas como variantes de MSIL/Injector, crecieron de manera notable durante los últimos años. Entre los tipos de amenazas más comunes que vemos desarrolladas con esta tecnología se encuentran diferentes tipos de BitCoinMiners, packers, o protectores que ocultan en su interior diferentes variantes de códigos maliciosos desarrollados en otras tecnologías. El siguiente gráfico muestra el crecimiento de malware en MSIL durante los últimos años:
Tal como muestra el gráfico, desde la tercera parte de 2014 han aumentado las detecciones de estas familias, ya sea en el rol de ocultar lo que hacen otras amenazas o robar información de los usuarios. En base a ello trabajaremos en cómo analizarlas o qué herramientas utilizar para hacerlo.
Al momento de compilar un programa desarrollado con el framework de .NET en lenguajes como VB.NET o en C#, se genera mediante el Common Language Infrastructure un código intermedio conocido como CIL (por su siglas en inglés de Common Intermediate Language). Este es interpretado por el framework
de Microsoft. Salvando las diferencias técnicas, es un proceso similar
al que sucede cuando se compila el código en Java para obtener los .jar o el .dex en el caso de que se esté programando para Android.
Debido a que el programa que se compila queda
en un lenguaje intermedio, es posible a través de diferentes
herramientas obtener un código que se asemeje bastante al original y en
determinados casos que sea prácticamente el mismo. Este tipo de
situaciones son de gran ayuda para reducir el tiempo de análisis
requerido y así comprender el funcionamiento de una amenaza.
.NET en IDA Pro
IDA Pro
es una de las herramientas predilectas para el análisis de malware o el
estudio de cualquier otro programa que se quiera analizar estáticamente.
Ahora, cuando abrimos un archivo en IDA Pro que fue desarrollado por ejemplo en C# y detectado por ESET como MSIL/Injector.LES, el desensamblador ya identifica por defecto que es assembly de .NET:
Si dejamos la recomendación por defecto y procedemos a desensamblar el
archivo podremos ver cuáles son las funciones presentes en el programa:
Sin embargo, cuando intentemos observar el código desensamblado de las mismas, lo que veremos serán las instrucciones de CIL, que al igual que aprender assembler, o el bytecode de Java llevan su tiempo de aprendizaje:
Si bien es posible analizar el flow
del programa, al analizar este tipo de archivos existen otras
herramientas que nos brindan una aproximación más directa,
permitiéndonos ver el código en un lenguaje de más alto nivel y hasta
incluso ejecutar las amenazas con un debugger, instrucción por instrucción.
.NET Reflector
Esta herramienta desarrollada por Red-Gate
nos permite decompilar cualquier programa desarrollado en .NET,
modificarlo ya sea para solucionar bugs o estudiar su comportamiento.
Desde el sitio se puede descargar una versión de prueba de 14 días o
comprar la herramienta. También viene con un plugin para Visual Studio.
Una vez que terminaron de instalar la herramienta, la primera vez que la ejecutan podrán elegir cuál es el tipo de assembly por defecto con el que quieren trabajar:
Ahora, si abrimos el mismo programa que vimos en el caso anterior, además de ver sus métodos y recursos podremos ver el código
en el lenguaje que deseemos. Esto de por sí simplifica el entendimiento
del código malicioso y en determinados casos nos ahorra una gran
cantidad de tiempo en el análisis:
Además de ver el código, en C# en este caso podríamos elegir entre Visual Basic, IL, MC++ o F#.
.NET Reflector también nos permite analizar un método y ver desde dónde
se lo invoca o cual sería la secuencia de ejecución que tendría.
ILSpy
La tercera herramienta que veremos en esta entrada, es de código abierto y está disponible en el repositorio de GitHub ILSpy.
Este analizador de aplicaciones en .NET y desensamblador también
permite extender sus funcionalidades a través de la instalación o
creación de plugins.
En sus funciones básicas es similar a la
herramienta que vimos anteriormente. Es flexible y liviana, sumado a que
no es necesario instalarla ya que se puede bajar el standalone, o clonar su repositorio de GitHub e incluso modificarla según nuestras necesidades.
Al abrir la amenaza con la cual venimos trabajando, vemos la información de las librerías correspondientes al framework como así también la estructura interna del programa, similar a lo que vimos con .NET Reflector:
Al pararnos sobre un método o clase podemos
analizar su contenido y ver dónde se asigna, se accede o se utiliza, lo
que puede simplificar en gran parte un análisis estático. Hasta este
punto, a excepción de IDA Pro, que también es un debugger, ninguna herramienta nos dejaría analizar el malware de manera dinámica.
Si quisiéramos ejecutar un análisis dinámico
podríamos utilizar herramientas como las que ya hemos visto, sin
embargo, la última herramienta que vamos a ver nos permite extender o
simplificar aún más nuestras acciones.
dnSpy
La cuarta herramienta que veremos en este post es dnSpy, un fork
de la anteriormente presentada ILSpy. En cuanto a la estética, nos
permite manejar diferentes combinaciones de colores, pero eso no es todo
su potencial.
La principal diferencia o valor agregado es que incluye un debugger
para el código que desensamblamos, lo que brinda la oportunidad de
hacer el análisis a un nivel un poco más alto que si utilizáramos OllyDbg, Immunity Debugger o IDA Pro
con este tipo de tecnologías. No va a ser la solución a todos los casos
pero sí de gran ayuda al llegar el momento de analizar protectores, u
otras amenazas que están desarrolladas en las tecnologías de .NET.
Cuando seleccionamos el programa en .NET que queremos analizar y lo
inicializamos, se detendrá la ejecución y nos devolverá el control al
inicio del proceso. En este punto podremos comenzar a debuggear la aplicación y así responder a las preguntas que nos pudiesen haber quedado, definiendo los breakpoints que nos interesen y controlando la ejecución:
El objetivo de presentar estas herramientas es
compartir con ustedes algunas maneras de simplificar el análisis de
determinados tipos de amenazas. Como comentamos al principio el malware
desarrollado en tecnologías basadas en .NET se incrementó de manera considerable
en el último tiempo y es por ello que hay que saber qué herramientas
utilizar para su análisis. Esto nos ayudará a minimizar los tiempos de
respuesta.
De todas formas, aprender a utilizar las
herramientas es solo parte del trabajo; aún queda mucho por hacer y
cosas por conocer. Para aquellos que quieran saber más sobre análisis de
malware en .NET les recomiendo leer la investigación que Marcim Hartung presentó en Virus Bulletin 2015,
Fuente:
Enviar por correo electrónico
Escribe un blog
Compartir con Twitter
Compartir con Facebook
Compartir en Pinterest
![](https://1.bp.blogspot.com/-t7tmKm7jliI/XyWq2KBU7yI/AAAAAAAB7xA/wwws-w9MJ_gLJN46AQTe4aviYGBsICljQCLcBGAsYHQ/s1600/PostTagIcon.png)
0 comentarios :
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.