
Python implementation of the CaRT library for (un)inerting files.
Формат файла CaRT используется для хранения/передачи вредоносного ПО и связанных с ним метаданных. Он обезвреживает вредоносное ПО, чтобы его нельзя было запустить, и шифрует его, чтобы антивирусное ПО не могло пометить файл CaRT как вредоносное ПО.
Теперь, когда STIX v2 использует JSON в качестве кодировки, вы можете упаковывать свой отчёт STIX непосредственно в формат CaRT.
Когда CaRT кодирует файлы, он добавляет метаданные из файла *.cartmeta с тем же префиксом, что и у вашего файла.
Поэтому, если вы сохраните свой отчёт STIX в файл .cartmeta, итоговый файл CaRT будет содержать полный отчёт STIX.
Пример:
$ ls
file.exe - Файл, который я хочу закодировать
file.exe.cartmeta - Отчёт STIX для file.exe
$ cart file.exe
$ ls
file.exe - Файл, который я хочу закодировать
file.exe.cartmeta - Отчёт STIX для file.exe
file.exe.cart - Файл CaRT, содержащий и file.exe, и его отчёт STIX
CaRT имеет обязательный заголовок, который выглядит так:
4s h Q 16s Q
CART<VERSION><RESERVED><ARC4KEY><OPT_HEADER_LEN>
Где VERSION равен 1, а RESERVED — 0. В большинстве случаев ключ RC4, используемый для расшифровки файла, хранится в обязательном заголовке и всегда одинаков (первые 8 цифр числа пи, повторённые дважды). Однако CaRT предоставляет возможность переопределить ключ; в этом случае в обязательном заголовке сохраняются нулевые байты. Тогда вам нужно будет знать ключ, чтобы распаковать файл CaRT...
Необязательный заголовок CaRT — это RC4-блоб размером OPT_HEADER_LEN байт, содержащий JSON-сериализованный заголовок:
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)
Блок данных CaRT — это блок, сначала сжатый с помощью zlib, а затем зашифрованный с помощью RC4:
RC4(ZLIB(block encoded stream))
Как и необязательный заголовок, необязательный концевик CaRT — это RC4-блоб размером OPT_FOOTER_LEN байт, содержащий JSON-сериализованный концевик:
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)
CaRT завершает свой файл обязательным концевиком, который позволяет формату прочитать концевик и вернуть хеши, не читая весь файл:
4s QQ Q
TRAC<RESERVED><OPT_FOOTER_LEN>
Установив pip-пакет, вы получаете доступ к библиотеке CaRT, а также к CLI CaRT.
CLI CaRT имеет следующий приоритет для своих опций:
~/.cart/cart.cfgВот какие опции доступны в CLI CaRT:
usage: cart [options] file1 file2 ... fileN
Формат файла CaRT используется для хранения/передачи вредоносного ПО и связанных с ним метаданных.
Он обезвреживает вредоносное ПО, чтобы его нельзя было запустить, и шифрует его, чтобы антивирусное ПО
не могло пометить файл CaRT как вредоносное ПО.
positional arguments:
file
options:
-h, --help показать это справочное сообщение и выйти
-v, --version показать номер версии программы и выйти
-d, --delete удалить исходный файл после успешного выполнения операции
-f, --force заменить выходной файл, если он уже существует
-i, --ignore игнорировать ключ RC4 из конфигурационного файла
-j JSONMETA, --jsonmeta JSONMETA
предоставить метаданные заголовка в виде JSON-блобa
-k KEY, --key KEY использовать закрытый ключ RC4 (в кодировке base64). Тот же ключ необходимо указать для распаковки CaRT.
-m, --meta сохранять метаданные при извлечении CaRT-файлов
-n FILENAME, --name FILENAME
использовать это значение как имя файла метаданных
-o OUTFILE, --outfile OUTFILE
задать выходной файл
-s, --showmeta показывать только метаданные файла
CaRT достаточно умён, чтобы определить, нужно ли файл упаковать в CaRT или распаковать из CaRT.
Чтобы упаковать в CaRT файл, не являющийся CaRT-файлом: cart file1
Чтобы распаковать CaRT-файл: cart file1
Это одна и та же команда!
Конфигурационный файл CaRT выглядит так:
[global]
# rc4_key — это представление вашего ключа в base64
rc4_key: AvUzYXNkZg==
# keep_meta эквивалентен -m в CLI
keep_meta: True
# force эквивалентен -f в CLI
force: True
# default_header — это пара данных «ключ/значение», добавляемая в CaRT в необязательный заголовок
[default_header]
poc: Ваше имя
poc_email: [email protected]
Существуют также реализации CaRT на Rust и Java. Ознакомьтесь с ними ниже:
Формат файла CaRT используется для хранения/передачи вредоносного ПО и связанных с ним метаданных. Он обезвреживает вредоносное ПО, чтобы его нельзя было запустить, и шифрует его, чтобы антивирусное ПО не могло пометить файл CaRT как вредоносное ПО.
Теперь, когда STIX v2 использует JSON в качестве кодировки, вы можете упаковывать свой отчёт STIX непосредственно в формат CaRT.
Когда CaRT кодирует файлы, он добавляет метаданные из файла *.cartmeta с тем же префиксом, что и у вашего файла.
Поэтому, если вы сохраните свой отчёт STIX в файл .cartmeta, итоговый файл CaRT будет содержать полный отчёт STIX.
Пример:
$ ls
file.exe - Файл, который я хочу закодировать
file.exe.cartmeta - Отчёт STIX для file.exe
$ cart file.exe
$ ls
file.exe - Файл, который я хочу закодировать
file.exe.cartmeta - Отчёт STIX для file.exe
file.exe.cart - Файл CaRT, содержащий и file.exe, и его отчёт STIX
CaRT имеет обязательный заголовок, который выглядит так:
4s h Q 16s Q
CART<VERSION><RESERVED><ARC4KEY><OPT_HEADER_LEN>
Где VERSION равен 1, а RESERVED — 0. В большинстве случаев ключ RC4, используемый для расшифровки файла, хранится в обязательном заголовке и всегда одинаков (первые 8 цифр числа пи, повторённые дважды). Однако CaRT предоставляет возможность переопределить ключ; в этом случае в обязательном заголовке сохраняются нулевые байты. Тогда вам нужно будет знать ключ, чтобы распаковать файл CaRT...
Необязательный заголовок CaRT — это RC4-блоб размером OPT_HEADER_LEN байт, содержащий JSON-сериализованный заголовок:
RC4(<JSON_SERIALIZED_OPTIONAL_HEADER>)
Блок данных CaRT — это блок, сначала сжатый с помощью zlib, а затем зашифрованный с помощью RC4:
RC4(ZLIB(block encoded stream))
Как и необязательный заголовок, необязательный концевик CaRT — это RC4-блоб размером OPT_FOOTER_LEN байт, содержащий JSON-сериализованный концевик:
RC4(<JSON_SERIALIZED_OPTIONAL_FOOTER>)
CaRT завершает свой файл обязательным концевиком, который позволяет формату прочитать концевик и вернуть хеши, не читая весь файл:
4s QQ Q
TRAC<RESERVED><OPT_FOOTER_LEN>
Установив pip-пакет, вы получаете доступ к библиотеке CaRT, а также к CLI CaRT.
CLI CaRT имеет следующий приоритет для своих опций:
~/.cart/cart.cfgВот какие опции доступны в CLI CaRT:
usage: cart [options] file1 file2 ... fileN
Формат файла CaRT используется для хранения/передачи вредоносного ПО и связанных с ним метаданных.
Он обезвреживает вредоносное ПО, чтобы его нельзя было запустить, и шифрует его, чтобы антивирусное ПО
не могло пометить файл CaRT как вредоносное ПО.
positional arguments:
file
options:
-h, --help показать это справочное сообщение и выйти
-v, --version показать номер версии программы и выйти
-d, --delete удалить исходный файл после успешного выполнения операции
-f, --force заменить выходной файл, если он уже существует
-i, --ignore игнорировать ключ RC4 из конфигурационного файла
-j JSONMETA, --jsonmeta JSONMETA
предоставить метаданные заголовка в виде JSON-блобa
-k KEY, --key KEY использовать закрытый ключ RC4 (в кодировке base64). Тот же ключ необходимо указать для распаковки CaRT.
-m, --meta сохранять метаданные при извлечении CaRT-файлов
-n FILENAME, --name FILENAME
использовать это значение как имя файла метаданных
-o OUTFILE, --outfile OUTFILE
задать выходной файл
-s, --showmeta показывать только метаданные файла
CaRT достаточно умён, чтобы определить, нужно ли файл упаковать в CaRT или распаковать из CaRT.
Чтобы упаковать в CaRT файл, не являющийся CaRT-файлом: cart file1
Чтобы распаковать CaRT-файл: cart file1
Это одна и та же команда!
Конфигурационный файл CaRT выглядит так:
[global]
# rc4_key — это представление вашего ключа в base64
rc4_key: AvUzYXNkZg==
# keep_meta эквивалентен -m в CLI
keep_meta: True
# force эквивалентен -f в CLI
force: True
# default_header — это пара данных «ключ/значение», добавляемая в CaRT в необязательный заголовок
[default_header]
poc: Ваше имя
poc_email: [email protected]
Существуют также реализации CaRT на Rust и Java. Ознакомьтесь с ними ниже: