
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