Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cosa-nostra — Cosa Nostra, ein FOSS-Toolkit für graphbasierte Malware-Clusterisierung. | Kitploit
Tools/GitHubGitHub/joxeankoret/cosa-nostra
Statische AnalyseReverse EngineeringForensikMalware-AnalyseBinäranalyseLernen & Bildung
GitHubjoxeankoret/cosa-nostra

cosa-nostra

Cosa Nostra, ein FOSS-Toolkit für graphbasierte Malware-Clusterisierung.

Repository anzeigen
23155vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Cosa Nostra

Cosa Nostra ist ein Open-Source-Software-Clustering-Toolkit mit Schwerpunkt auf Malware-Analyse. Es kann phylogenetische Bäume von binären Malware-Beispielen erstellen, die strukturell ähnlich sind. Es wurde erstmals während der SyScan360 Shanghai (2016) veröffentlicht.

Ich pflege es grundsätzlich seit 2016 für meinen einen und einzigen Benutzer, der zufälligerweise ein Freund ist ... Nun ja.

Erste Schritte

Benötigte Drittanbieter-Tools

Um Cosa Nostra zu verwenden, benötigen Sie eine Version von Python 3.X sowie eines der folgenden Tools zur Durchführung der Code-Analyse:

  • IDA Geschrieben in C++. Es unterstützt die Analyse einer Vielzahl von ausführbaren Dateitypen, von denen Sie wahrscheinlich noch nie gehört haben. Kommerzielles Produkt. Nur die 7.X-Versionen werden jetzt unterstützt.
  • Radare2 Geschrieben in reinem C. Gleiches wie IDA, mit Unterstützung für extrem seltene CPUs und Binärformate. Außerdem ist es Open Source!

Analysieren von Binärdateien

Sobald Sie eines der oben genannten Tools installiert haben, müssen Sie das entsprechende Batch-Tool verwenden, um die Malware-Beispiele zu analysieren, wie im folgenden Beispiel:

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

Oder

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

Automatisieren der Analyse eines Malware-Datensatzes

Der einfachste Weg, einen Malware-Datensatz zu analysieren, besteht darin, einfach einen Befehl wie das folgende Beispiel auszuführen:

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

Es kann parallel durchgeführt werden, indem das Tool "GNU Parallel" verwendet wird, wie im folgenden Beispiel:

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

Im obigen Beispiel werden insgesamt 8 pyew_batch-Prozesse parallel gestartet.

Datenbankkonfiguration

Nachdem die Malware-Beispiele analysiert wurden, werden (falls die Analyse erfolgreich war) die Callgraph-Daten für jedes Beispiel standardmäßig in einer SQLite-Datenbank namens "db.sqlite" gespeichert. Sie können den Datenbanknamen, -pfad, das Datenbanksystem usw. konfigurieren, indem Sie die Datei $COSA_NOSTRA_DIR/ bearbeiten, wie unten gezeigt:

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

Wenn Sie stattdessen ein MySQL-Datenbanksystem verwenden möchten, können Sie es in config.cfg konfigurieren, indem Sie die folgenden Konfigurationsabschnitte mit den entsprechenden Werten für Ihr Setup einfügen:

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

Clusterbildung der Malware-Beispiele

Dies ist der Schritt, der mehr Zeit in Anspruch nehmen wird. Sobald Sie alle Malware-Beispiele aus Ihren Datensätzen analysiert haben und die Callgraph-Signaturen, entsprechenden Primzahlen usw. berechnet und in der Datenbank gespeichert sind, besteht der nächste Schritt darin, Cluster zu finden. Das Werkzeug dafür heißt "cn_clusterer.py". Es verwendet die gleiche Datenbankkonfigurationsdatei ($COSA_NOSTRA_DIR/config.cfg), um die Callgraph-Signaturen für die analysierten Beispiele zu extrahieren. Die Ausführung ist so einfach wie folgt:

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

Wenn der Prozess abgeschlossen ist, werden in der angegebenen Datenbank Cluster erstellt, die die analysierten Malware-Beispiele gruppieren.

Cluster anzeigen: die Web-GUI

Der letzte Schritt besteht darin, die auf web.py basierende Webanwendung zu starten und sich anzumelden:

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

Öffnen Sie dann einen Browser und navigieren Sie zu der von cosa_nostra.py ausgegebenen Adresse. Es wird ein Anmeldeformular angezeigt, das nach einem Benutzernamen und einem Passwort fragt. Standardmäßig lauten diese "admin/cosanostra". Sie können dies in der Datei $COSA_NOSTRA_DIR/config.py ändern:

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"
(...)

Sobald Sie angemeldet sind, können Sie im linken Bereich eine der folgenden Optionen auswählen:

  • Samples: Zeigt die Beispiele in der aktuellen Datenbank an.
  • Clusters: Zeigt die Liste der Cluster an, die Cosa Nostra für die gegebenen Datensätze gefunden hat.

In der Ansicht "Clusters" können Sie verschiedene Cluster auswählen und einen hierarchischen Graphen der entdeckten Malware-Familie anzeigen.

Screenshots

Liste der Cluster, wie in Cosa Nostra angezeigt:

Liste der Cluster, wie in Cosa Nostra angezeigt

Ein kleiner Cluster von Trojan.Backspace-1 (Name von ClamAV):

Ein kleiner Cluster von Trojan.Backspace-1, Name von ClamAV

Ein kleiner Cluster von MiniDukes:

Ein kleiner Cluster von MiniDukes

Ein Cluster von Kazy/Bifroses:

Ein Cluster von Kazy/Bifroses

Ein kleiner Teil eines wirklich großen Clusters von FannyWorms:

Ein kleiner Teil eines wirklich großen Clusters von FannyWorms

Tool herunterladen