Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cart — Python implementation of the CaRT library for (un)inerting files. | Kitploit
Ferramentas/GitHubGitHub/cybercentrecanada/cart
Defensive ToolsEncryption/Decryption ToolsMalware AnalysisDigital ForensicsCryptography
GitHubcybercentrecanada/cart

cart

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

Ver Repositório
537há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CaRT (Compressed and RC4 Transport)

Latest Stable Release

O formato de arquivo CaRT é usado para armazenar/transferir malware e seus metadados associados. Ele neutraliza o malware para que não possa ser executado e o criptografa para que o software antivírus não sinalize o arquivo CaRT como malware.

Vantagens

  • RÁPIDO: CaRT é tão rápido quanto compactar um arquivo.
  • STREAMING: CaRT usa zlib e RC4, que permitem codificar arquivos em streaming.
  • METADADOS: CaRT pode armazenar os metadados do arquivo no mesmo arquivo que o arquivo em si; os metadados podem ser lidos sem ler o arquivo inteiro.
  • CÁLCULO DE HASH: CaRT calcula os hashes do arquivo enquanto o codifica e armazena essas informações no rodapé.
  • TAMANHO: Os arquivos CaRT geralmente são menores que os arquivos originais porque usam compressão. (Exceto quando grandes quantidades de metadados são armazenadas no CaRT.)

Usando CaRT com STIX v2

Agora que o STIX v2 usa JSON como codificação, você pode agrupar seu relatório STIX diretamente no formato CaRT. Quando o CaRT codifica arquivos, ele adiciona metadados do arquivo *.cartmeta com o mesmo prefixo do seu arquivo. Portanto, se você salvar seu relatório STIX em um arquivo .cartmeta, o arquivo CaRT resultante terá o relatório STIX completo incorporado.

Exemplo:

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

Visão Geral do Formato

Cabeçalho Obrigatório (38 bytes)

O CaRT tem um cabeçalho obrigatório que se parece com isto

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

Em que VERSION é 1 e RESERVED é 0. Na maioria dos casos, a chave RC4 usada para descriptografar o arquivo é armazenada no cabeçalho obrigatório e é sempre a mesma coisa (os primeiros 8 dígitos de pi, duas vezes). No entanto, o CaRT oferece uma opção para substituir a chave, que então armazena bytes nulos no cabeçalho obrigatório. Você precisará então conhecer a chave para decodificar o arquivo...

Cabeçalho Opcional (OPT_HEADER_LEN bytes)

O cabeçalho opcional do CaRT é um blob RC4 de OPT_HEADER_LEN bytes de um cabeçalho serializado em JSON

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)

Bloco de Dados (N bytes)

O bloco de dados do CaRT é um bloco zlib seguido de RC4

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

Rodapé Opcional (OPTIONAL_FOOTER_LEN bytes)

Assim como o cabeçalho opcional, o rodapé opcional do CaRT é um blob RC4 de OPT_FOOTER_LEN bytes de um rodapé serializado em JSON

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)

Rodapé Obrigatório (28 bytes)

O CaRT termina seu arquivo com um rodapé obrigatório que permite ao formato ler o rodapé e retornar os hashes sem ler o arquivo inteiro

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

Interface de linha de comando

Ao instalar o pacote pip, você obtém acesso à biblioteca CaRT e também à CLI do CaRT.

A CLI do CaRT tem a seguinte prioridade para suas opções:

  • Há valores padrão para todas as opções dentro da CLI
  • Os valores padrão são substituídos por opções em ~/.cart/cart.cfg
  • Os valores no arquivo de configuração são substituídos por opções da CLI

Estas são as opções disponíveis na CLI do 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!

O arquivo de configuração do CaRT se parece com isto:

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]

Outras bibliotecas CaRT

Também existem implementações do CaRT em Rust e Java. Confira abaixo:

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

CaRT (Compressed and RC4 Transport)

O formato de arquivo CaRT é usado para armazenar/transferir malware e seus metadados associados. Ele neutraliza o malware para que não possa ser executado e o criptografa para que o software antivírus não sinalize o arquivo CaRT como malware.

Vantagens

  • RÁPIDO: É tão rápido usar o CaRT quanto compactar um arquivo.
  • STREAMING: CaRT usa zlib e RC4, o que permite codificar arquivos em streaming.
  • METADADOS: CaRT pode armazenar os metadados de um arquivo no mesmo arquivo que o próprio arquivo; os metadados podem ser lidos sem que seja necessário ler o arquivo inteiro.
  • CÁLCULO DE HASH: CaRT calcula os hashes do arquivo em paralelo à codificação do arquivo e, em seguida, armazena as informações no rodapé.
  • TAMANHO: O tamanho dos arquivos CaRT é geralmente menor que o dos arquivos originais, pois são compactados (a menos que uma grande quantidade de metadados tenha sido armazenada no CaRT).

Usando CaRT com STIX v2

Agora que a versão 2 do STIX usa JSON para codificação, você pode agrupar seus relatórios STIX diretamente no formato CaRT. Quando o CaRT codifica arquivos, ele adiciona os metadados do arquivo *.cartmeta com o mesmo prefixo usado pelo seu arquivo. Portanto, se você salvar seu relatório STIX em um arquivo .cartmeta, o relatório completo será incorporado ao arquivo CaRT resultante.

Por exemplo:

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

Visão Geral do Formato

Cabeçalho Obrigatório (38 bytes)

O CaRT tem um cabeçalho obrigatório que se parece com isto:

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

Neste cabeçalho, o valor de VERSION é 1 e o de RESERVED é 0. Na maioria dos casos, a chave RC4 usada para descriptografar o arquivo é armazenada nele e é sempre a mesma (duas vezes os primeiros 8 dígitos do valor pi). No entanto, o CaRT oferece uma maneira de substituir a chave, que consiste em armazenar bytes nulos no cabeçalho obrigatório. Você precisará então conhecer a chave para decodificar o arquivo CaRT.

Cabeçalho Opcional (OPT_HEADER_LEN bytes)

O cabeçalho opcional do CaRT é um blob RC4 de OPT_HEADER_LEN bytes retirado do cabeçalho serializado em JSON

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)

Bloco de Dados (N bytes)

O bloco de dados do CaRT é um bloco zlib seguido de RC4

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

Rodapé Opcional (OPTIONAL_FOOTER_LEN bytes)

Assim como no cabeçalho opcional, o rodapé opcional do CaRT é um blob RC4 de OPT_FOOTER_LEN bytes retirado do rodapé serializado em JSON

root@kitploit:~
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)

Rodapé Obrigatório (28 bytes)

O arquivo CaRT termina com um rodapé obrigatório que permite ao formato ler o rodapé e retornar os hashes sem ter que ler o arquivo inteiro:

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

Interface de linha de comando

Ao instalar o gerenciador de pacotes pip, você pode acessar a biblioteca CaRT e a CLI do CaRT.

A CLI do CaRT dá a seguinte prioridade às suas opções:

  • Valores padrão são definidos para todas as opções a partir da CLI
  • Os valores padrão são substituídos por opções em ~/.cart/cart.cfg
  • Os valores no arquivo de configuração são substituídos pelas opções da CLI

Estas são as opções disponíveis na CLI do 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, --filename 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!

O arquivo de configuração do CaRT se parece com isto:

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]

Outras bibliotecas para manipular arquivos com CaRT

Também existem implementações em Rust e Java. Você pode acessá-las nos seguintes endereços:

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