Malcom – Malware Communication Analyzer

En un análisis de malware, no solo importa si está empaquetado. Si la muestra está activa, que cambios realiza a nivel de sistema operativo. Cual es el vector de ataque que emplea el atacante para su distribución etc..

Hay una parte muy importante y que muchas veces nos cuesta representar en un informe, se trata de el análisis de tráfico. Con el análisis de tráfico somos capaces de identificar nuevas ip’s o dominios incluidos en el caso, también somos capaces de obtener nuevos binarios si se trata de un dropper, por ejemplo.

Pues el proyecto de hoy se trata sobre la parte de visualización de tráfico entre otras cosas.

¿Que es Malcom?

Malcom es una herramienta que se utiliza para el análisis del tráfico y de comunicaciones de malware. También puede ser una gran fuente para reunir información de inteligencia, ya que fácilmente se puede consultar la relación entre los elementos que se representan visualmente.

Usaríamos Malcom para tres propósitos principales:

Determinar rápidamente si un host, IP o URL es “un malo conocido” (es decir, si se ha marcado como malicioso por otros sitios web o fuentes).

Obtener  inteligencia sobre dos elementos diferentes. Por ejemplo, se puede ver que varios hosts diferentes apuntan a una misma dirección IP (o un AS), que se ha visto en ataques anteriores. Finalmente, también se puede ver que esos mismos dominios o IP han sido registrados por tres direcciones de correo electrónico diferentes, que también se han visto en los kits de phishing.

Obtener una visión detallada de la clase de patrones de tráfico de una red de un host que se está mostrando. ¿Está haciendo ping a  determinadas direcciones IP? ¿Está enviando el tráfico SMTP? Es parte de una botnet? ¿Qué tipo de infraestructura de C & C se está utilizando?

Para saber como usarlo, consultad la documentación, está todo súper detallado.

Añadiendo feeds a Malcom

Una de las cosas que me han parecido mas interesantes es el hecho de poder añadir feeds a Malcom, con estos feeds que añadimos, poder aglutinar mas información que una vez tratada convertiremos en INTELIGENCIA.

Ejemplo de añadir ZeusTracker como fuente de información

class ZeusTrackerBinaries(Feed):

	def __init__(self, name):
		super(ZeusTrackerBinaries, self).__init__(name)</pre>

Iniciamos la clase en un constructor 😉

Para que se vaya actualizando…

def update(self):
	try:
		feed = urllib2.urlopen("https://zeustracker.abuse.ch/monitor.php?urlfeed=binaries")
		self.status = "OK"
	except Exception, e:
		self.status = "ERROR: " + str(e)
		return False

	children = ["title", "link", "description", "guid"]
	main_node = "item"

	tree = etree.parse(feed)
	for item in tree.findall("//%s"%main_node):
		dict = {}
		for field in children:
			dict[field] = item.findtext(field)

		self.analyze(dict)

	return True</pre>

Después de importar los datos podremos ver lo siguiente:

687474703a2f2f6469726563742e746f6d63686f702e6d652f6d616c636f6d2f646174617365742d6d61696e2e706e67

Un ejemplo de como se mostraría el tráfico en modo gráfico:

traffic

Un ejemplo súper bueno es mostrar el tráfico de un Zeus-P2p

687474703a2f2f6469726563742e746f6d63686f702e6d652f6d616c636f6d2f7032702e706e67

El proyecto está preparado para ver el PAYLOAD de una petición en concreto.

687474703a2f2f6469726563742e746f6d63686f702e6d652f6d616c636f6d2f736e69666665722d7061796c6f61642d636f6e74656e74732e706e67

Una de las ideas que lanzo es poder combinar Malcom con Cuckoo.

Enlaces de interés:

[+]https://github.com/tomchop/malcom

[+]https://github.com/tomchop/malcom/wiki/Quickstart

[+]https://github.com/tomchop/malcom/wiki/Adding-feeds-to-Malcom


Autor: Seifreed

Formado en un equipo de lucha contra el fraude. He trabajado implementando la protección y prevención del fraude en varios clientes dentro del sector bancario nacional e internacioal. Mi trabajo consiste en encontrar soluciones a los problemas actuales y futuros de las entidades financieras respecto al código malicioso y el fraude. Especialidades como el análisis de malware, análisis forense, ingeniería inversa o tareas de hacking ético, forman parte de mis tareas diarias. Soy ponente ien eventos nacionales (No cON Name, Owasp, Navaja Negra) e internacionales (DraonJAR CON - Colombia). Soy profesor asociado en La Salle enseñando el curso MPWAR (Master in High Performance Web Programming) y el máster de ciberseguridad de La Salle (MCS. Master in Cybersecurity) Miembro de asociaciones y grupos de research como la HoneyNet Project, Owasp, SySsec etc.. También soy el organizador de las conferencias Hack&Beers en Barcelona

Compartir este Artículo
  • Exelente post y muy buena info, recien decubor le blog pero esta genial…

  • Muy buena página, muchos detalles y buena explicación como nos gusta a nosotros los ingenieros.
    Felicitaciones

  • para volver ilegible información considera importante. La información una vez encriptada sólo puede leerse aplicándole una clave. Se trata de una medida de seguridad que es usada para almacenar o transferir información delicada que no debería ser accesible a terceros. Pueden ser contraseñas , nros. de tarjetas de crédito, conversaciones privadas, etc. Para encriptar información se utilizan complejas fórmulas matemáticas y para desencriptar, se debe usar una clave como parámetro para esas fórmulas. El texto plano que está encriptado o cifrado se llama criptograma.

Siguenos!

O Puedes Subscribete

ANTES DE

SALIRTE ...

NO TE

ARREPENTIRÁS

!Gracias¡

NO OLVIDES NUESTRAS REDES SOCIALES