Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cosa-nostra — Cosa Nostra, um toolkit FOSS de clusterização de malware baseado em grafos. | Kitploit
Ferramentas/GitHubGitHub/joxeankoret/cosa-nostra
Análise EstáticaEngenharia ReversaAnálise ForenseAnálise de MalwareAnálise de BináriosAprendizado e Educação
GitHubjoxeankoret/cosa-nostra

cosa-nostra

Cosa Nostra, um toolkit FOSS de clusterização de malware baseado em grafos.

Ver Repositório
23155há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Cosa Nostra

Cosa Nostra é um kit de ferramentas de clusterização de software de código aberto com foco em análise de malware. Ele pode criar árvores filogenéticas de amostras binárias de malware que são estruturalmente semelhantes. Foi lançado inicialmente durante o SyScan360 Shanghai (2016).

Basicamente, mantenho-o desde 2016 para o meu único e único usuário, que por acaso é um amigo... Bem.

Primeiros passos

Ferramentas de terceiros necessárias

Para usar o Cosa Nostra, você precisará de uma versão do Python 3.X, bem como de uma das seguintes ferramentas para realizar a análise de código:

  • IDA Escrito em C++. Suporta a análise de uma infinidade de tipos executáveis que você provavelmente nunca ouviu falar. Produto comercial. Apenas as versões 7.X são suportadas atualmente.
  • Radare2 Escrito em C puro. Mesmo que o IDA, com suporte para CPUs e formatos binários extremamente raros. Além disso, é código aberto!

Analisando binários

Depois de instalar qualquer uma das ferramentas mencionadas anteriormente, você precisará usar a ferramenta de lote apropriada para analisar as amostras de malware, como no exemplo abaixo:

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

Ou

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

Automatizando a Análise de um Conjunto de Dados de Malware

A maneira mais fácil de analisar um conjunto de dados de malware é simplesmente executar um comando como o exemplo a seguir:

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

Isso pode ser feito em paralelo usando a ferramenta "GNU Parallel", como no seguinte exemplo:

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

No exemplo acima, serão lançados um total de 8 processos pyew_batch em paralelo.

Configuração do banco de dados

Após a análise das amostras de malware, se a análise for bem-sucedida, os dados do grafo de chamadas para cada amostra serão armazenados, por padrão, em um banco de dados SQLite chamado "db.sqlite". Você pode configurar o nome do banco de dados, caminho, sistema de banco de dados, etc. editando o arquivo $COSA_NOSTRA_DIR/, conforme mostrado abaixo:

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

Se preferir usar, por exemplo, um sistema de banco de dados MySQL, você pode configurá-lo em config.cfg colocando as seguintes seções de configuração com os valores apropriados para sua configuração:

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

Clusterização de amostras de malware

Este é o passo que levará mais tempo. Depois de analisar todas as amostras de malware dos seus conjuntos de dados e as assinaturas do grafo de chamadas, números primos correspondentes, etc. forem calculados e armazenados no banco de dados, o próximo passo é encontrar clusters. A ferramenta para fazer isso é chamada "cn_clusterer.py". Ela usará o mesmo arquivo de configuração do banco de dados ($COSA_NOSTRA_DIR/config.cfg) para extrair as assinaturas do grafo de chamadas das amostras analisadas. Executá-la é tão simples quanto fazer o seguinte:

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 o processo terminar, clusters agrupando as amostras de malware analisadas serão criados no banco de dados especificado.

Visualizando clusters: a interface web

O último passo é iniciar o aplicativo web baseado em web.py e fazer login:

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

Em seguida, abra um navegador e navegue até o endereço exibido por cosa_nostra.py. Um formulário de login será exibido solicitando um nome de usuário e senha. Por padrão, é "admin/cosanostra". Você pode alterá-lo no arquivo $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"
(...)

Depois de fazer login, você pode selecionar no painel esquerdo uma das seguintes opções:

  • Samples: Ver as amostras no banco de dados atual.
  • Clusters: Ver a lista de clusters que o Cosa Nostra encontrou para os conjuntos de dados fornecidos.

Na visualização "Clusters", pode-se selecionar diferentes clusters e visualizar um gráfico hierárquico da família de malware descoberta.

Capturas de tela

Lista de clusters como mostrada no Cosa Nostra:

Lista de clusters como mostrada no Cosa Nostra

Um pequeno cluster de Trojan.Backspace-1 (nome dado pelo ClamAV):

Um pequeno cluster de Trojan.Backspace-1, nome dado pelo ClamAV

Um pequeno cluster de MiniDukes:

Um pequeno cluster de MiniDukes

Um cluster de Kazy/Bifroses:

Um cluster de Kazy/Bifroses

Uma pequena parte de um cluster muito grande de FannyWorms:

Uma pequena parte de um cluster muito grande de FannyWorms

Baixar ferramenta