Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cosa-nostra — Cosa Nostra,一个基于图的自由开源恶意软件聚类工具包。 | Kitploit
工具/GitHubGitHub/joxeankoret/cosa-nostra
静态分析逆向工程取证分析恶意软件分析二进制分析学习与教育
GitHubjoxeankoret/cosa-nostra

cosa-nostra

Cosa Nostra,一个基于图的自由开源恶意软件聚类工具包。

查看仓库
231552年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Cosa Nostra

Cosa Nostra 是一个专注于恶意软件分析的开源软件聚类工具包。它能够为结构相似的二进制恶意软件样本构建系统发育树。该工具最初在 2016 年上海 SyScan360 大会上发布。

自 2016 年以来,我一直在维护它,用户只有一位,恰好是我的一个朋友……好吧。

快速入门

必需的第三方工具

要使用 Cosa Nostra,你需要一个 Python 3.X 版本,以及以下工具之一来执行代码分析:

  • IDA 使用 C++ 编写。它支持分析你可能从未听说过的多种可执行文件类型。商业产品。目前仅支持 7.X 版本。
  • Radare2 使用纯 C 语言编写。与 IDA 类似,支持极为罕见的 CPU 和二进制格式。此外,它是开源的!

分析二进制文件

安装上述任一工具后,你需要使用相应的批处理工具来分析恶意软件样本,如下例所示:

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

或

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

自动化分析恶意软件数据集

分析恶意软件数据集最简单的方法是直接运行如下命令:

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

也可以使用 "GNU Parallel" 工具并行执行,如下例所示:

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

在上面的例子中,它将同时启动总共 8 个 pyew_batch 进程。

数据库配置

恶意软件样本分析完成后,如果分析成功,每个样本的调用图数据将默认存储在一个名为 "db.sqlite" 的 SQLite 数据库中。你可以通过编辑 $COSA_NOSTRA_DIR/ 文件来配置数据库名称、路径、数据库系统等,如下所示:

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

如果你倾向于使用 MySQL 数据库系统,可以在 config.cfg 中配置以下章节,并根据你的设置填入适当的值:

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

恶意软件样本聚类

这一步将耗费更多时间。当你分析了数据集中的所有恶意软件样本,并且计算了调用图签名、对应的质数等并存储到数据库后,下一步就是寻找聚类。用于此目的的工具是 "cn_clusterer.py"。它将使用相同的数据库配置文件 ($COSA_NOSTRA_DIR/config.cfg) 来提取已分析样本的调用图签名。运行方法非常简单,如下所示:

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

当过程结束时,会在指定的数据库中创建分组已分析恶意软件样本的聚类。

查看聚类:Web GUI

最后一步是启动基于 web.py 的 Web 应用程序并登录:

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

然后打开浏览器,导航到 cosa_nostra.py 打印出的地址。将显示一个登录表单,要求输入用户名和密码。默认情况下,用户名为 "admin",密码为 "cosanostra"。你可以在文件 $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"
(...)

登录后,你可以在左侧面板中选择以下选项之一:

  • Samples:查看当前数据库中的样本。
  • Clusters:查看 Cosa Nostra 为给定数据集找到的聚类列表。

在 "Clusters" 视图中,你可以选择不同的聚类,并查看已发现的恶意软件家族的层次结构图。

截图

Cosa Nostra 中显示的聚类列表:

Cosa Nostra 中显示的聚类列表

Trojan.Backspace-1 的一个小聚类(名称来自 ClamAV):

Trojan.Backspace-1 的一个小聚类,名称来自 ClamAV

MiniDukes 的一个小聚类:

MiniDukes 的一个小聚类

Kazy/Bifroses 的一个聚类:

Kazy/Bifroses 的一个聚类

FannyWorms 一个非常大的聚类中的一小部分:

FannyWorms 一个非常大的聚类中的一小部分

下载工具