Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Cloak — Un outil de contournement de la censure pour échapper à la détection par des adversaires étatiques autoritaires | Kitploit
Outils/GitHubGitHub/cbeuw/cloak
Outils de Chiffrement/DéchiffrementÉvasion IDS/IPSSécurité RéseauStéganographie
GitHubcbeuw/cloak

Cloak

Un outil de contournement de la censure pour échapper à la détection par des adversaires étatiques autoritaires

Voir le dépôt
4.1k354il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Build Status codecov Go Report Card Donate

Cloak est un transport enfichable qui améliore les outils proxy traditionnels comme OpenVPN pour contourner la censure sophistiquée et la discrimination des données.

Cloak n'est pas un programme proxy autonome. Il fonctionne en faisant passer le trafic proxyé pour des activités de navigation web normales. Contrairement aux outils traditionnels qui ont des empreintes de trafic très visibles et peuvent être bloqués par des règles de filtrage simples, il est très difficile de cibler précisément Cloak avec peu de faux positifs. Cela augmente les dommages collatéraux des actions de censure, car les tentatives de blocage de Cloak pourraient également endommager les services dont dépend l'État censeur.

Pour tout observateur tiers, un hôte exécutant un serveur Cloak est impossible à distinguer d'un serveur web innocent. À la fois en observant passivement le flux de trafic vers et depuis le serveur, ainsi qu'en sondant activement les comportements d'un serveur Cloak. Ceci est réalisé grâce à une série de techniques de stéganographie cryptographique.

Cloak peut être utilisé avec tout programme proxy qui tunnelise le trafic via TCP ou UDP, comme Shadowsocks, OpenVPN et Tor. Plusieurs serveurs proxy peuvent fonctionner sur le même hôte serveur et le serveur Cloak agira comme un proxy inverse, faisant le pont entre les clients et leur proxy de destination.

Cloak multiplexe le trafic via plusieurs connexions TCP sous-jacentes, ce qui réduit le blocage de tête de ligne et élimine la surcharge d'établissement de liaison TCP. Cela rend également le modèle de trafic plus similaire à celui des sites web réels.

Cloak offre un support multi-utilisateurs, permettant à plusieurs clients de se connecter au serveur proxy sur le même port (443 par défaut). Il offre également des fonctionnalités de gestion du trafic telles que le crédit d'utilisation et le contrôle de la bande passante. Cela permet à un serveur proxy de servir plusieurs utilisateurs même si le logiciel proxy sous-jacent n'a pas été conçu pour plusieurs utilisateurs.

Cloak prend également en charge le tunnelage via un serveur CDN intermédiaire tel qu'Amazon Cloudfront. Ces services sont si largement utilisés que les tentatives de perturbation de leur trafic peuvent entraîner des dommages collatéraux très élevés pour le censeur.

Démarrage rapide

Pour déployer rapidement Cloak avec Shadowsocks sur un serveur, vous pouvez exécuter ce script écrit par @HirbodBehnam

Table des matières

  • Démarrage rapide
  • Compilation
  • Configuration
    • Serveur
    • Client
  • Installation
    • Serveur
      • Pour ajouter des utilisateurs
        • Utilisateurs sans restriction
        • Utilisateurs soumis à des contrôles de bande passante et de crédit
    • Client
  • Me soutenir

Compilation

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

Les binaires compilés se trouveront dans le dossier build.

Configuration

Des exemples de fichiers de configuration se trouvent dans le dossier example_config.

Serveur

RedirAddr est l'adresse de redirection lorsque le trafic entrant ne provient pas d'un client Cloak. Idéalement, elle doit être définie sur un site majeur autorisé par le censeur (par exemple www.bing.com).

BindAddr est une liste d'adresses sur lesquelles Cloak se liera et écoutera (par exemple [":443",":80"] pour écouter sur les ports 443 et 80 sur toutes les interfaces).

ProxyBook est un objet dont la clé est le nom de la méthode proxy utilisée côté client (sensible à la casse). Sa valeur est un tableau dont le premier élément est le protocole et le second élément est une chaîne IP:PORT du serveur proxy amont vers lequel Cloak transmettra le trafic.

Exemple :

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

PrivateKey est la clé privée statique Diffie-Hellman curve25519 encodée en base64.

BypassUID est une liste d'UID autorisés sans aucune restriction de bande passante ou de crédit.

AdminUID est l'UID de l'utilisateur admin en base64. Vous pouvez laisser ce champ vide si vous n'ajoutez que des utilisateurs à BypassUID.

DatabasePath est le chemin vers userinfo.db, qui est utilisé pour stocker les informations d'utilisation et les restrictions des utilisateurs. Cloak créera le fichier automatiquement s'il n'existe pas. Vous pouvez laisser ce champ vide si vous n'ajoutez que des utilisateurs à BypassUID. Ce champ est également sans effet si AdminUID n'est pas un UID valide ou est vide.

KeepAlive est le nombre de secondes à attendre après une inactivité avant d'envoyer des sondes TCP KeepAlive au serveur proxy amont. Une valeur nulle ou négative désactive cette fonction. La valeur par défaut est 0 (désactivé).

Client

UID est votre UID en base64.

Transport peut être direct ou CDN. Si l'hôte du serveur souhaite que vous vous connectiez directement, utilisez direct. Si un CDN est utilisé, utilisez CDN.

PublicKey est la clé publique curve25519 statique en base64, fournie par l'administrateur du serveur.

ProxyMethod est le nom de la méthode proxy que vous utilisez. Cela doit correspondre exactement à l'une des entrées de ProxyBook du serveur.

EncryptionMethod est le nom de l'algorithme de chiffrement que vous souhaitez utiliser avec Cloak. Les options sont plain, aes-256-gcm (synonyme de aes-gcm), aes-128-gcm et chacha20-poly1305. Remarque : Cloak n'a pas pour but de fournir une sécurité de transport. L'intérêt du chiffrement est de masquer les empreintes des protocoles proxy et de rendre la charge utile statistiquement aléatoire. Vous ne devez le laisser en plain que si vous êtes certain que votre outil proxy sous-jacent fournit à la fois le chiffrement et l'authentification (via AEAD ou des techniques similaires).

ServerName est le domaine que vous souhaitez faire croire à votre FAI ou pare-feu que vous visitez. Idéalement, il doit correspondre à RedirAddr dans la configuration du serveur, un site majeur autorisé par le censeur, mais ce n'est pas obligatoire. Utilisez random pour randomiser le nom du serveur pour chaque connexion.

AlternativeNames est un tableau utilisé en complément de ServerName pour mélanger différents ServerNames pour chaque nouvelle connexion. Cela peut entrer en conflit avec le mode de transport CDN si le fournisseur CDN interdit le domain fronting et rejette les domaines alternatifs.

Exemple :

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

CDNOriginHost est le nom de domaine du serveur d'origine (c'est-à-dire le serveur exécutant Cloak) en mode CDN. Cela n'a d'effet que lorsque Transport est défini sur CDN. S'il n'est pas défini, il prendra par défaut le nom d'hôte distant fourni via l'argument de ligne de commande (en mode autonome) ou par Shadowsocks (en mode plugin). Après l'établissement d'une session TLS avec le serveur CDN, ce nom de domaine sera utilisé dans l'en-tête Host de la requête HTTP pour demander au serveur CDN d'établir une connexion WebSocket avec cet hôte.

CDNWsUrlPath est le chemin d'URL utilisé pour construire la requête websocket envoyée en mode CDN, et n'a également d'effet que lorsque Transport est défini sur CDN. S'il n'est pas défini, il prendra par défaut "/". Cette option est utilisée pour construire la première ligne de la requête HTTP après l'établissement d'une session TLS. Elle est principalement destinée à un serveur Cloak derrière un proxy inverse, où seules les requêtes sous un chemin d'URL spécifique sont transmises.

NumConn est le nombre de connexions TCP sous-jacentes que vous souhaitez utiliser. La valeur par défaut de 4 devrait convenir à la plupart des gens. La définir trop élevée nuira aux performances. La définir sur 0 désactivera le multiplexage des connexions et chaque connexion TCP générera une session éphémère séparée qui sera fermée après sa terminaison. Cela le fait se comporter comme GoQuiet. Cela peut être utile pour les personnes ayant des connexions instables.

BrowserSig est le navigateur que vous souhaitez paraître utiliser. Cela n'a aucun rapport avec le navigateur que vous utilisez réellement. Actuellement, chrome, firefox et safari sont pris en charge.

KeepAlive est le nombre de secondes à attendre après une inactivité avant d'envoyer des sondes TCP KeepAlive au serveur Cloak. Une valeur nulle ou négative désactive cette fonction. La valeur par défaut est 0 (désactivé). Avertissement : L'activer pourrait rendre votre serveur plus détectable en tant que proxy, mais cela permettra au client Cloak de détecter plus rapidement une interruption Internet.

StreamTimeout est le nombre de secondes pendant lequel Cloak attend qu'une connexion entrante d'un programme proxy envoie des données, après quoi la connexion sera fermée par Cloak. Cloak n'imposera aucun délai d'attente sur les connexions TCP après leur établissement.

Installation

Serveur

  1. Installez au moins un serveur proxy sous-jacent (par exemple OpenVPN, Shadowsocks).
  2. Téléchargez la dernière version ou clonez et compilez ce dépôt.
  3. Exécutez ck-server -key. La clé publique doit être donnée aux utilisateurs, la clé privée doit rester secrète.
  4. (Ignorez si vous souhaitez uniquement ajouter des utilisateurs sans restriction) Exécutez ck-server -uid. Le nouvel UID sera utilisé comme AdminUID.
  5. Copiez example_config/ckserver.json dans un emplacement souhaité. Remplacez PrivateKey par la clé privée que vous venez d'obtenir ; remplacez AdminUID par l'UID que vous venez d'obtenir.
  6. Configurez votre serveur proxy sous-jacent pour qu'il écoute sur localhost. Modifiez ProxyBook dans le fichier de configuration en conséquence.
  7. Configurez le programme proxy. Exécutez sudo ck-server -c <chemin vers ckserver.json>. ck-server nécessite les privilèges root car il se lie à un port bas (443). Sinon, vous pouvez suivre https://superuser.com/a/892391 pour éviter d'accorder inutilement les privilèges root à ck-server.

Pour ajouter des utilisateurs

Utilisateurs sans restriction

Exécutez ck-server -uid et ajoutez l'UID dans le champ BypassUID de ckserver.json.

Utilisateurs soumis à des contrôles de bande passante et de crédit
  1. Assurez-vous d'abord d'avoir généré et défini AdminUID dans ckserver.json, ainsi qu'un chemin vers userinfo.db dans DatabasePath (Cloak créera ce fichier pour vous s'il n'existe pas déjà).
  2. Sur votre client, exécutez ck-client -s <IP du serveur> -l <un port local> -a <AdminUID> -c <chemin-vers-ckclient.json> pour entrer en mode admin.
  3. Visitez https://cbeuw.github.io/Cloak-panel (Remarque : il s'agit d'un site statique pur JS, sans backend ; toutes les données saisies sur ce site sont traitées entre votre navigateur et le point de terminaison API Cloak que vous avez spécifié. Sinon, vous pouvez télécharger le dépôt à l'adresse https://github.com/cbeuw/Cloak-panel et ouvrir index.html dans un navigateur. Aucun serveur web n'est nécessaire).
  4. Saisissez 127.0.0.1:<le port saisi à l'étape 1> comme API Base, puis cliquez sur List.
  5. Vous pouvez ajouter d'autres utilisateurs en cliquant sur le panneau +.

Remarque : la base de données utilisateur est persistante car elle est stockée sur disque. Vous n'avez pas besoin d'ajouter les utilisateurs à chaque démarrage de ck-server.

Client

Le client Android est disponible ici : https://github.com/cbeuw/Cloak-android

  1. Installez le client proxy sous-jacent correspondant à ce que le serveur propose.
  2. Téléchargez la dernière version ou clonez et compilez ce dépôt.
  3. Obtenez la clé publique et votre UID auprès de l'administrateur de votre serveur.
  4. Copiez example_config/ckclient.json dans un emplacement de votre choix. Saisissez l'UID et la PublicKey que vous avez obtenus. Définissez ProxyMethod pour qu'il corresponde exactement à l'entrée correspondante dans ProxyBook côté serveur.
  5. Configurez le programme proxy. Exécutez ck-client -c <chemin vers ckclient.json> -s <ip de votre serveur>.

Me soutenir

Si vous trouvez ce projet utile, vous pouvez visiter ma boutique de produits dérivés ; vous pouvez également me faire un don directement.

Donate

BTC: bc1q59yvpnh0356qq9vf0j2y7hx36t9ysap30spx9h

ETH: 0x8effF29a8F9bD38A367580527AC303972c92b60c

Télécharger l’outil