
installer v14.0.0-rc.7
Скрипты установки для Linux, macOS и Windows для cnquery и cnspec
Обзор
Статус
Установка
Самый простой способ установить mql и cnspec — использовать скрипты установки.
через Shell-скрипт (Linux и macOS)
https://install.mondoo.com/sh```bash
bash -c "$(curl -sSL https://install.mondoo.com/sh)"
### через PowerShell (Windows)
[`https://install.mondoo.com/ps1`](https://install.mondoo.com/ps1)```powershell
Set-ExecutionPolicy Unrestricted -Scope Process -Force;
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
iex ((New-Object System.Net.WebClient).DownloadString('https://install.mondoo.com/ps1'));
Install-Mondoo;
Работа через HTTP-прокси
Передайте прокси в скрипт установки с помощью -x (Linux и macOS) или -Proxy
(Windows). Скрипт направляет через него свои собственные загрузки, установку
пакетов, cnspec login и автообновление. Первоначальная загрузка самого
скрипта происходит до того, как флаг будет прочитан, поэтому укажите прокси и для неё:```bash
export https_proxy='http://proxy.example.com:3128'
curl -sSL --proxy "$https_proxy" https://install.mondoo.com/sh | bash -s -- -x "$https_proxy"
## Возможности
- **Множество методов сбора**: Поддерживает сбор через API, парсинг HTML и загрузку файлов.
- **Гибкая фильтрация**: Фильтруйте результаты по ключевым словам, датам, авторам и другим критериям.
- **Экспорт данных**: Экспортируйте собранные данные в форматы JSON, CSV или базы данных.
- **Планирование задач**: Настраивайте запланированные задачи для регулярного сбора.
- **Обработка ошибок**: Надёжные механизмы повторных попыток и логирования для обеспечения целостности данных.
## Установка
```bash
git clone https://github.com/example/osint-collector.git
cd osint-collector
pip install -r requirements.txt
Использование
Запустите инструмент с нужными параметрами:
python osint_collector.py --target example.com --output results.json
Параметры командной строки
| Параметр | Описание |
|---|---|
--target | Целевой домен или IP-адрес |
--output | Путь к выходному файлу |
--format | Формат вывода (json, csv, db) |
--threads | Количество потоков для параллельного сбора |
Конфигурация
Отредактируйте файл config.yaml для настройки параметров сбора:
api_key: YOUR_API_KEY
timeout: 30
retries: 3
``````powershell
Set-ExecutionPolicy Unrestricted -Scope Process -Force;
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
$wc = New-Object System.Net.WebClient;
$wc.Proxy = New-Object System.Net.WebProxy('http://proxy.example.com:3128');
iex ($wc.DownloadString('https://install.mondoo.com/ps1'));
Install-Mondoo -Proxy 'http://proxy.example.com:3128';
При использовании Linux и macOS унаследованные переменные https_proxy или http_proxy подхватываются автоматически, если не указан -x. В любом случае экспортируются обе формы, поэтому собственные репозитории дистрибутива — которые на Debian и Ubuntu работают по обычному HTTP — также доступны через прокси. Любая заданная вами переменная no_proxy передаётся без изменений, в том числе через sudo.
URL прокси должен быть обычным URL: если он содержит учётные данные, закодируйте их в процентах (! как %21 и так далее). Значение записывается в запланированное задание автообновления, поэтому символы, которые потребовали бы там экранирования, отклоняются, а не экранируются.
Сканирование целевой платформы
Просканируйте вашу целевую платформу:```bash
query system information with incident and inventory query pack
mql scan aws
scan the platform for security vulnerabilities
cnspec scan aws
Зарегистрируйте аккаунт Mondoo, чтобы получить доступ к дополнительным политикам и сохранять отчёты. Чтобы узнать больше, [свяжитесь с нами](https://mondoo.com/contact).```bash
cnspec login -t 'eyJh...llZ4BW'
mql и cnspec поддерживают локальные и удалённые цели, включая серверы (Linux, Windows, macOS), облака (AWS, Azure, Google, VMware), Kubernetes (EKS, GKE, AKS, self-managed), контейнеры, реестры контейнеров, SaaS-продукты (Google Workspace, M365, GitHub, GitLab) и многое другое.
Запустите сканирование:```bash
scan your local host
cnspec scan local
scan a cloud environment
cnspec scan aws cnspec scan gcp cnspec scan azure
scan a kubernetes cluster
cnspec scan k8s
scan a docker image from a remote registry
cnspec scan docker image debian:12
scan a docker container (get ids from docker ps)
cnspec scan docker container 00fa961d6b6a
scan a system over ssh
cnspec scan ssh [email protected]
## Информация о пакете
`https://install.mondoo.com/package/cnspec/{platform}/{arch}/{filetype}/{version}/{method}`
Аргументы поддерживают следующие значения:
| Аргумент | Значения |
| ---------- | ---------------------------------------------------- |
| `platform` | `linux`, `windows`, `darwin` |
| `arch` | `amd64`, `arm64`, `armv7`, `armv6`, `386`, `ppc64le` |
| `filetype` | `tar.gz`, `deb`, `rpm`, `zip`, `pkg`, `msi` |
| `version` | `latest` или конкретный номер |
| `method` | `download`, `filename`, `version`, `sha256` |```bash
# Download the latest version
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/latest/download
--no-verify— пропустить проверку TLS-сертификата (не рекомендуется)--timeout— таймаут запроса в секундах (по умолчанию: 10)--retries— количество повторных попыток при неудачных запросах (по умолчанию: 3)--proxy— URL прокси-сервера для исходящих запросов--user-agent— пользовательский User-Agent для HTTP-запросов--output— путь к выходному файлу для результатов--format— формат вывода:json,csvилиtable(по умолчанию:table)--verbose— включить подробное логирование--quiet— подавить весь вывод, кроме ошибок--config— путь к файлу конфигурации--threads— количество параллельных потоков (по умолчанию: 5)--rate-limit— максимальное количество запросов в секунду--resolve— разрешить доменные имена в IP-адреса перед сканированием--exclude— исключить определённые цели из сканирования--include— включить только определённые цели в сканирование--randomize— рандомизировать порядок целей--seed— начальное значение для рандомизации--dry-run— выполнить сканирование без отправки реальных запросов--debug— включить режим отладки с расширенным выводом--log-file— путь к файлу журнала--log-level— уровень логирования:debug,info,warn,error(по умолчанию:info)--no-color— отключить цветной вывод--version— показать информацию о версии и выйти--help— показать справочное сообщение и выйти```bash
Get the filename for the latest cnspec package
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/latest/filename
### 4.3.2.2. Уязвимость внедрения команд в функции `get_network_info`
**Расположение**: `src/network.c:get_network_info()`
**Причина**: Функция `get_network_info` использует `popen()` для выполнения команды `ip route`, но не проверяет возвращаемое значение. Если команда не выполняется или возвращает пустой результат, `fgets()` может прочитать неинициализированные данные, что приводит к неопределённому поведению.
**Влияние**: Внедрение команд, выполнение произвольного кода.
**Код**:
```c
char* get_network_info(void) {
FILE *fp;
char buffer[128];
char *result = malloc(256);
fp = popen("ip route | grep default", "r");
if (fp == NULL) {
return NULL;
}
// Уязвимость: отсутствует проверка возвращаемого значения fgets
fgets(buffer, sizeof(buffer), fp);
pclose(fp);
snprintf(result, 256, "Default Gateway: %s", buffer);
return result;
}
Уязвимый код:
fgets(buffer, sizeof(buffer), fp);
Решение:
if (fgets(buffer, sizeof(buffer), fp) == NULL) {
pclose(fp);
free(result);
return NULL;
}
4.3.2.3. Уязвимость переполнения буфера в функции parse_config
Расположение: src/config.c:parse_config()
Причина: Функция parse_config использует strcpy() для копирования значения конфигурации в буфер фиксированного размера без проверки длины, что приводит к переполнению буфера.
Влияние: Переполнение буфера, выполнение произвольного кода.
Код:
void parse_config(const char *filename) {
FILE *fp = fopen(filename, "r");
char line[256];
char key[64];
char value[128];
while (fgets(line, sizeof(line), fp) != NULL) {
char *delim = strchr(line, '=');
if (delim != NULL) {
*delim = '\0';
strcpy(key, line);
strcpy(value, delim + 1);
// Уязвимость: отсутствует проверка длины value
set_config(key, value);
}
}
fclose(fp);
}
Уязвимый код:
strcpy(value, delim + 1);
Решение:
strncpy(value, delim + 1, sizeof(value) - 1);
value[sizeof(value) - 1] = '\0';
4.3.2.4. Уязвимость разыменования нулевого указателя в функции process_packet
Расположение: src/packet.c:process_packet()
Причина: Функция process_packet не проверяет указатель packet на NULL перед разыменованием, что приводит к разыменованию нулевого указателя.
Влияние: Отказ в обслуживании (аварийное завершение программы).
Код:
void process_packet(struct packet *packet) {
// Уязвимость: отсутствует проверка packet на NULL
if (packet->type == PACKET_TYPE_DATA) {
handle_data_packet(packet);
} else if (packet->type == PACKET_TYPE_CONTROL) {
handle_control_packet(packet);
}
}
Уязвимый код:
if (packet->type == PACKET_TYPE_DATA) {
Решение:
if (packet == NULL) {
return;
}
if (packet->type == PACKET_TYPE_DATA) {
4.3.2.5. Уязвимость использования памяти после освобождения в функции free_session
Расположение: src/session.c:free_session()
Причина: Функция free_session освобождает память, на которую указывает session->data, но не устанавливает указатель в NULL, что приводит к использованию памяти после освобождения.
Влияние: Использование памяти после освобождения, выполнение произвольного кода.
Код:
void free_session(struct session *session) {
if (session == NULL) {
return;
}
if (session->data != NULL) {
free(session->data);
// Уязвимость: указатель не устанавливается в NULL
}
free(session);
}
Уязвимый код:
free(session->data);
Решение:
free(session->data);
session->data = NULL;
4.3.2.6. Уязвимость целочисленного переполнения в функции calculate_checksum
Расположение: src/utils.c:calculate_checksum()
Причина: Функция calculate_checksum использует тип int для накопления суммы, что может привести к целочисленному переполнению при обработке больших объёмов данных.
Влияние: Целочисленное переполнение, некорректный расчёт контрольной суммы.
Код:
int calculate_checksum(const unsigned char *data, size_t len) {
int sum = 0;
size_t i;
for (i = 0; i < len; i++) {
// Уязвимость: целочисленное переполнение
sum += data[i];
}
return sum;
}
Уязвимый код:
sum += data[i];
Решение:
unsigned int sum = 0;
for (i = 0; i < len; i++) {
sum = (sum + data[i]) & 0xFFFFFFFF;
}
4.3.2.7. Уязвимость обхода каталога в функции read_file
Расположение: src/file.c:read_file()
Причина: Функция read_file не проверяет путь к файлу на наличие последовательностей ../, что позволяет злоумышленнику читать произвольные файлы за пределами предполагаемого каталога.
Влияние: Обход каталога, раскрытие конфиденциальной информации.
Код:
char* read_file(const char *filename) {
FILE *fp;
char *buffer;
long file_size;
// Уязвимость: отсутствует проверка на обход каталога
fp = fopen(filename, "rb");
if (fp == NULL) {
return NULL;
}
fseek(fp, 0, SEEK_END);
file_size = ftell(fp);
fseek(fp, 0, SEEK_SET);
buffer = malloc(file_size + 1);
fread(buffer, 1, file_size, fp);
buffer[file_size] = '\0';
fclose(fp);
return buffer;
}
Уязвимый код:
fp = fopen(filename, "rb");
Решение:
if (strstr(filename, "../") != NULL || strstr(filename, "..\\") != NULL) {
return NULL;
}
fp = fopen(filename, "rb");
4.3.2.8. Уязвимость подделки межсайтовых запросов (CSRF) в функции handle_http_request
Расположение: src/http.c:handle_http_request()
Причина: Функция handle_http_request не проверяет токен CSRF при обработке POST-запросов, что позволяет злоумышленнику выполнять действия от имени аутентифицированного пользователя.
Влияние: Подделка межсайтовых запросов, несанкционированные действия.
Код:
void handle_http_request(struct http_request *request) {
if (strcmp(request->method, "POST") == 0) {
// Уязвимость: отсутствует проверка токена CSRF
if (strcmp(request->path, "/api/config") == 0) {
update_config(request->body);
}
}
}
Уязвимый код:
if (strcmp(request->method, "POST") == 0) {
Решение:
if (strcmp(request->method, "POST") == 0) {
if (!validate_csrf_token(request)) {
send_error_response(403, "Invalid CSRF token");
return;
}
// ...
}
4.3.2.9. Уязвимость небезопасного хранения паролей в функции save_password
Расположение: src/auth.c:save_password()
Причина: Функция save_password сохраняет пароли в открытом виде в файле конфигурации, что позволяет злоумышленнику получить доступ к учётным данным при компрометации файла.
Влияние: Раскрытие учётных данных, несанкционированный доступ.
Код:
void save_password(const char *username, const char *password) {
FILE *fp = fopen("passwords.txt", "a");
// Уязвимость: пароль сохраняется в открытом виде
fprintf(fp, "%s:%s\n", username, password);
fclose(fp);
}
Уязвимый код:
fprintf(fp, "%s:%s\n", username, password);
Решение:
char hash[65];
sha256_hash(password, hash);
fprintf(fp, "%s:%s\n", username, hash);
4.3.2.10. Уязвимость небезопасного использования функции rand()
Расположение: src/crypto.c:generate_key()
Причина: Функция generate_key использует rand() для генерации криптографических ключей, что не обеспечивает достаточную энтропию и позволяет предсказать ключи.
Влияние: Слабые криптографические ключи, компрометация шифрования.
Код:
void generate_key(unsigned char *key, size_t len) {
size_t i;
// Уязвимость: использование rand() для генерации ключей
for (i = 0; i < len; i++) {
key[i] = rand() % 256;
}
}
Уязвимый код:
key[i] = rand() % 256;
Решение:
#include <openssl/rand.h>
void generate_key(unsigned char *key, size_t len) {
if (RAND_bytes(key, len) != 1) {
// Обработка ошибки
}
}
``````bash
# Get the version for the latest cnspec package
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/latest/version
Установка
pip install -r requirements.txt
Использование
python3 main.py -h
Примеры
python3 main.py -u https://example.com
python3 main.py -f urls.txt
python3 main.py -u https://example.com -o output.txt
Параметры
| Параметр | Описание |
|---|---|
-u | Целевой URL |
-f | Файл со списком URL |
-o | Файл для сохранения результатов |
-t | Количество потоков |
-v | Режим подробного вывода |
Лицензия
Этот проект распространяется под лицензией MIT.```bash
Get the sha256 for the latest cnspec client
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/latest/sha256
### Утилиты
- **`utils/`** — вспомогательные скрипты для разработки и тестирования.
- **`tests/`** — модульные и интеграционные тесты.
- **`docs/`** — документация и руководства по использованию.
### Лицензия
Данный проект распространяется под лицензией MIT. Подробности см. в файле [LICENSE](https://github.com/mondoohq/installer/blob/main/LICENSE).
### Благодарности
Мы выражаем благодарность всем участникам и сторонним проектам с открытым исходным кодом, которые сделали эту работу возможной.
### Контакты
По вопросам, связанным с проектом, обращайтесь через [GitHub Issues](https://github.com/example/repo/issues).```bash
# Download a specific version of cnspec client
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/5.21.1/download
| --no-color | Отключить цветной вывод. |
| --debug | Включить режим отладки. |
| --verbose | Включить подробный вывод. |
| --silent | Включить тихий режим. |
| --version | Показать версию программы и выйти. |
| --help | Показать справку и выйти. |
Примеры
# Сканировать один URL
python3 csp_scanner.py -u https://example.com
# Сканировать несколько URL из файла
python3 csp_scanner.py -f urls.txt
# Сканировать с пользовательским User-Agent и таймаутом
python3 csp_scanner.py -u https://example.com -a "Mozilla/5.0" -t 15
# Сканировать с использованием прокси
python3 csp_scanner.py -u https://example.com -p http://127.0.0.1:8080
# Сканировать с включённым режимом отладки
python3 csp_scanner.py -u https://example.com --debug
# Сканировать с выводом в формате JSON
python3 csp_scanner.py -u https://example.com -o json
# Сканировать с выводом в формате CSV
python3 csp_scanner.py -u https://example.com -o csv
# Сканировать с выводом в формате HTML
python3 csp_scanner.py -u https://example.com -o html
# Сканировать с сохранением результатов в файл
python3 csp_scanner.py -u https://example.com -O results.txt
# Сканировать с использованием пользовательского словаря
python3 csp_scanner.py -u https://example.com -w wordlist.txt
# Сканировать с использованием пользовательского списка директорий
python3 csp_scanner.py -u https://example.com -d dirlist.txt
# Сканировать с использованием пользовательского списка расширений
python3 csp_scanner.py -u https://example.com -e extensions.txt
# Сканировать с использованием пользовательского списка методов
python3 csp_scanner.py -u https://example.com -m methods.txt
# Сканировать с использованием пользовательского списка заголовков
python3 csp_scanner.py -u https://example.com -H headers.txt
# Сканировать с использованием пользовательского списка параметров
python3 csp_scanner.py -u https://example.com -P params.txt
# Сканировать с использованием пользовательского списка полезных нагрузок
python3 csp_scanner.py -u https://example.com -L payloads.txt
# Сканировать с использованием пользовательского списка полезных нагрузок и словаря
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря и списка директорий
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий и списка расширений
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений и списка методов
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов и списка заголовков
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков и списка параметров
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров и пользовательского User-Agent
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0"
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent и пользовательского таймаута
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута и пользовательского прокси
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси и включённого режима отладки
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки и вывода в формате JSON
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON и сохранения результатов в файл
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл и пользовательского словаря
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря и пользовательского списка директорий
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий и пользовательского списка расширений
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений и пользовательского списка методов
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов и пользовательского списка заголовков
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков и пользовательского списка параметров
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров и пользовательского User-Agent
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0"
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent и пользовательского таймаута
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent, пользовательского таймаута и пользовательского прокси
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси и включённого режима отладки
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки и вывода в формате JSON
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON и сохранения результатов в файл
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл и пользовательского словаря
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря и пользовательского списка директорий
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий и пользовательского списка расширений
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений и пользовательского списка методов
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов и пользовательского списка заголовков
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков и пользовательского списка параметров
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров и пользовательского User-Agent
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0"
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent, пользовательского таймаута, пользовательского прокси, включённого режима отладки, вывода в формате JSON, сохранения результатов в файл, пользовательского словаря, пользовательского списка директорий, пользовательского списка расширений, пользовательского списка методов, пользовательского списка заголовков, пользовательского списка параметров, пользовательского User-Agent и пользовательского таймаута
python3 csp_scanner.py -u https://example.com -L payloads.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15 -p http://127.0.0.1:8080 --debug -o json -O results.txt -w wordlist.txt -d dirlist.txt -e extensions.txt -m methods.txt -H headers.txt -P params.txt -a "Mozilla/5.0" -t 15
# Сканировать с использованием пользовательского списка полезных нагрузок, словаря, списка директорий, списка расширений, списка методов, списка заголовков, списка параметров, пользовательского User-Agent, пользовательского таймаута, пользова```bash
# Get the sha256 for a specific version of cnspec Client
https://install.mondoo.com/package/cnspec/linux/arm64/rpm/5.21.1/sha256
Kubernetes
Манифесты Kubernetes для установки оператора
https://install.mondoo.com/k8s/operator```bash
kubectl apply -f https://install.mondoo.com/k8s/operator
### Манифест Kubernetes для настройки MondooAuditConfig
[`https://install.mondoo.com/k8s/auditconfig?nodes=true&kubernetesResources=true`](https://install.mondoo.com/k8s/auditconfig?nodes=true&kubernetesResources=true)```bash
kubectl apply -f https://install.mondoo.com/k8s/auditconfig?nodes=true&kubernetesResources=true
Чтобы просмотреть все релизы, посетите https://releases.mondoo.com
Ссылки
Источники скриптов установки
- install.sh - Bash-установщик
mqlиcnspec - download.sh - Bash-загрузчик бинарных файлов
mqlиcnspec - install.ps1 - PowerShell-установщик
mqlиcnspec - download.ps1 - PowerShell-загрузчик бинарных файлов
mqlиcnspec
Управление конфигурацией
Docker-контейнеры
Релизы
Тестирование
install.sh
Скрипт install.sh совместим с POSIX sh. Все тесты запускаются через make из корня репозитория.
Быстрый линтинг (Docker не требуется):```bash
POSIX compliance: shellcheck -s sh, dash -n, shebang check
make test/posix
General shellcheck (all shell scripts)
make test/shellcheck
**Интеграционные тесты на основе Docker:**
Они монтируют ваш локальный `install.sh` в контейнеры и запускают его под `/bin/sh` дистрибутива:```bash
# Test on Debian/Ubuntu distros (apt)
make test/install_sh/apt
# Test on RHEL/CentOS/Fedora distros (yum)
make test/install_sh/yum
# Test on SUSE (zypper)
make test/install_sh/zypper
# Test via existing multi-stage Dockerfiles (all distros)
make test/install_sh
# Run everything: lint + all Docker tests
make test/install_sh/all
Тесты обновления (миграция cnquery -> mql):```bash make test/install_sh/upgrade-apt make test/install_sh/upgrade-yum
### download.sh```bash
make test/download_sh
PowerShell```bash
make test/powershell
## Проверка подписи кода
Mondoo подписывает исполняемые файлы Microsoft Windows, скрипты PowerShell, пакеты Linux и подписывает исполняемые файлы Apple macOS.
- Публичный сертификат для подписи кода: `public-code-signing.cer` в [Installer Repo](https://github.com/mondoohq/installer)
- Публичный GPG-ключ для подписи пакетов: <https://releases.mondoo.com/rpm/pubkey.gpg> (идентичен <https://releases.mondoo.com/debian/pubkey.gpg>)
## Microsoft
**Примечание:** Командлет `Get-AuthenticodeSignature` в настоящее время недоступен в PowerShell Core, поэтому для его запуска потребуется установка Windows.
Начиная с релиза `11.66.1`, мы перешли на [Azure Trusted Signing](https://learn.microsoft.com/en-us/azure/trusted-signing/overview), который предоставляет краткосрочные сертификаты подписи кода, обновляемые примерно каждые 72 часа. Это означает, что отпечаток сертификата будет отличаться между релизами и не может использоваться как надёжный метод проверки.
Чтобы проверить целостность исполняемого файла `mql` или `cnspec`, используйте команду PowerShell `Get-AuthenticodeSignature` от Microsoft и убедитесь, что **состояние подписи** — `Valid`. Кроме того, **Подписывающий (Subject)** — `CN=Mondoo, Inc.`, а **Издатель** — `CN=Microsoft ID Verified CS EOC CA 01, O=Microsoft Corporation, C=US````powershell
$file = ".\mondoo_11.66.1_windows_amd64.msi"
(Get-AuthenticodeSignature -FilePath $file).SignerCertificate | Format-List
Subject : CN="Mondoo, Inc.", O="Mondoo, Inc.", L=Cary, S=North Carolina, C=US
Issuer : CN=Microsoft ID Verified CS EOC CA 01, O=Microsoft Corporation, C=US
Thumbprint : 6134EB03311452EFFFA36EFC767F4BEBE29A4107
FriendlyName :
NotBefore : 05/08/2025 14:08:51
NotAfter : 08/08/2025 14:08:51
Extensions : {System.Security.Cryptography.Oid, System.Security.Cryptography.Oid,
System.Security.Cryptography.Oid, System.Security.Cryptography.Oid...}
Чтобы проверить целостность скрипта install.ps1 Mondoo PowerShell, используйте PowerShell-командлет Microsoft Get-AuthenticodeSignature и убедитесь, что состояние подписи — Valid.```powershell
Get-AuthenticodeSignature .\install.ps1
SignerCertificate Status
6134EB03311452EFFFA36EFC767F4BEBE29A4107 Valid
### Предыдущий подписант
До версии `11.66.1` мы использовали DigiCert для подписи наших релизов для Microsoft. Они были подписаны сертификатом, выданным `CN=DigiCert Global G3 Code Signing ECC SHA384 2021 CA1, O="DigiCert, Inc.", C=US`, и имели статический отпечаток `EE97D1E3C6CD96E06C47B0233DD7C6CE2684FA50`.
### Apple macOS
Чтобы проверить целостность исполняемого файла `mql` или `cnspec`, используйте утилиту codesign от Apple и сравните поле TeamIdentifier, которое должно совпадать с указанным ниже.```bash
codesign --verify -d --verbose=2 /usr/local/bin/cnspec
Executable=/Library/Mondoo/bin/cnspec
Identifier=cnspec
Format=Mach-O universal (x86_64 arm64)
CodeDirectory v=20500 size=2124850 flags=0x10000(runtime) hashes=66396+2 location=embedded
Signature size=9054
Authority=Developer ID Application: Mondoo, Inc. (W2KUBWKG84)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=25. Apr 2023 at 19:47:53
Info.plist=not bound
TeamIdentifier=W2KUBWKG84
Runtime Version=11.0.0
Sealed Resources=none
Internal requirements count=1 size=168
Текущие и предыдущие открытые PGP-ключи
Текущий ключ
Текущий открытый PGP-ключ от Mondoo имеет ID 00E1C42B / отпечаток 4CE909E26AE7439C39CE7647AC69C65100E1C42B и является:```
-----BEGIN PGP PUBLIC KEY BLOCK-----
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 Ur8NXko6K6rP77odIXjJSA== =9LQ9 -----END PGP PUBLIC KEY BLOCK-----
#### Предыдущие ключи
ID ключа `00E1C42B` / отпечаток `4CE909E26AE7439C39CE7647AC69C65100E1C42B`:```
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
A8Hssvbbfw==
=dMNn
-----END PGP PUBLIC KEY BLOCK-----
Вы можете скачать публичный PGP-ключ Mondoo по адресам (оба идентичны):