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
malcom — Malcom - Malware-Kommunikationsanalysator | Kitploit
Tools/GitHubGitHub/tomchop/malcom
NetzwerkforensikMalware-AnalyseBedrohungsanalyse
GitHubtomchop/malcom

malcom

Malcom - Malware-Kommunikationsanalysator

Repository anzeigen
1.2k2161vor 8 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

Malcom - Malware-Kommunikationsanalysator

Malcom ist ein Werkzeug, das entwickelt wurde, um die Netzwerkkommunikation eines Systems mittels grafischer Darstellungen des Netzwerkverkehrs zu analysieren und mit bekannten Malware-Quellen abzugleichen. Dies ist nützlich bei der Analyse, wie bestimmte Malware-Arten versuchen, mit der Außenwelt zu kommunizieren.

  • Was ist Malcom?
  • Kurzanleitung
  • Installation
  • Konfigurationsoptionen
  • Docker-Instanz
  • Kurzer Hinweis zur TLS-Abfang
  • Umgebung
  • Feeds
  • Technische Spezifikationen
  • Fahrplan
  • Haftungsausschluss
  • Lizenz

Was ist Malcom?

Malcom kann Ihnen helfen:

  • zentrale Command-and-Control (C&C)-Server zu erkennen
  • Peer-to-Peer-Netzwerke zu verstehen
  • DNS-Fast-Flux-Infrastrukturen zu beobachten
  • schnell festzustellen, ob ein Netzwerkartefakt 'bekannt-schädlich' ist

Das Ziel von Malcom ist es, Malware-Analyse und Nachrichtenbeschaffung schneller zu machen, indem eine menschenlesbare Version des von einem bestimmten Host oder Netzwerk ausgehenden Netzwerkverkehrs bereitgestellt wird. Wandeln Sie Netzwerkverkehrsinformationen schneller in umsetzbare Erkenntnisse um.

Schauen Sie sich das wiki für einen Schnellstart mit einigen schönen Screenshots und ein Tutorial zum Hinzufügen eigener Feeds an.

Wenn Sie Hilfe benötigen oder einen Beitrag leisten möchten, können Sie gerne der Mailingliste beitreten oder versuchen, jemanden im IRC zu erreichen (#malcom on freenode.net, es ist ziemlich ruhig, aber es ist immer jemand da). Sie können mich auch auf Twitter kontaktieren @tomchop_

Hier ist ein Beispielgraph für den Host tomchop.me nodes-tomchop.png

Datensatzansicht (gefiltert, um nur IPs anzuzeigen) dataset-view.png

Kurzanleitung

  • Installieren
  • Stellen Sie sicher, dass mongodb und redis-server laufen
  • Erweitern Sie Ihre Rechte auf root (ja, ich weiß, siehe Haftungsausschluss)
  • Starten Sie den Webserver mit der Standardkonfiguration mittels ./malcom.py -c malcom.conf (oder sehen Sie Optionen mit ./malcom.py --help) ** Für eine Beispielkonfigurationsdatei können Sie malcom.conf.example nach malcom.conf kopieren ** Standardport ist 8080 ** Alternativ können Sie die Feeds von celery aus ausführen. Siehe den Abschnitt Feeds für Details zur Vorgehensweise.

Installation

Malcom ist in Python geschrieben. Vorausgesetzt, Sie haben die notwendigen Bibliotheken, sollten Sie es auf jeder Plattform ausführen können. Ich empfehle dringend die Verwendung von Python-Virtualenvs (virtualenv), um Ihre Systembibliotheken nicht zu beeinträchtigen.

Das Folgende wurde auf Ubuntu Server 14.04 LTS getestet:

  • Installieren Sie git, python und libevent-Bibliotheken, mongodb, redis und andere Abhängigkeiten

    root@kitploit:~
      $ sudo apt-get install build-essential git python-dev libevent-dev mongodb libxml2-dev libxslt-dev zlib1g-dev redis-server libffi-dev libssl-dev python-virtualenv
    
  • Klonen Sie das Git-Repository:

    root@kitploit:~
      $ git clone https://github.com/tomchop/malcom.git malcom
    
  • Erstellen Sie Ihre virtuelle Umgebung und aktivieren Sie sie:

    root@kitploit:~
      $ cd malcom
      $ virtualenv env-malcom
      $ source env-malcom/bin/activate
    
  • Holen und installieren Sie scapy:

    root@kitploit:~
      $ cd .. 
      $ wget http://www.secdev.org/projects/scapy/files/scapy-latest.tar.gz
      $ tar xvzf scapy-latest.tar.gz
      $ cd scapy-2.1.0
      $ python setup.py install
    

Konfigurationsoptionen

Datenbank

Standardmäßig versucht Malcom, eine Verbindung zu einer lokalen MongoDB-Instanz herzustellen und eine eigene Datenbank namens malcom zu erstellen. Wenn dies für Sie in Ordnung ist, können Sie die folgenden Schritte überspringen. Andernfalls müssen Sie den Abschnitt database Ihrer malcom.conf-Datei bearbeiten.

Einen anderen Namen für Ihre Malcom-Datenbank festlegen

Standardmäßig verwendet Malcom eine Datenbank namens malcom. Sie können dieses Verhalten ändern, indem Sie die malcom.conf-Datei bearbeiten und die Direktive name im Abschnitt database nach Ihren Wünschen einstellen.

root@kitploit:~
    [database]
    ...
    name = my_malcom_database
    ...
Entfernte Datenbank(en)

Standardmäßig versucht Malcom, eine Verbindung zu localhost herzustellen, aber Ihre Datenbank könnte sich auf einem anderen Server befinden. Um dies zu ändern, setzen Sie einfach die Direktive hosts. Sie können Hostnamen oder IPv4/v6-Adressen verwenden (denken Sie daran, Ihre IPv6-Adressen zwischen [ und ] zu setzen, z.B. [::1]).

Wenn Sie eine eigenständige Datenbank auf dem Host my.mongo.server verwenden möchten, setzen Sie einfach:

root@kitploit:~
    [database]
    ...
    hosts = my.mongo.server
    ...

Sie können auch den Port angeben, auf dem mongod lauscht, indem Sie ihn nach dem Namen/der Adresse Ihres Servers, getrennt durch ein :, angeben:

root@kitploit:~
    [database]
    ...
    hosts = localhost:27008
    ...

Und wenn Sie ein ReplicaSet verwenden, das my.mongo1.server und my.mongo2.server gruppiert, setzen Sie einfach:

root@kitploit:~
    [database]
    ...
    hosts = my.mongo1.server,my.mongo2.server
    ...
Authentifizierung verwenden

Sie haben möglicherweise Ihre mongod-Instanzen so konfiguriert, dass sie authentifizierte Verbindungen erzwingen. In diesem Fall müssen Sie den Benutzernamen festlegen, den der Treiber verwenden muss, um eine Verbindung zu Ihrer mongod-Instanz herzustellen. Fügen Sie dazu einfach eine Direktive username im Abschnitt database der malcom.conf-Datei hinzu. Möglicherweise müssen Sie auch das Passwort mit der Direktive password festlegen. Wenn der Benutzer kein Passwort hat, ignorieren Sie (d.h. kommentieren Sie) die Direktive password.

root@kitploit:~
    [database]
    ...
    username = my_user
    password = change_me
    ...

Wenn der Benutzer nicht mit der malcom-Datenbank verknüpft ist, sondern mit einer anderen (z.B. der admin-Datenbank für einen Admin-Benutzer), müssen Sie die Direktive authentication_database mit dem Namen dieser Datenbank setzen.

root@kitploit:~
    [database]
    ...
    authentication_database = some_other_database
    ...
Fall eines Replica Sets

Bei Verwendung eines Replica Sets müssen Sie möglicherweise sicherstellen, dass Sie mit dem richtigen verbunden sind. Fügen Sie dazu einfach die Direktive replset hinzu, um den Mongo-Treiber zu zwingen, den Namen des Replica Sets zu überprüfen.

root@kitploit:~
    [database]
    ...
    replset = my_mongo_replica
    ...

Standardmäßig versucht Malcom, eine Verbindung zum primären Knoten des Replica Sets herzustellen. Möglicherweise müssen/sollten Sie dies ändern. Um dieses Verhalten zu ändern, setzen Sie einfach die Direktive read_preference. Siehe die Mongo-Dokumentation für weitere Informationen.

root@kitploit:~
    [database]
    ...
    read_preference = NEAREST
    ...

Unterstützte Read Preferences sind:

  • PRIMARY
  • PRIMARY_PREFERRED
  • SECONDARY
  • SECONDARY_PREFERRED
  • NEAREST

Docker-Instanz

Der schnellste Weg, um loszulegen, ist das Docker-Image aus dem öffentlichen Docker-Repository zu ziehen. Um ältere, stabilere Docker-Builds zu ziehen, verwenden Sie tomchop/malcom anstelle von tomchop/malcom-automatic.

root@kitploit:~
    $ sudo docker pull tomchop/malcom-automatic
    $ sudo docker run -p 8080:8080 -d --name malcom tomchop/malcom-automatic

Eine Verbindung zu http://<docker_host>:8080/ sollte Sie starten lassen.

Kurzer Hinweis zur TLS-Abfang

Malcom unterstützt jetzt TLS-Abfang. Damit dies funktioniert, müssen Sie einige Schlüssel in Malcom/networking/tlsproxy/keys generieren. Siehe die Datei KEYS.md dort für weitere Informationen zur Vorgehensweise.

Stellen Sie sicher, dass Sie auch IPtables haben (sollten Sie bereits) und Berechtigungen, um damit Portweiterleitung durchzuführen (normalerweise benötigen Sie dazu Root-Rechte). Sie können dies mit dem praktischen Skript forward_port.sh tun. Um beispielsweise alle TLS-Kommunikation zu Port 443 abzufangen, verwenden Sie forward_port.sh 443 9999. Dann müssen Sie Malcom mitteilen, einen Abfang-Proxy auf Port 9999 auszuführen.

Dieser Prozess wird in zukünftigen Versionen automatisiert.

Umgebung

Malcom wurde auf einer Ubuntu Server 14.04 LTS VM entwickelt und getestet.

Wenn Sie mit Malware-Analyse vertraut sind, haben Sie wahrscheinlich bereits zahlreiche virtuelle Maschinen auf einem Host-Betriebssystem laufen. Installieren Sie einfach Malcom auf einer neuen VM und leiten Sie die Verbindungen Ihrer anderen VM über Malcom. Verwenden Sie enable_routing.sh, um Routing/NAT auf der VM zu aktivieren, auf der Malcom läuft. Sie müssen dem Gastbetriebssystem eine zusätzliche Netzwerkkarte hinzufügen.

Solange es Layer-3-Netzwerkdaten erhält, kann Malcom überall eingesetzt werden. Obwohl es nicht empfohlen wird, es in Hochverfügbarkeitsnetzwerken zu verwenden (es wurde nicht für Geschwindigkeit entwickelt, siehe Haftungsausschluss), können Sie es am Ende des Spiegelports Ihres Switches oder auf Ihrem Gateway laufen lassen.

Feeds

Um eine Instanz von Malcom zu starten, die NUR Informationen aus Feeds abruft, führen Sie Malcom mit der Option --feeds aus oder passen Sie die Konfigurationsdatei an.

Ihre Datenbank sollte automatisch befüllt werden. Wenn Sie sich in den Code vertiefen können, ist das Hinzufügen von Feeds ziemlich einfach (vorausgesetzt, Sie generieren Evil-Objekte). Ein Beispiel-Feed finden Sie in /feeds/zeustracker. Ein detaillierteres Tutorial ist hier verfügbar.

Sie können auch celery verwenden, um Feeds auszuführen. Stellen Sie sicher, dass Celery installiert ist, indem Sie $ pip install celery in Ihrer virtuellen Umgebung ausführen. Sie können dann celery worker -E --config=celeryconfig --loglevel=DEBUG --concurrency=12 verwenden, um den Feed-Prozess mit 12 gleichzeitigen Workern zu starten.

Technische Spezifikationen

Malcom wurde größtenteils von Grund auf in Python geschrieben. Es verwendet die folgenden Frameworks:

  • flask - ein leichtgewichtiges Python-Webframework
  • mongodb - eine NoSQL-Datenbank. Sie interagiert mit Python über pymongo
  • redis - ein erweiterter In-Memory-Schlüssel-Wert-Speicher
  • d3js - eine JavaScript-Bibliothek, die fantastische kraftgerichtete Graphen erzeugt (https://github.com/mbostock/d3/wiki/Gallery)
  • bootstrap - ein CSS-Framework, das irgendwann das Webdesign töten wird, aber es extrem einfach macht, Anwendungen, die nur über eine Eingabeaufforderung funktionieren würden, schnell zu "webifizieren".

Fahrplan

Zusammenarbeit - Die Hauptrichtung, in die ich dieses Tool lenken möchte, ist die Zusammenarbeit. Ich habe einige Ideen dazu und denke, dass es 100x nützlicher wird, sobald Datenaustausch implementiert ist.

Erweiterbarkeit - Die andere Sache, die ich in das Tool aufnehmen möchte, ist die Möglichkeit, es einfacher zu erweitern. Ich habe nicht die gleichen Bedürfnisse wie alle anderen, und dieses Tool wurde mit meinen Bedürfnissen im Sinn konzipiert. Sie können Malcom jetzt anpassen, indem Sie neue Feeds hinzufügen.

Sobald Zusammenarbeit und Erweiterung einsatzbereit sind, denke ich, dass dies für mehr als einen Incident-Responder da draußen hilfreich sein wird. :-)

Haftungsausschluss

Dieses Tool wurde in meiner Freizeit programmiert. Wie eine große Anzahl von Tools, die wir täglich herunterladen und verwenden, würde ich nicht empfehlen, es in einer Produktionsumgebung zu verwenden, in der Datenstabilität und Zuverlässigkeit ein MUSS sind.

  • Es kann defekt sein, Sicherheitslücken aufweisen (es als Root in unkontrollierten Umgebungen auszuführen, ist wahrscheinlich keine gute Idee) oder gar nicht funktionieren.
  • Es ist in Python geschrieben, erwarten Sie also nicht, dass es ultraschnell ist oder große Datenmengen problemlos verarbeitet.
  • Ich bin kein Programmierer, erwarten Sie also nicht, überall schönen pythonischen Code zu sehen. Oder viele Kommentare.

Es befindet sich in einem frühen Entwicklungsstadium, was bedeutet, dass es "für mich funktioniert". Sie können es gerne teilen, verbessern, Pull-Requests anfragen.

Lizenz

Malcom - Malware-Kommunikationsanalysator Copyright (C) 2013 Thomas Chopitea

Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, entweder Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version weitergeben und/oder modifizieren.

Dieses Programm wird in der Hoffnung verbreitet, dass es nützlich sein wird, aber OHNE JEGLICHE GEWÄHRLEISTUNG; ohne die stillschweigende Gewährleistung der MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Siehe die GNU General Public License für weitere Details.

Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben. Wenn nicht, siehe http://www.gnu.org/licenses/.

Bitte beachten Sie, dass Redis, MongoDB, d3js, Maximind und Bootstrap (und andere in Malcom enthaltene Drittanbieterbibliotheken) möglicherweise eigene GPL-kompatible Lizenzen haben.

Tool herunterladen
  • Installieren Sie aus Ihrer virtuellen Umgebung die notwendigen Python-Pakete aus der Datei requirements.txt:

    root@kitploit:~
      $ cd ../malcom
      $ pip install -r requirements.txt
    
  • Damit die IP-Geolokalisierung funktioniert, müssen Sie die Maxmind-Datenbank herunterladen und die Datei in das Verzeichnis malcom/Malcom/auxiliary/geoIP extrahieren. Sie können Maxminds kostenlose (und daher mehr oder weniger genaue) Datenbank über den folgenden Link beziehen: http://dev.maxmind.com/geoip/geoip2/geolite2/:

    root@kitploit:~
      $ cd Malcom/auxiliary/geoIP
      $ wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
      $ gunzip -d GeoLite2-City.mmdb.gz
      $ mv GeoLite2-City.mmdb GeoIP2-City.mmdb
    
  • Starten Sie den Webserver aus dem malcom-Verzeichnis mit ./malcom.py. Überprüfen Sie ./malcom.py --help für die Lauschschnittstelle und Ports.

    • Für den Anfang können Sie die Datei malcom.conf.example nach malcom.conf kopieren und ./malcom.py -c malcom.conf ausführen