
Python-Implementierung der CaRT-Bibliothek zum (De-)Inertieren von Dateien.
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.
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:
$ 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
CaRT hat einen obligatorischen Header, der wie folgt aussieht:
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...
Der optionale Header von CaRT ist ein RC4-Blob von OPT_HEADER_LEN Bytes eines JSON-serialisierten Headers.
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)
Der Datenblock von CaRT ist ein zlib- und dann ein RC4-Block.
RC4(ZLIB(block encoded stream))
Wie der optionale Header ist der optionale Footer von CaRT ein RC4-Blob von OPT_FOOTER_LEN Bytes eines JSON-serialisierten Footers.
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)
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.
4s QQ Q
TRAC<RESERVED><OPT_FOOTER_LEN>
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:
~/.cart/cart.cfg überschrieben.Dies sind die Optionen, die in der CaRT-CLI verfügbar sind:
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:
[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]
Es gibt auch Implementierungen von CaRT in Rust und Java. Schauen Sie sie sich unten an:
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.
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:
$ 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
CaRT hat einen obligatorischen Header, der wie folgt aussieht:
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.
Der optionale Header von CaRT ist ein RC4-Blob von OPT_HEADER_LEN Bytes, der aus dem JSON-serialisierten Header stammt.
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)
Der Datenblock von CaRT besteht aus einem zlib-Block und anschließend einem RC4-Block.
RC4(ZLIB(block encoded stream))
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.
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)
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.
4s QQ Q
TRAC<RESERVED><OPT_FOOTER_LEN>
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:
~/.cart/cart.cfg ersetzt.Folgende Optionen sind in der CaRT-CLI verfügbar:
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:
[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]
Es gibt Implementierungen in Rust und Java. Sie können sie unter den folgenden Adressen abrufen: