Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Cloak — Инструмент для обхода цензуры, предназначенный для избежания обнаружения авторитарными государственными противниками. | Kitploit
Инструменты/GitHubGitHub/cbeuw/cloak
Инструменты шифрования/дешифрованияОбход IDS/IPSСетевая безопасностьСтеганография
GitHubcbeuw/cloak

Cloak

Инструмент для обхода цензуры, предназначенный для избежания обнаружения авторитарными государственными противниками.

Репозиторий
4.1k3541 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Build Status codecov Go Report Card Donate

Cloak — это подключаемый транспорт, который расширяет возможности традиционных прокси-инструментов, таких как OpenVPN, для обхода сложной цензуры и дискриминации данных.

Cloak не является самостоятельной прокси-программой. Вместо этого он работает, маскируя прокси-трафик под обычную активность веб-серфинга. В отличие от традиционных инструментов, которые имеют очень заметные отпечатки трафика и могут быть заблокированы простыми правилами фильтрации, точно нацелиться на Cloak с малым количеством ложных срабатываний чрезвычайно сложно. Это увеличивает побочный ущерб от действий цензуры, поскольку попытки заблокировать Cloak могут также нанести ущерб сервисам, на которые полагается государство-цензор.

Для любого стороннего наблюдателя хост, на котором работает сервер Cloak, неотличим от обычного веб-сервера. Это касается как пассивного наблюдения за потоком трафика к серверу и от него, так и активного зондирования поведения сервера Cloak. Это достигается за счет использования серии методов криптографической стеганографии.

Cloak можно использовать совместно с любой прокси-программой, которая туннелирует трафик через TCP или UDP, такой как Shadowsocks, OpenVPN и Tor. На одном сервере может работать несколько прокси-серверов, а сервер Cloak будет действовать как обратный прокси, соединяя клиентов с нужным прокси-сервером.

Cloak мультиплексирует трафик через несколько базовых TCP-соединений, что уменьшает блокировку HOL и устраняет накладные расходы на рукопожатие TCP. Это также делает паттерн трафика более похожим на реальные веб-сайты.

Cloak предоставляет поддержку нескольких пользователей, позволяя нескольким клиентам подключаться к прокси-серверу на одном порту (по умолчанию 443). Он также предоставляет функции управления трафиком, такие как кредит использования и контроль пропускной способности. Это позволяет прокси-серверу обслуживать нескольких пользователей, даже если базовое прокси-программное обеспечение не было разработано для нескольких пользователей.

Cloak также поддерживает туннелирование через промежуточный CDN-сервер, такой как Amazon Cloudfront. Подобные сервисы настолько широко используются, что попытки нарушить трафик к ним могут привести к очень высокому побочному ущербу для цензора.

Быстрый старт

Для быстрого развертывания Cloak с Shadowsocks на сервере можно запустить этот скрипт, написанный @HirbodBehnam

Содержание

  • Quick Start
  • Build
  • Configuration
    • Server
    • Client
  • Setup
    • Server
      • To add users
        • Unrestricted users
        • Users subject to bandwidth and credit controls
    • Client
  • Support me

Сборка

root@kitploit:~
git clone https://github.com/cbeuw/Cloak
cd Cloak
go get ./...
make

Собранные бинарные файлы будут в папке build.

Конфигурация

Примеры конфигурационных файлов можно найти в папке example_config.

Сервер

RedirAddr — это адрес перенаправления, когда входящий трафик не от клиента Cloak. В идеале он должен быть установлен на крупный сайт, разрешенный цензором (например, www.bing.com).

BindAddr — это список адресов, которые Cloak будет привязывать и прослушивать (например, [":443",":80"] для прослушивания портов 443 и 80 на всех интерфейсах).

ProxyBook — это объект, ключом которого является имя ProxyMethod, используемое на стороне клиента (чувствительно к регистру). Его значение представляет собой массив, первый элемент которого — протокол, а второй элемент — строка IP:PORT вышестоящего прокси-сервера, которому Cloak будет перенаправлять трафик.

Пример:

root@kitploit:~
{
  "ProxyBook": {
    "shadowsocks": [
      "tcp",
      "localhost:51443"
    ],
    "openvpn": [
      "tcp",
      "localhost:12345"
    ]
  }
}

PrivateKey — это статический закрытый ключ curve25519 Diffie-Hellman, закодированный в base64.

BypassUID — это список UID, которые авторизованы без каких-либо ограничений по пропускной способности или кредиту.

AdminUID — это UID администратора в base64. Вы можете оставить это поле пустым, если вы добавляете пользователей только в BypassUID.

DatabasePath — это путь к userinfo.db, который используется для хранения информации об использовании и ограничениях пользователей. Cloak создаст файл автоматически, если он не существует. Вы можете оставить это поле пустым, если вы добавляете пользователей только в BypassUID. Это поле также не действует, если AdminUID не является действительным UID или пуст.

KeepAlive — это количество секунд, после которых ОС будет отправлять TCP KeepAlive-пробы вышестоящему прокси-серверу после отсутствия активности. Нулевое или отрицательное значение отключает эту функцию. По умолчанию 0 (отключено).

Клиент

UID — ваш UID в base64.

Transport может быть direct или CDN. Если хост сервера хочет, чтобы вы подключались к нему напрямую, используйте direct. Если вместо этого используется CDN, используйте CDN.

PublicKey — это открытый ключ curve25519 в base64, предоставленный администратором сервера.

ProxyMethod — это имя используемого вами прокси-метода. Оно должно точно соответствовать одной из записей в ProxyBook сервера.

EncryptionMethod — это имя алгоритма шифрования, который вы хотите использовать в Cloak. Варианты: plain, aes-256-gcm (синоним aes-gcm), aes-128-gcm и chacha20-poly1305. Примечание: Cloak не предназначен для обеспечения безопасности транспорта. Смысл шифрования — скрыть отпечатки прокси-протоколов и сделать полезную нагрузку статистически случайной. Вы можете оставить значение plain только в том случае, если уверены, что ваш основной прокси-инструмент уже обеспечивает И шифрование, И аутентификацию (с помощью AEAD или аналогичных методов).

ServerName — это домен, который вы хотите, чтобы ваш провайдер или брандмауэр думали, что вы посещаете. В идеале он должен соответствовать RedirAddr в конфигурации сервера — крупному сайту, разрешенному цензором, но это не обязательно. Используйте random, чтобы рандомизировать имя сервера для каждого нового соединения.

AlternativeNames — это массив, используемый вместе с ServerName для переключения между разными ServerNames для каждого нового соединения. Это может конфликтовать с режимом транспорта CDN, если провайдер CDN запрещает подмену домена (domain fronting) и отклоняет альтернативные домены.

Пример:

root@kitploit:~
{
  "ServerName": "bing.com",
  "AlternativeNames": ["cloudflare.com", "github.com"]
}

CDNOriginHost — это доменное имя исходного сервера (т.е. сервера, на котором работает Cloak) в режиме CDN. Этот параметр действует только когда Transport установлен в CDN. Если не задан, по умолчанию будет использоваться удаленное имя хоста, переданное через аргумент командной строки (в автономном режиме) или через Shadowsocks (в режиме плагина). После установления TLS-сессии с CDN-сервером это доменное имя будет использоваться в заголовке Host HTTP-запроса, чтобы попросить CDN-сервер установить WebSocket-соединение с этим хостом.

CDNWsUrlPath — это путь URL, используемый для построения запроса WebSocket, отправляемого в режиме CDN. Также действует только когда Transport установлен в CDN. Если не задан, по умолчанию "/". Эта опция используется для построения первой строки HTTP-запроса после установления TLS-сессии. В основном предназначена для сервера Cloak, работающего за обратным прокси, когда пересылаются только запросы на определенный путь.

NumConn — это количество базовых TCP-соединений, которое вы хотите использовать. Значение по умолчанию 4 подходит для большинства пользователей. Слишком высокое значение ухудшит производительность. Установка 0 отключит мультиплексирование соединений: каждое TCP-соединение будет порождать отдельную короткоживущую сессию, которая закроется после её завершения. Это делает поведение похожим на GoQuiet. Может быть полезно для пользователей с нестабильным соединением.

BrowserSig — это браузер, который вы хотите выдавать за используемый. Не относится к реально используемому браузеру. В настоящее время поддерживаются chrome, firefox и safari.

KeepAlive — это количество секунд, после которых ОС будет отправлять TCP KeepAlive-пробы серверу Cloak после отсутствия активности. Нулевое или отрицательное значение отключает. По умолчанию 0 (отключено). Предупреждение: включение может сделать ваш сервер более обнаруживаемым как прокси, но позволит клиенту Cloak быстрее обнаруживать прерывание интернет-соединения.

StreamTimeout — это количество секунд, в течение которых Cloak ожидает данные от прокси-программы на входящем соединении, после чего соединение будет закрыто Cloak. После установки TCP-соединения Cloak не будет принудительно применять тайм-аут.

Настройка

Сервер

  1. Установите хотя бы один базовый прокси-сервер (например, OpenVPN, Shadowsocks).
  2. Загрузите последний релиз или клонируйте и соберите этот репозиторий.
  3. Запустите ck-server -key. Открытый ключ следует передать пользователям, закрытый ключ должен храниться в секрете.
  4. (Пропустите, если вы хотите добавить только пользователей без ограничений) Запустите ck-server -uid. Новый UID будет использоваться как AdminUID.
  5. Скопируйте example_config/ckserver.json в нужное место. Измените PrivateKey на полученный закрытый ключ; измените AdminUID на полученный UID.
  6. Настройте ваш базовый прокси-сервер так, чтобы он слушал на localhost. Отредактируйте ProxyBook в конфигурационном файле соответствующим образом.
  7. Настройте прокси-программу. Запустите sudo ck-server -c <путь к ckserver.json>. ck-server требует права root, так как привязывается к порту с низким номером (443). Альтернативно вы можете следовать https://superuser.com/a/892391, чтобы не давать ck-server права root без необходимости.

Добавление пользователей

Пользователи без ограничений

Запустите ck-server -uid и добавьте UID в поле BypassUID в ckserver.json.

Пользователи с контролем пропускной способности и кредита
  1. Сначала убедитесь, что вы сгенерировали и установили AdminUID в ckserver.json, а также указали путь к userinfo.db в DatabasePath (Cloak создаст этот файл, если его ещё нет).
  2. На вашем клиенте запустите ck-client -s <IP сервера> -l <локальный порт> -a <AdminUID> -c <путь к ckclient.json>, чтобы войти в режим администратора.
  3. Перейдите на https://cbeuw.github.io/Cloak-panel (Примечание: это статический сайт на чистом JavaScript, без серверной части; все данные, введенные на этом сайте, обрабатываются между вашим браузером и указанной конечной точкой API Cloak. Альтернативно вы можете загрузить репозиторий https://github.com/cbeuw/Cloak-panel и открыть index.html в браузере. Веб-сервер не требуется.)
  4. Введите 127.0.0.1:<порт, который вы указали в шаге 1> в качестве API Base и нажмите List.
  5. Вы можете добавлять новых пользователей, нажимая панель +.

Примечание: база данных пользователей сохраняется на диске. Вам не нужно добавлять пользователей заново при каждом запуске ck-server.

Клиент

Android-клиент доступен здесь: https://github.com/cbeuw/Cloak-android

  1. Установите соответствующий прокси-клиент для базового протокола, который использует сервер.
  2. Загрузите последний релиз или клонируйте и соберите этот репозиторий.
  3. Получите открытый ключ и ваш UID от администратора сервера.
  4. Скопируйте example_config/ckclient.json в выбранное вами место. Введите полученные UID и PublicKey. Установите ProxyMethod так, чтобы он в точности соответствовал соответствующей записи в ProxyBook на стороне сервера.
  5. Настройте прокси-программу. Запустите ck-client -c <путь к ckclient.json> -s <ip вашего сервера>

Поддержать проект

Если вы находите этот проект полезным, вы можете посетить мой магазин мерча; также вы можете сделать пожертвование напрямую мне

Donate

BTC: bc1q59yvpnh0356qq9vf0j2y7hx36t9ysap30spx9h

ETH: 0x8effF29a8F9bD38A367580527AC303972c92b60c

Скачать инструмент