Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cart — Python implementation of the CaRT library for (un)inerting files. | Kitploit
Strumenti/GitHubGitHub/cybercentrecanada/cart
Defensive ToolsEncryption/Decryption ToolsMalware AnalysisDigital ForensicsCryptography
GitHubcybercentrecanada/cart

cart

Python implementation of the CaRT library for (un)inerting files.

Vedi Repository
5371 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CaRT (Trasporto Compresso e RC4)

Latest Stable Release

Il formato di file CaRT viene utilizzato per archiviare/trasferire malware e i relativi metadati. Neutralizza il malware rendendolo non eseguibile e lo cifra in modo che i software antivirus non possano segnalare il file CaRT come malware.

Vantaggi

  • VELOCE: CaRT è veloce quanto comprimere un file
  • STREAMING: CaRT utilizza zlib e RC4, che consentono di codificare i file in streaming
  • METADATI: CaRT può memorizzare i metadati del file nello stesso file in cui è contenuto il file stesso; i metadati possono essere letti senza dover leggere l'intero file
  • CALCOLO DELL'HASH: CaRT calcola gli hash del file mentre lo codifica e memorizza queste informazioni nel piè di pagina
  • DIMENSIONE: I file CaRT sono solitamente più piccoli dei file originali perché utilizzano la compressione. (Tranne nel caso in cui venga memorizzata una grande quantità di metadati nel CaRT)

Utilizzare CaRT con STIX v2

Ora che STIX v2 utilizza JSON come codifica, puoi raggruppare direttamente il tuo report STIX nel formato CaRT. Quando CaRT codifica i file, aggiunge i metadati dal file *.cartmeta con lo stesso prefisso del tuo file. Pertanto, se salvi il tuo report STIX in un file .cartmeta, il file CaRT risultante conterrà l'intero report STIX al suo interno.

Esempio:

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

Panoramica del formato

Intestazione obbligatoria (38 byte)

CaRT ha un'intestazione obbligatoria che si presenta così

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

Dove VERSION è 1 e RESERVED è 0. Nella maggior parte dei casi, la chiave RC4 utilizzata per decifrare il file è memorizzata nell'intestazione obbligatoria ed è sempre la stessa (le prime 8 cifre di pi greco due volte). Tuttavia, CaRT offre la possibilità di sostituire la chiave, che in tal caso memorizza byte nulli nell'intestazione obbligatoria. A quel punto dovrai conoscere la chiave per eseguire l'unCaRT del file...

Intestazione facoltativa (OPT_HEADER_LEN byte)

L'intestazione facoltativa di CaRT è un blob RC4 di OPT_HEADER_LEN byte di un'intestazione serializzata in JSON

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)

Blocco dati (N byte)

Il blocco dati di CaRT è un blocco zlib seguito da un blocco RC4

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

Piè di pagina facoltativo (OPTIONAL_FOOTER_LEN byte)

Come l'intestazione facoltativa, il piè di pagina facoltativo di CaRT è un blob RC4 di OPT_FOOTER_LEN byte di un piè di pagina serializzato in JSON

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)

Piè di pagina obbligatorio (28 byte)

CaRT termina il file con un piè di pagina obbligatorio che consente al formato di leggere il piè di pagina e restituire gli hash senza leggere l'intero file

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

Interfaccia a riga di comando

Installando il pacchetto pip, si ha accesso alla libreria CaRT e anche all'interfaccia a riga di comando di CaRT.

L'interfaccia a riga di comando di CaRT ha la seguente priorità per le sue opzioni:

  • Esistono valori predefiniti per tutte le opzioni all'interno dell'interfaccia a riga di comando
  • I valori predefiniti vengono sovrascritti dalle opzioni in ~/.cart/cart.cfg
  • I valori nel file di configurazione vengono sovrascritti dalle opzioni dell'interfaccia a riga di comando

Queste sono le opzioni disponibili nell'interfaccia a riga di comando di CaRT:

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!

Il file di configurazione di CaRT si presenta così:

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]

Altre librerie CaRT

Esistono anche implementazioni di CaRT in Rust e Java. Dai un'occhiata qui sotto:

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

CaRT (Trasporto Compresso e RC4)

Il formato di file CaRT consente di archiviare e trasferire i malware e i metadati associati. Neutralizza i malware in modo che non possano essere eseguiti e li cifra così che il software antivirus non segnali il file CaRT come malware.

Vantaggi

  • VELOCE: CaRT è veloce quanto comprimere un file
  • STREAMING: CaRT utilizza zlib e RC4, che consentono di codificare i file in streaming
  • METADATI: CaRT può memorizzare i metadati di un file nello stesso file in cui è contenuto il file stesso; i metadati possono essere letti senza dover leggere l'intero file
  • CALCOLO DEGLI HASH: CaRT calcola gli hash del file mentre lo codifica e memorizza queste informazioni nel piè di pagina
  • DIMENSIONE: I file CaRT sono generalmente più piccoli dei file originali grazie alla compressione. (Tranne nel caso in cui venga memorizzata una grande quantità di metadati nel CaRT)

Utilizzare CaRT con STIX v2

Ora che STIX v2 utilizza JSON per la codifica, puoi includere i tuoi report STIX direttamente nel formato CaRT. Quando CaRT codifica i file, aggiunge i metadati dal file *.cartmeta con lo stesso prefisso utilizzato dal tuo file. Di conseguenza, se salvi il tuo report STIX in un file .cartmeta, il report completo verrà integrato nel file CaRT risultante.

Per esempio:

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

Panoramica del formato

Intestazione obbligatoria (38 byte)

CaRT ha un'intestazione obbligatoria che assomiglia a quanto segue:

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

In questa intestazione, VERSION è 1 e RESERVED è 0. Nella maggior parte dei casi, la chiave RC4 utilizzata per decifrare il file è memorizzata al suo interno ed è sempre la stessa (le prime 8 cifre di pi greco due volte). CaRT offre tuttavia un modo per sostituire la chiave, che consiste nel memorizzare byte nulli nell'intestazione obbligatoria. A quel punto dovrai conoscere la chiave per decodificare il file CaRT.

Intestazione facoltativa (OPT_HEADER_LEN byte)

L'intestazione facoltativa di CaRT è un blob RC4 di OPT_HEADER_LEN byte di un'intestazione serializzata in JSON

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)

Blocco dati (N byte)

Il blocco dati di CaRT è una libreria software di compressione dati (zlib) seguita da un blocco RC4

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

Piè di pagina facoltativo (OPTIONAL_FOOTER_LEN byte)

Come l'intestazione facoltativa, il piè di pagina facoltativo di CaRT è un blob RC4 di OPT_FOOTER_LEN byte di un piè di pagina serializzato in JSON

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)

Piè di pagina obbligatorio (28 byte)

CaRT termina il file con un piè di pagina obbligatorio che consente al formato di leggere il piè di pagina e restituire gli hash senza dover leggere l'intero file

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

Interfaccia a riga di comando

Installando il pacchetto pip, puoi accedere alla libreria CaRT e anche all'interfaccia a riga di comando di CaRT.

L'interfaccia a riga di comando di CaRT ha la seguente priorità per le sue opzioni:

  • Esistono valori predefiniti per tutte le opzioni all'interno dell'interfaccia a riga di comando
  • I valori predefiniti vengono sovrascritti dalle opzioni in ~/.cart/cart.cfg
  • I valori del file di configurazione vengono sovrascritti dalle opzioni dell'interfaccia a riga di comando

Queste sono le opzioni disponibili nell'interfaccia a riga di comando di CaRT:

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!

Il file di configurazione di CaRT si presenta così:

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]

Altre librerie per manipolare i file con CaRT

Esistono implementazioni in Rust e in Java. Puoi accedervi ai seguenti indirizzi:

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