Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cosa-nostra — Cosa Nostra, un kit de herramientas FOSS de clusterización de malware basado en grafos. | Kitploit
Herramientas/GitHubGitHub/joxeankoret/cosa-nostra
Análisis EstáticoIngeniería InversaAnálisis ForenseAnálisis de MalwareAnálisis de BinariosAprendizaje y Educación
GitHubjoxeankoret/cosa-nostra

cosa-nostra

Cosa Nostra, un kit de herramientas FOSS de clusterización de malware basado en grafos.

Ver Repositorio
231552hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Cosa Nostra

Cosa Nostra es un conjunto de herramientas de agrupamiento de software de código abierto centrado en el análisis de malware. Puede crear árboles filogenéticos de muestras de malware binarias que son estructuralmente similares. Fue lanzado inicialmente durante SyScan360 Shanghái (2016).

Básicamente lo mantengo desde 2016 para mi único usuario, que resulta ser un amigo... Bueno.

Primeros pasos

Herramientas de terceros requeridas

Para usar Cosa Nostra necesitarás una versión de Python 3.X, así como una de las siguientes herramientas para realizar el análisis de código:

  • IDA Escrito en C++. Soporta el análisis de una gran cantidad de tipos de ejecutables que probablemente nunca hayas oído mencionar. Producto comercial. Solo se admiten las versiones 7.X.
  • Radare2 Escrito en C puro. Igual que IDA, con soporte para CPUs y formatos binarios extremadamente raros. ¡Además, es de código abierto!

Analizando binarios

Una vez que hayas instalado cualquiera de las herramientas mencionadas anteriormente, necesitarás usar la herramienta batch adecuada para analizar las muestras de malware, como en el ejemplo a continuación:

root@kitploit:~
$ cd $COSA_NOSTRA_DIR
$ /path/to/ida64 -B -A -S/full/path/to/ida_batch.py example.exe

O

root@kitploit:~
$ cd $COSA_NOSTRA_DIR
$ python r2_batch.py example.exe

Automatizando el análisis de un conjunto de datos de malware

La forma más fácil de analizar un conjunto de datos de malware es simplemente ejecutar un comando como el siguiente ejemplo:

root@kitploit:~
$ find /your/malware/dataset/path -type f -exec python r2_batch.py {} ';'

Se puede hacer en paralelo usando la herramienta "GNU Parallel", como en el siguiente ejemplo:

root@kitploit:~
$ find /your/malware/dataset/path -type f | parallel -j 8 ida64 -B -A -S/path/to/ida_batch.py {}

En el ejemplo anterior, se lanzarán un total de 8 procesos pyew_batch en paralelo.

Configuración de la base de datos

Después de analizar las muestras de malware, si el análisis fue exitoso, los datos del grafo de llamadas para cada muestra se almacenarán, por defecto, en una base de datos SQLite llamada "db.sqlite". Puedes configurar el nombre de la base de datos, la ruta, el sistema de base de datos, etc. editando el archivo $COSA_NOSTRA_DIR/, como se muestra a continuación:

root@kitploit:~
$ cat config.cfg 
########################################################################
# Configuration for SQLite3
########################################################################
[database]
dbn=sqlite
# Database name
db=db.sqlite

Si prefieres usar, por ejemplo, un sistema de base de datos MySQL, puedes configurarlo en config.cfg colocando las siguientes secciones de configuración con los valores apropiados para tu entorno:

root@kitploit:~
########################################################################
# Example configuration for MySQL
########################################################################

[database]
dbn=mysql
# Database hostname or IP address
host=localhost
# Database name
db=db_name
# Database username
user=username
# Database password
pw=password

Agrupamiento de muestras de malware

Este es el paso que tomará más tiempo. Una vez que hayas analizado todas las muestras de malware de tus conjuntos de datos y las firmas de grafos de llamadas, los números primos correspondientes, etc. estén calculados y almacenados en la base de datos, el siguiente paso es encontrar grupos. La herramienta para hacerlo se llama "cn_clusterer.py". Hará uso del mismo archivo de configuración de base de datos ($COSA_NOSTRA_DIR/config.cfg) para extraer las firmas de grafos de llamadas de las muestras analizadas. Ejecutarlo es tan simple como hacer lo siguiente:

root@kitploit:~
$ cd $COSA_NOSTRA_DIR
$ ./cn_clusterer.py
(...)
Calculating difference matrix for 2357, iteration 5540280 out of 7507600 (4858784 matches, 600144 cache misses)
Calculating difference matrix for 2354, iteration 5543020 out of 7507600 (4861293 matches, 600373 cache misses)
Calculating difference matrix for 471, iteration 5545760 out of 7507600 (4863903 matches, 600373 cache misses)
(...)
Making tree for group with 59 sample(s), iteration 0 out of 256
Making tree for group with 393 sample(s), iteration 1 out of 256
Making tree for group with 1347 sample(s), iteration 2 out of 256
(...)
[Wed Nov  2 13:37:12 2016 2830:140561185462080] Creating unnamed cluster...
[Wed Nov  2 13:37:12 2016 2830:140561185462080] Creating cluster with name u'Win.Trojan.Skylock-4'...
[Wed Nov  2 13:37:12 2016 2830:140561185462080] Creating cluster with name u'Win.Downloader.133181-1'...
[Wed Nov  2 13:37:12 2016 2830:140561185462080] Creating cluster with name u'Win.Trojan.Agent-1213378'...
[Wed Nov  2 13:37:13 2016 2830:140561185462080] Done processing phylogenetic trees!
[Wed Nov  2 13:37:13 2016 2830:140561185462080] Done

Cuando el proceso finaliza, se crean grupos que agrupan las muestras de malware analizadas en la base de datos especificada.

Visualización de grupos: la interfaz web

El último paso es lanzar la aplicación web basada en web.py e iniciar sesión:

root@kitploit:~
$ cd $COSA_NOSTRA_DIR
$ python cosa_nostra.py [optional port to listen to]
http://0.0.0.0:YOURPORT/

Luego, abre un navegador y navega a la dirección que muestra cosa_nostra.py. Se mostrará un formulario de inicio de sesión solicitando un nombre de usuario y contraseña. Por defecto, es "admin/cosanostra". Puedes cambiarlo en el archivo $COSA_NOSTRA_DIR/config.py:

root@kitploit:~
$ cat config.py
#!/usr/bin/env python

#-----------------------------------------------------------------------
# Configuration for Cosa Nostra
#-----------------------------------------------------------------------
DEBUG=False
CN_USER="admin"
# SHA1 hash of the password "cosanostra", change to the SHA1 hash of
# whatever password you prefer.
CN_PASS="048920dedfe36c112d74dc8108abb4db5185a918"
(...)

Una vez que hayas iniciado sesión, puedes seleccionar desde el panel izquierdo una de las siguientes opciones:

  • Samples: Ver las muestras en la base de datos actual.
  • Clusters: Ver la lista de grupos que Cosa Nostra encontró para los conjuntos de datos dados.

En la vista "Clusters", se pueden seleccionar diferentes grupos y ver un gráfico jerárquico de la familia de malware descubierta.

Capturas de pantalla

Lista de grupos tal como se muestra en Cosa Nostra:

Lista de grupos tal como se muestra en Cosa Nostra

Un pequeño grupo de Trojan.Backspace-1 (nombre según ClamAV):

Un pequeño grupo de Trojan.Backspace-1, nombre según ClamAV

Un pequeño grupo de MiniDukes:

Un pequeño grupo de MiniDukes

Un grupo de Kazy/Bifroses:

Un grupo de Kazy/Bifroses

Una pequeña parte de un grupo realmente grande de FannyWorms:

Una pequeña parte de un grupo realmente grande de FannyWorms

Descargar herramienta