Buscar este blog

viernes, 1 de febrero de 2013

WireShark, uso de filtros para detectar actividad maliciosa

Wireshark es una herramienta que nos permite analizar los paquetes de datos de una red y nos da información sobre las conexiones que se llevan a cabo.
El uso de esta herramienta puede parecer compleja pero si la conocemos su interfaz y su manera de operar, es de gran utilidad. Podemos hacer distintos usos de Wireshark, pero dentro del análisis dinámico de códigos maliciosos nos permite detectar conexiones ocultas del malware hacia direcciones remotas para obtener otros archivos, o para reportarse a un panel de control en caso de una botnet, entre otras variantes.
Vamos a tratar el primer caso con lo que se procede a infectar un sistema en un entorno controlado, una máquina virtual. Entonces podremos ejecutar WireShark y seleccionar la interfaz de esta máquina para capturar sus paquetes de red.


Uso de filtros
Cuando iniciamos la captura, podemos filtrar los paquetes que capturemos. Lo primero, podemos reconocer a que servidores se conectó a través de las peticiones DNS. Para esto podemos filtrar por DNS, escribiendo DNS en el campo de los filtros y aplicar, serán visibles todas las resoluciones de nombres en direcciones IP. En el caso del malware, permite reconocer con que servidores se conecta. A continuación puede observarse una captura: 




Otro aspecto a controlar serían las peticiones realizadas, filtro “http.request” es posible obtener todos los GET y POST que fueron realizados durante el periodo de captura. Estas peticiones son muy usadas por los malware para enviar información del sistema infectado. Podemos ver un análisis real sobre un malware que obtiene datos y archivos desde un servidor remoto:



En el caso de que el malware use el protocolo SMTP para propagarse a través de correo electrónico, usaremos el filtro SMTP o incluso es posible filtrar los paquetes para observar, por ejemplo, el remitente del correo. Esto se realiza a través del filtro “smtp.req.parameter && contains “FROM“”. De la misma forma, es posible visualizar aquellos paquetes que contienen el cuerpo del mensaje. Esta tarea puede realizarse a través de filtro “smtp.data.fragment”. A continuación puede visualizarse una captura con uno de los filtros aplicado:


Cuando vamos obteniendo paquetes después de filtrar, podemos obtener toda la secuencia del paquete completo si es necesario. Para ello, solo es necesario colocar el cursor sobre el propio paquete y en el menú contextual elegir la opción de “follow tcp stream”. De esa forma se podrá visualizar el paquete completo tal como se muestra en la siguiente imagen:



Los filtros son de gran utilidad y pueden ser aplicados en conjunto como parte de operaciones lógicas. Pueden utilizarse sobre la captura o especificarse previamente para que solo capturen lo especificado en el propio filtro. Este tipo de herramientas no solo es utilizado en el análisis de malware sino también en el estudio de protocolos de red, la búsqueda de vulnerabilidades y demás aplicaciones.


Fuente: Eset-la

No hay comentarios:

Publicar un comentario