Ataques Dirigidos – APT’s – Códigos Maliciosos III (Tool NeoKanji)

En nuestras primeras entradas hemos hecho un repaso de historia y el significado de las APT’s. Como articulo final me pareció acorde dar un cierre con una herramienta, la misma pretende utilizar de forma inteligente los datos que son proporcionados producto de la recolección de distintos tipos de muestras.

El objetivo de este ejercicio es poder cruzar y relacionar los datos proporcionados por el malware. De esa forma podremos tener lectura sobre como se están utilizando, y que parecido pueden llegar a tener.

En concreto, reconocer acciones determinadas o patrones, sus, dll’s fecha de compilación, nombre de la muestra, y Relacionarlas. (usaremos bastante este termino.)

Antes de iniciar con los detalles de usabilidad de la herramienta, es acorde dar una breve explicación de lo que necesitaremos para llevar a cabo nuestro análisis.

Que es NeoKanji?

Esta Tool utiliza distintos complementos para ayudarnos a la visualizacion y correlacionar datos , en este caso amenazas y campañas de distintos APT’s y examples.

Nos ayudaría a poder cruzar sus propiedades y graficarlas (md5,sha256, macros, strings, name malware, file_type, etc). Los datos deben estar escritos en Cypher y formato JSON para luego ser cargados en la herramienta.

Que necesitamos para utilizar NeoKanji?

Docker. https://docs.docker.com/engine/installation/

NEO4J.  https://neo4j.com/docs/operations-manual/current/installation/linux/debian/

Python (y bibliotecas pyneo2)

Referencias

https://www.ekoparty.org/charla.php?id=759 Presentación de la herramienta EKOparty // Luciano Martins y Ruth Esmeralda Barbacil

https://www.welivesecurity.com/la-es/2017/09/28/rastrear-grupos-de-apt/

https://github.com/codexgigassys/neokanji (Instrucciones de Instalación y configuración.)

Que es Neoj4?

Es una base que relaciona datos en formato gráficos, a su vez entre nodos, sus propiedades y los relaciona entre ellos. (node labels,relationship types,property keys).

Escriba en Java y se integra con varios lenguajes; Python, Ruby, .Net, PHP, se monta en un servidor Jetty. Podrás modelar datos y presentarlo en distintas vistas. (Graph, Rows, Text, Code).

https://www.adictosaltrabajo.com/tutoriales/neo4j-first-steps/ (Instructivo en español)

https://neo4j.com/ (Sitio Oficial)

https://neo4j.com/ developer/cypher-query-language/ (Optimizan el consultas)

https://github.com/neo4j/neo4j

Antes de iniciar con algunos ejemplos prácticos del uso es recomendable que lean previamente alguna guía para comprender como se programan las estructuras de los nodos y gráficos (lenguaje cypher). Entendiendo la estructura y usando “CREATE” podrán escribir un breve ejemplo para posteriormente utilizar “MATCH” y traer los datos de interés.

Dentro del entorno de navegación también vamos a notar que nos permite utilizar los comandos muy parecidos a SQL, o bien ir seleccionando dependiendo el interés que tengamos en relacionar los valores.

Por otra parte recuerden leer la documentación que les corresponda al sistema operativo que estén utilizando. Por nuestro lado vamos a presentar los ejemplos con Kali Linux.

Para levantar nuestro NEO4j vamos a tipear en la terminal el siguiente comando:

docker run \
    --publish = 7474: 7474 --publish = 7687: 7687 \
    --volume = $ HOME / neo4j / data: / data \
    --volume = $ HOME / neo4j / logs: / logs \
    neo4j: 3.0

1

Si todo nos va bien, la consola nos confirma la conexión remota vía http://0.0.0.0:7474/ 

2

El primer inicio de sesión se hace con las credenciales por default que proporciona la herramienta, posteriormente se validaran con la password que han modificado. En caso de tener inconvenientes para acceder luego del primer inicio, favor de recurrir a la documentación siguiente: http://zacharywolffs.ghost.io/2015/04/08/changing-password-in-neo4j-v2-20/ (existen 2 o 3 variantes para restablecer la contraseña)

Es importante mencionar que antes de interactuar con NeoKanji, deben modificar el archivo config.py de lo contrario no podrán generar el input con los JSON de interés.

Afortunadamente para los ansiosos –como en mi caso- que quieren ver resultados rápidamente, tenemos algunos JSON de muestra que nos proporcionan a modo de test.

Estos archivos JSON hacen referencia a 2 tipos de campañas APT (28y29) Gracias a Ruth @33root por responder rápidamente a nuestro pedido sobre este punto.

Deben utilizar el siguiente comando para la subida :

python neokanji.py -i < carpeta de entrada >

Obtendrán la siguiente respuesta:

3

Y ahora? Vamos a mostrar algunos ejemplos que hemos ejecutado solo a modo de tener una lectura bastante simple sobre el uso de NeoKanji.

En el siguiente menú podrán ir volcando sus gráficos, tipeando el “MACH” y “RETURN” o bien pinchando en cada tipo de dato que uno quiera traer:

4

Podran notar que se dividen los valores que hemos explicado anteriormente:

Node / Relationship Types / Property Keys 

En mi caso seleccioné: Malware File_Type y hash_name ;

MATCH p=()-[r:has_name]->() RETURN p LIMIT 25

5

Es importante mencionar que los gráficos van tomando forma a medida que vayamos desplegando sus propiedades, recuerden que la idea es relacionar “datos con sus datos”. Entonces…

6

Si expandimos valores, de un nodo podremos ver sus propiedades, como ser; fecha compilación, file_name, file_type, signature…etc

7

Esto tendrá sentido dependiendo el tipo de interés que tengamos sobre la búsqueda. Notaran que a medida que van relacionando y viendo como se comporta el gráfico podrán obtener una mejor experiencia. Aquí solo estamos viendo imágenes, es conveniente que tengan su propia visión.

8

9

Acá vemos como las distintas muestras, cuales tienen relación una con otra, por los valores que hemos comentado anteriormente. Se puede volver complejo e interesante a la vez.

10

Seguiremos atentos la evolución de NeoKanji y veremos con que nos vuelven a sorprender. Solo agradecer a sus creadores@clucianomartins y @33root

Hasta la próxima!

Autor: malwargsecurity

malwargsecurity un proyecto personal, sin fines de lucro y para la comunidad.

Un comentario en “Ataques Dirigidos – APT’s – Códigos Maliciosos III (Tool NeoKanji)”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s