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
cart — Python-Implementierung der CaRT-Bibliothek zum (De-)Inertieren von Dateien. | Kitploit
Tools/GitHubGitHub/cybercentrecanada/cart
DefensivwerkzeugeVerschlüsselungs-/EntschlüsselungstoolsMalware-AnalyseDigitale ForensikKryptographie
GitHubcybercentrecanada/cart

cart

Python-Implementierung der CaRT-Bibliothek zum (De-)Inertieren von Dateien.

Repository anzeigen
5374vor 1 JahrVon 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

CaRT (Komprimierter und RC4-Transport)

Latest Stable Release

Das CaRT-Dateiformat wird verwendet, um Malware und die zugehörigen Metadaten zu speichern/zu übertragen. Es entschärft die Malware, sodass sie nicht ausgeführt werden kann, und verschlüsselt sie, sodass Antivirensoftware die CaRT-Datei nicht als Malware erkennen kann.

Vorteile

  • SCHNELL: CaRT ist genauso schnell wie das Zippen einer Datei.
  • STREAMING: CaRT verwendet zlib und RC4, wodurch Dateien im Stream codiert werden können.
  • METADATEN: CaRT kann die Dateimetadaten in derselben Datei wie die Datei selbst speichern; die Metadaten können gelesen werden, ohne die gesamte Datei zu lesen.
  • HASH-BERECHNUNG: CaRT berechnet die Hashes der Datei, während es sie codiert, und speichert diese Informationen im Footer.
  • GRÖSSE: CaRT-Dateien sind in der Regel kleiner als die Originaldateien, da sie Komprimierung verwenden. (Außer wenn große Mengen an Metadaten in der CaRT gespeichert werden.)

Verwenden von CaRT mit STIX v2

Da STIX v2 nun JSON als Kodierung verwendet, können Sie Ihren STIX-Bericht direkt im CaRT-Format bündeln. Wenn CaRT Dateien codiert, fügt es Metadaten aus der Datei *.cartmeta mit demselben Präfix wie Ihre Datei hinzu. Wenn Sie Ihren STIX-Bericht also in einer .cartmeta-Datei speichern, enthält die resultierende CaRT-Datei den vollständigen STIX-Bericht.

Beispiel:

root@kitploit:~
$ ls
  file.exe            - File I want to encode
  file.exe.cartmeta   - Stix report of file.exe

$ cart file.exe
$ ls
  file.exe            - File I want to encode
  file.exe.cartmeta   - Stix report of file.exe
  file.exe.cart       - CaRT file containing both the file.exe and its STIX report

Formatübersicht

Obligatorischer Header (38 Bytes)

CaRT hat einen obligatorischen Header, der wie folgt aussieht:

root@kitploit:~
 4s     h         Q        16s         Q
CART<VERSION><RESERVED><ARC4KEY><OPT_HEADER_LEN>

Dabei ist VERSION 1 und RESERVED 0. In den meisten Fällen wird der RC4-Schlüssel, der zum Entschlüsseln der Datei verwendet wird, im obligatorischen Header gespeichert und ist immer derselbe (zweimal die ersten 8 Ziffern von Pi). CaRT bietet jedoch eine Option, den Schlüssel zu überschreiben; in diesem Fall werden Nullbytes im obligatorischen Header gespeichert. Sie müssen dann den Schlüssel kennen, um die Datei zu unCaRTen...

Optionaler Header (OPT_HEADER_LEN Bytes)

Der optionale Header von CaRT ist ein RC4-Blob von OPT_HEADER_LEN Bytes eines JSON-serialisierten Headers.

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)

Datenblock (N Bytes)

Der Datenblock von CaRT ist ein zlib- und dann ein RC4-Block.

root@kitploit:~
RC4(ZLIB(block encoded stream))

Optionaler Footer (OPTIONAL_FOOTER_LEN Bytes)

Wie der optionale Header ist der optionale Footer von CaRT ein RC4-Blob von OPT_FOOTER_LEN Bytes eines JSON-serialisierten Footers.

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)

Obligatorischer Footer (28 Bytes)

CaRT beendet seine Datei mit einem obligatorischen Footer, der es dem Format ermöglicht, den Footer zu lesen und die Hashes zurückzugeben, ohne die gesamte Datei zu lesen.

root@kitploit:~
 4s      QQ           Q
TRAC<RESERVED><OPT_FOOTER_LEN>

Befehlszeilenschnittstelle

Durch die Installation des pip-Pakets erhalten Sie Zugriff auf die CaRT-Bibliothek und auch auf die CaRT-CLI.

Die CaRT-CLI hat für ihre Optionen die folgende Priorität:

  • Für alle Optionen innerhalb der CLI gibt es Standardwerte.
  • Standardwerte werden durch Optionen in ~/.cart/cart.cfg überschrieben.
  • Werte in der Konfigurationsdatei werden durch CLI-Optionen überschrieben.

Dies sind die Optionen, die in der CaRT-CLI verfügbar sind:

root@kitploit:~
usage: cart [options] file1 file2 ... fileN

            The CaRT file format is used to store/transfer malware and its associated metadata.

            It neuters the malware so it cannot be executed and encrypts it so anti-virus software
            cannot flag the CaRT file as malware.


positional arguments:
  file

options:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -d, --delete          Delete original after operation succeeded
  -f, --force           Replace output file if it already exists
  -i, --ignore          Ignore RC4 key from conf file
  -j JSONMETA, --jsonmeta JSONMETA
                        Provide header metadata as JSON blob
  -k KEY, --key KEY     Use private RC4 key (base64 encoded). Same key must be provided to unCaRT.
  -m, --meta            Keep metadata around when extracting CaRTs
  -n FILENAME, --name FILENAME
                        Use this value as metadata filename
  -o OUTFILE, --outfile OUTFILE
                        Set output file
  -s, --showmeta        Only show the file metadata

            CaRT is smart enough to determine if a file needs to be CaRTed or unCaRTed.

            To CaRT an unCaRTed file: cart file1

            To unCaRT a CaRTed file: cart file1

            It is the same command!

Die CaRT-Konfigurationsdatei sieht wie folgt aus:

root@kitploit:~
[global]
# rc4_key is a base64 representation of your key
rc4_key: AvUzYXNkZg==
# keep_meta is an equivalent to -m in the CLI
keep_meta: True
# force is an equivalent to -f in the CLI
force: True

# default_header is a key/value pair of data to be added to the CaRT in the optional header
[default_header]
poc: Your Name
poc_email: [email protected]

Andere CaRT-Bibliotheken

Es gibt auch Implementierungen von CaRT in Rust und Java. Schauen Sie sie sich unten an:

  • Rust: https://github.com/CybercentreCanada/cart-rs
  • Java: https://github.com/CybercentreCanada/cart-java

CaRT (Komprimierter und RC4-Transport)

Das CaRT-Dateiformat dient zum Speichern und Übertragen von Malware und den zugehörigen Metadaten. Es entschärft die Malware, sodass sie nicht ausgeführt werden kann, und verschlüsselt sie, sodass Antivirensoftware die CaRT-Datei nicht als Malware erkennt.

Vorteile

  • SCHNELL: CaRT ist genauso schnell wie das Komprimieren einer Datei.
  • STREAMING: CaRT verwendet zlib und RC4, wodurch Dateien während der Übertragung codiert werden können.
  • METADATEN: CaRT kann die Metadaten einer Datei in derselben Datei wie die Datei selbst speichern; die Metadaten können gelesen werden, ohne die gesamte Datei lesen zu müssen.
  • HASH-BERECHNUNG: CaRT berechnet die Hashes der Datei während der Codierung und speichert diese Informationen im Footer.
  • GRÖSSE: CaRT-Dateien sind in der Regel kleiner als die Originaldateien, da sie komprimiert werden (außer wenn große Mengen an Metadaten in der CaRT gespeichert wurden).

Verwenden von CaRT mit STIX v2

Da STIX v2 nun JSON zur Kodierung verwendet, können Sie Ihre STIX-Berichte direkt im CaRT-Format bündeln. Wenn CaRT Dateien codiert, fügt es Metadaten aus der Datei *.cartmeta mit demselben Präfix hinzu, das für Ihre Datei verwendet wird. Wenn Sie Ihren STIX-Bericht daher in einer .cartmeta-Datei speichern, wird der vollständige Bericht in die resultierende CaRT-Datei integriert.

Zum Beispiel:

root@kitploit:~
$ ls
  file.exe            - Fichier à coder
  file.exe.cartmeta   - Rapport STIX du fichier file.exe

$ cart file.exe
$ ls
  file.exe            - Fichier à coder
  file.exe.cartmeta   - Rapport STIX du fichier file.exe
  file.exe.cart       - Fichier CaRT contenant à la fois le fichier file.exe et son rapport STIX

Formatübersicht

Obligatorischer Header (38 Bytes)

CaRT hat einen obligatorischen Header, der wie folgt aussieht:

root@kitploit:~
 4s     h         Q        16s         Q
CART<VERSION><RESERVED><ARC4KEY><OPT_HEADER_LEN>

In diesem Header ist VERSION 1 und RESERVED 0. In den meisten Fällen wird der RC4-Schlüssel, der zum Entschlüsseln der Datei verwendet wird, dort gespeichert und ist immer derselbe (zweimal die ersten 8 Ziffern von Pi). CaRT bietet jedoch eine Möglichkeit, den Schlüssel zu ersetzen, indem Nullbytes im obligatorischen Header gespeichert werden. Sie müssen dann den Schlüssel kennen, um die CaRT-Datei zu dekodieren.

Optionaler Header (OPT_HEADER_LEN Bytes)

Der optionale Header von CaRT ist ein RC4-Blob von OPT_HEADER_LEN Bytes, der aus dem JSON-serialisierten Header stammt.

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)

Datenblock (N Bytes)

Der Datenblock von CaRT besteht aus einem zlib-Block und anschließend einem RC4-Block.

root@kitploit:~
RC4(ZLIB(block encoded stream))

Optionaler Footer (OPTIONAL_FOOTER_LEN Bytes)

Wie beim optionalen Header ist der optionale Footer von CaRT ein RC4-Blob von OPT_FOOTER_LEN Bytes, der aus dem JSON-serialisierten Footer stammt.

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)

Obligatorischer Footer (28 Bytes)

Die CaRT-Datei endet mit einem obligatorischen Footer, der es dem Format ermöglicht, den Footer zu lesen und die Hashes zurückzugeben, ohne die gesamte Datei lesen zu müssen.

root@kitploit:~
 4s      QQ           Q
TRAC<RESERVED><OPT_FOOTER_LEN>

Befehlszeilenschnittstelle

Durch die Installation des pip-Pakets erhalten Sie Zugriff auf die CaRT-Bibliothek und auf die CaRT-CLI.

Die CaRT-CLI räumt ihren Optionen folgende Priorität ein:

  • Für alle Optionen der CLI werden Standardwerte definiert.
  • Standardwerte werden durch Optionen in ~/.cart/cart.cfg ersetzt.
  • Werte in der Konfigurationsdatei werden durch CLI-Optionen ersetzt.

Folgende Optionen sind in der CaRT-CLI verfügbar:

root@kitploit:~
utilisation: cart [options] fichier1 fichier2 ... fichierN

            Le format de fichier CaRT est utilisé pour enregistrer et transferer des fichiers malicieux et les métadonnées associées.

            Il permet de neutraliser le fichier malicieux afin qu'il ne puisse être exécuté et l'encrypte afin d'éviter la detection et l'effacement par les anti-virus.


arguments positionels:
  fichier

options:
  -h, --help            afficher ce message d’aide et quitter
  -v, --version         afficher le numéro de version du programme et quitter
  -d, --delete          supprime le fichier original après une exécution réussie
  -f, --force           remplacer le fichier de sortie s’il existe déjà
  -i, --ignore          Ignorer la clé RC4 dans le fichier conf
  -j JSONMETA, --jsonmeta JSONMETA
                        Fournir les métadonnées de l’en-tête sous forme d’objet blob json
  -k KEY, --key KEY     Utiliser la clé RC4 privée (codé en Base64). La même clé doit être saisie pour décompresser le fichier CaRT.
  -m, --meta            Conserver les métadonnées lors de l’extraction des fichiers CaRT
  -n FILENAME, --name FILENAME
                        Utiliser cette valeur comme nom de fichier des métadonnées
  -o OUTFILE, --outfile OUTFILE
                        Définir le fichier de sortie
  -s, --showmeta        Afficher uniquement les métadonnées du fichier

            CaRT est capable de déterminer si un fichier a besoin d'être CaRTé ou déCaRTé.

            Pour CaRTer un fichier déCaRTé: cart file1

            Pour déCaRTer un fichier CaRTé: cart file1

            C'est la même commande!

Die CaRT-Konfigurationsdatei sieht wie folgt aus:

root@kitploit:~
[global]
# rc4_key est une représentation en Base64 de votre clé
rc4_key: AvUzYXNkZg==
# keep_meta est un équivalent de -m dans le CLI
keep_meta: True
# force est un équivalent de -f dans le CLI
force: True

# default_header est une paire de données clé/valeur à ajouter à l’en-tête facultatif du fichier CaRT
[default_header]
poc: Votre nom
poc_email: [email protected]

Andere CaRT-Bibliotheken

Es gibt Implementierungen in Rust und Java. Sie können sie unter den folgenden Adressen abrufen:

  • Rust: https://github.com/CybercentreCanada/cart-rs
  • Java: https://github.com/CybercentreCanada/cart-java
Tool herunterladen