Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cosa-nostra — Cosa Nostra, un toolkit FOSS basato su grafi per la clusterizzazione di malware. | Kitploit
Strumenti/GitHubGitHub/joxeankoret/cosa-nostra
Analisi StaticaReverse EngineeringInformatica ForenseAnalisi MalwareAnalisi di BinariApprendimento e Formazione
GitHubjoxeankoret/cosa-nostra

cosa-nostra

Cosa Nostra, un toolkit FOSS basato su grafi per la clusterizzazione di malware.

Vedi Repository
231552 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Cosa Nostra

Cosa Nostra è un toolkit software open source per il clustering con un focus sull'analisi malware. Può creare alberi filogenetici di campioni binari malware strutturalmente simili. È stato rilasciato inizialmente durante SyScan360 Shanghai (2016).

Fondamentalmente lo mantengo dal 2016 per il mio unico e solo utente, che tra l'altro è un amico... Beh.

Per iniziare

Strumenti di terze parti richiesti

Per utilizzare Cosa Nostra avrai bisogno di una versione di Python 3.X e di uno dei seguenti strumenti per eseguire l'analisi del codice:

  • IDA Scritto in C++. Supporta l'analisi di una pletora di tipi eseguibili di cui probabilmente non hai mai sentito parlare. Prodotto commerciale. Sono supportate solo le versioni 7.X.
  • Radare2 Scritto in C puro. Come IDA, supporta CPU e formati binari estremamente rari. Inoltre, è open source!

Analisi dei binari

Una volta installato uno degli strumenti menzionati, dovrai utilizzare lo strumento batch appropriato per analizzare i campioni malware, come nell'esempio seguente:

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

Oppure

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

Automazione dell'analisi di un dataset di malware

Il modo più semplice per analizzare un dataset di malware è eseguire un comando come il seguente esempio:

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

Può essere fatto in parallelo utilizzando lo strumento "GNU Parallel", come nell'esempio seguente:

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

Nell'esempio sopra, verranno lanciati in totale 8 processi pyew_batch in parallelo.

Configurazione del database

Dopo che i campioni malware sono stati analizzati, se l'analisi è riuscita, i dati del grafo di chiamata per ogni campione verranno memorizzati, per impostazione predefinita, in un database SQLite chiamato "db.sqlite". Puoi configurare il nome del database, il percorso, il sistema di database, ecc... modificando il file $COSA_NOSTRA_DIR/, come mostrato di seguito:

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

Se preferisci utilizzare, ad esempio, un sistema di database MySQL, puoi configurarlo in config.cfg inserendo le seguenti sezioni di configurazione con i valori appropriati per la tua configurazione:

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

Clusterizzazione dei campioni malware

Questo è il passaggio che richiederà più tempo. Una volta che hai analizzato tutti i campioni malware dei tuoi dataset e le firme dei grafi di chiamata, i corrispondenti numeri primi, ecc... sono stati calcolati e memorizzati nel database, il passo successivo è trovare i cluster. Lo strumento per farlo si chiama "cn_clusterer.py". Utilizzerà lo stesso file di configurazione del database ($COSA_NOSTRA_DIR/config.cfg) per estrarre le firme dei grafi di chiamata dei campioni analizzati. Eseguirlo è semplice come fare quanto segue:

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

Quando il processo termina, i cluster che raggruppano i campioni malware analizzati verranno creati nel database specificato.

Visualizzazione dei cluster: l'interfaccia web

L'ultimo passo è avviare l'applicazione Web basata su web.py e accedere:

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

Quindi, apri un browser e naviga all'indirizzo stampato da cosa_nostra.py. Verrà visualizzato un modulo di login che richiede nome utente e password. Per impostazione predefinita, è "admin/cosanostra". Puoi cambiarlo nel file $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 volta effettuato l'accesso, puoi selezionare dal pannello sinistro una delle seguenti opzioni:

  • Samples: Visualizza i campioni nel database corrente.
  • Clusters: Visualizza l'elenco dei cluster che Cosa Nostra ha trovato per i dataset forniti.

Nella vista "Clusters", è possibile selezionare diversi cluster e visualizzare un grafico gerarchico della famiglia di malware scoperta.

Screenshots

Elenco dei cluster come mostrato in Cosa Nostra:

Elenco dei cluster come mostrato in Cosa Nostra

Un piccolo cluster di Trojan.Backspace-1 (nome dato da ClamAV):

Un piccolo cluster di Trojan.Backspace-1, nome dato da ClamAV

Un piccolo cluster di MiniDukes:

Un piccolo cluster di MiniDukes

Un cluster di Kazy/Bifroses:

Un cluster di Kazy/Bifroses

Una piccola parte di un cluster veramente grande di FannyWorms:

Una piccola parte di un cluster veramente grande di FannyWorms

Scarica lo strumento