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
mhr-cfw — Un relais de Domain-Fronting qui achemine le trafic via GAS (Google Apps Script) et le transmet aux Workers Cloudflare. Conçu pour contourner le DPI. | Kitploit
Outils/GitHubGitHub/denuitt1/mhr-cfw
Proxies Web et InterceptionÉvasion IDS/IPSSécurité CloudRed Teaming
GitHubdenuitt1/mhr-cfw

mhr-cfw

Un relais de Domain-Fronting qui achemine le trafic via GAS (Google Apps Script) et le transmet aux Workers Cloudflare. Conçu pour contourner le DPI.

Voir le dépôt
4.4k4162il y a 3 moisVé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

MHR-CFW

Relais HTTP à frontière de domaine (Domain-Fronted) avec sortie via Cloudflare Worker (MITM)

GitHub

EnglishPersian

Fonctionnement

1 - Sortie via GAS + Cloudflare Worker

root@kitploit:~
Client -> Relais local -> Google/CDN Front -> Relais GAS (Google Apps Script) -> Cloudflare Worker -> Sortie
            |
            +-> Affiche www.google.com au filtre DPI du réseau

2 - Sortie via GAS + Cloudflare Worker intermédiaire + Relais amont auto-hébergé

root@kitploit:~
Client -> Relais local -> Google/CDN Front -> Relais GAS (Google Apps Script) -> Cloudflare Worker -> Relais amont auto-hébergé -> Sortie
            |
            +-> Affiche www.google.com au filtre DPI du réseau

En utilisation normale, le navigateur envoie le trafic au proxy exécuté sur votre ordinateur.
Le proxy transmet ce trafic via l’infrastructure de Google afin que le réseau ne voie qu’un domaine autorisé tel que www.google.com.
Votre relais déployé récupère ensuite le site réel via le worker Cloudflare et renvoie la réponse par le même chemin.

Ainsi, le filtre voit un trafic Google normal, tandis que la destination réelle reste cachée dans la requête du relais.


Utilisation

1 - Télécharger le projet et extraire

root@kitploit:~
git clone https://github.com/denuitt1/mhr-cfw.git
cd mhr-cfw
pip install -r requirements.txt

Impossible d’accéder directement à PyPI ? Utilisez ce miroir à la place :

root@kitploit:~
pip install -r requirements.txt -i https://mirror-pypi.runflare.com/simple/ --trusted-host mirror-pypi.runflare.com

2 - Configurer le Cloudflare Worker (worker.js)

  1. Ouvrez le Tableau de bord Cloudflare et connectez-vous avec votre compte Cloudflare.
  2. Dans la barre latérale, accédez à Compute > Workers & Pages.
  3. Cliquez sur Créer une application, choisissez Commencer par Hello World puis cliquez sur Déployer.
  4. Cliquez sur Modifier le code et supprimez tout le code par défaut dans l’éditeur.
  5. Ouvrez le fichier worker.js de ce projet (dans deploy/), copiez tout, et collez-le dans l’éditeur Apps Script.
  6. Important : Modifiez le worker sur cette ligne pour celui que vous avez créé :
    root@kitploit:~
    const WORKER_URL = "myworker.workers.dev";
    
  7. Cliquez sur Déployer.

3 - Configurer le relais Google (Code.gs)

  1. Ouvrez Google Apps Script et connectez-vous avec votre compte Google.
  2. Cliquez sur Nouveau projet.
  3. Supprimez tout le code par défaut dans l’éditeur.
  4. Ouvrez le fichier Code.gs de ce projet (dans deploy/), copiez tout, et collez-le dans l’éditeur Apps Script.
  5. Important : Modifiez le mot de passe sur cette ligne pour quelque chose que vous seul connaissez, et remplacez également l’URL du worker par votre worker Cloudflare :
    root@kitploit:~
    const AUTH_KEY = "votre-mot-de-passe-secret-ici";
    const WORKER_URL = "https://myworker.workers.dev";
    
  6. Cliquez sur Déployer → Nouveau déploiement.
  7. Choisissez Application Web comme type.
  8. Définissez :
    • Exécuter en tant que : Moi
    • Qui a accès : Tous
  9. Cliquez sur Déployer.
  10. Copiez l’ID de déploiement (il ressemble à une longue chaîne aléatoire). Vous en aurez besoin à l’étape suivante.

⚠️ Souvenez-vous du mot de passe que vous avez défini à l’étape 3. Vous utiliserez le même mot de passe dans le fichier de configuration ci-dessous.

4 - Exécuter

Cliquez sur le fichier run.bat (sous Windows) ou run.sh (sous Linux) pour démarrer le relais.

Si vous l’exécutez pour la première fois, un assistant de configuration vous demandera de saisir la clé AUTH_KEY et l’ID de déploiement de Google Apps Script.
Vous devriez voir un message indiquant que le proxy HTTP est en cours d’exécution sur 127.0.0.1:8085.

5 - Utilisation

Nous recommandons d’utiliser le client v2rayN et de configurer un proxy socks5.

Vous pouvez également utiliser l’extension FoxyProxy pour Chrome ou Firefox pour utiliser ce proxy dans votre navigateur.

6 - Tester votre connexion

Ouvrez ipleak.net dans votre navigateur. Vous devriez voir votre adresse IP définie sur celle de Cloudflare.

image

7 - Guides d’utilisation supplémentaires

Utiliser le proxy à l’intérieur d’une machine virtuelle

Lorsque vous exécutez une machine virtuelle (VM), elle opère dans un environnement réseau isolé, séparé de l’hôte. Par défaut, la VM ne peut pas accéder directement aux services tournant sur localhost de la machine hôte — y compris ce proxy.

Pour résoudre ce problème, vous devez trouver l’adresse IP de la passerelle que votre hyperviseur attribue à l’hôte, puis l’utiliser à la place de localhost lors de la configuration du proxy à l’intérieur de la VM.

Exemple : VirtualBox (mode NAT)

L’hôte est toujours accessible depuis la VM à l’adresse 10.0.2.2. Configurez le proxy :

root@kitploit:~
export http_proxy="http://10.0.2.2:8085"
export https_proxy="http://10.0.2.2:8085"
export all_proxy="socks5://10.0.2.2:8085"

Pour rendre cela permanent, ajoutez les lignes ci-dessus à ~/.bashrc et exécutez source ~/.bashrc.

Étant donné que ce proxy effectue une inspection SSL, vous pourriez voir des erreurs de certificat. Installez le fichier ca.crt inclus pour les résoudre :

root@kitploit:~
sudo cp ca.crt /usr/local/share/ca-certificates/ && sudo update-ca-certificates

Partager le proxy sur un réseau local (ex. appareils mobiles)

Vous pouvez utiliser ce proxy sur votre téléphone ou tout autre appareil du même réseau — aucun logiciel supplémentaire nécessaire.

1. Trouver l’IP de votre hôte

root@kitploit:~
# Windows
ipconfig

# Linux / macOS
ip addr

Cherchez l’IP de l’interface connectée à votre routeur (ex. 192.168.1.8).

2. Rediriger le port (Windows uniquement, si le service est lié à localhost)

Exécutez CMD en tant qu’administrateur :

root@kitploit:~
netsh interface portproxy add v4tov4 listenaddress=192.168.1.8 listenport=8085 connectaddress=127.0.0.1 connectport=8085
netsh advfirewall firewall add rule name="Proxy 8085" dir=in action=allow protocol=TCP localport=8085

3. Configurer le proxy sur votre téléphone

Connectez votre téléphone au même Wi-Fi, puis configurez le proxy manuellement :

  • Hôte : l’IP de votre hôte (ex. 192.168.1.8)
  • Port : 8085

Sur Android : Paramètres → Wi-Fi → Modifier → Proxy → Manuel
Sur iPhone : Paramètres → Wi-Fi → (réseau) → Proxy HTTP → Manuel

4. Installer le certificat CA

Transférez ca.crt sur votre téléphone, puis :

  • Android : Paramètres → Sécurité → Installer un certificat → Certificat CA
  • iPhone : Ouvrir le fichier → installer le profil → Paramètres → Général → À propos → Réglages de confiance des certificats → activer

Optionnel : IP de sortie stable via relais amont

Les CAPTCHAs (Cloudflare Turnstile/défi bot, reCAPTCHA, hCaptcha) lient les jetons à l’IP qui a résolu le défi. Les Workers Cloudflare sortent par différentes IP de bordure selon les requêtes, donc la vérification sur le site cible échoue même si vous résolvez le défi. Ce module optionnel fait que le Worker transmet tous les appels fetch() via un petit serveur Node que vous exécutez sur un VPS avec une IP stable — offrant au site cible une seule adresse de sortie cohérente.

Quand en avez-vous besoin

  • Les sites protégés par le défi bot de Cloudflare vous renvoient sans cesse vers la page de défi.
  • Les formulaires de connexion vous rejettent après avoir résolu un reCAPTCHA/hCaptcha.
  • Vous avez besoin de continuité de cookies entre les requêtes (ex. cf_clearance).

Si vous ne rencontrez pas ces problèmes, laissez-le non configuré — le Worker se comporte exactement comme avant.

Pourquoi un serveur séparé est nécessaire

Les Workers Cloudflare n’exposent pas d’IP de sortie stable — fetch() sort via un pool rotatif d’IP de bordure Cloudflare, ce qui casse exactement les jetons CAPTCHA liés à une IP. Les options d’égress statique de Cloudflare (BYOIP, Egress Workers) sont réservées aux abonnements Entreprise, donc un petit VPS avec une IP statique est la solution pratique. Le relais amont est simplement un proxy léger qui réexécute le fetch() depuis une adresse stable.

1. Déployer le relais amont sur un VPS

L’implémentation de référence est deploy/upstream-forwarder/upstream_forwarder.js.
Il nécessite Node 18+ et aucune dépendance. Exécutez-le derrière Caddy ou nginx avec TLS — le Worker rejette les URLs de relais amont non-HTTPS.

root@kitploit:~
# Sur votre VPS (exemple Ubuntu/Debian) :
sudo apt install -y nodejs   # doit être 18+
export AUTH_KEY="une-chaine-longue-aleatoire-d-au-moins-32-caracteres"
export PORT=8787
node deploy/upstream-forwarder/upstream_forwarder.js

Frontal avec Caddy pour le TLS automatique :

root@kitploit:~
forwarder.example.com {
    reverse_proxy 127.0.0.1:8787
}

Test rapide :

root@kitploit:~
curl -X POST https://forwarder.example.com/fwd \
  -H "x-upstream-auth: $AUTH_KEY" \
  -H "content-type: application/json" \
  -d '{"u":"https://httpbin.org/ip","m":"GET","h":{}}'

Le corps de la réponse décodée devrait afficher l’IP du VPS.

2. Connecter le Worker au relais amont

Dans le tableau de bord Cloudflare → votre Worker → Paramètres → Variables et secrets :

Enregistrez et redéployez le Worker.

3. Vérifier

Naviguez vers https://httpbin.org/ip via le proxy — vous devriez voir l’IP du VPS, pas celle de Cloudflare. Ensuite, revisitez un site protégé par CAPTCHA qui ne fonctionnait pas — le défi devrait maintenant être validé.

Le relais amont doit nécessiter une authentification. Sans AUTH_KEY, il refuse de démarrer. Toute personne possédant l’URL et la clé peut l’utiliser comme relais, donc gardez les deux secrets.

4. Limiter le relais amont à des hôtes spécifiques (optionnel)

Par défaut, chaque requête traitée par le Worker passe par le relais amont, ce qui consomme la bande passante du VPS même pour du trafic non concerné. Pour n’envoyer que les sites nécessitant une IP de sortie stable via le VPS, listez-les dans forwarder_hosts dans config.json — même syntaxe que bypass_hosts (nom d’hôte exact ou .suffixe). Tout ce qui n’est pas correspondant revient au fetch() direct sur le Worker.

root@kitploit:~
{
   ...
   "forwarder_hosts": [
       "example.com",
       ".cf-protected-suffix"
   ]
   ...
}

Laissez la liste vide (ou supprimez la clé) pour conserver le comportement historique « tout transférer ».


Avertissement

MHR-CFW est fourni à des fins éducatives, de test et de recherche uniquement.

  • Fourni sans garantie : Ce logiciel est fourni « EN L’ÉTAT », sans garantie expresse ou implicite, y compris la qualité marchande, l’adéquation à un usage particulier et l’absence de contrefaçon.
  • Limitation de responsabilité : Les développeurs et contributeurs ne sont pas responsables des dommages directs, indirects, accessoires, consécutifs ou autres résultant de l’utilisation de ce projet ou de l’impossibilité de l’utiliser.
  • Responsabilité de l’utilisateur : L’exécution de ce projet en dehors d’environnements de test contrôlés peut affecter les réseaux, comptes, proxys, certificats ou systèmes connectés. Vous êtes seul responsable de l’installation, de la configuration et de l’utilisation.
  • Conformité légale : Vous êtes responsable du respect de toutes les lois et réglementations locales, nationales et internationales avant d’utiliser ce logiciel.
  • Conformité aux services Google : Si vous utilisez Google Apps Script ou d’autres services Google avec ce projet, vous êtes responsable du respect des conditions d’utilisation de Google, des règles d’utilisation acceptable, des quotas et des politiques de la plateforme. Une mauvaise utilisation peut entraîner la suspension ou la résiliation de votre compte Google ou de vos déploiements.
  • Conditions de licence : L’utilisation, la copie, la distribution et la modification de ce logiciel sont régies par la licence du dépôt. Toute utilisation en dehors de ces conditions est interdite.

Contributeurs

  • Remerciements particuliers à onlymaj

Sources

  • Ce projet est basé sur MasterHttpRelayVPN

Licence

MIT

Télécharger l’outil
NomTypeValeur
UPSTREAM_FORWARDER_URLSecrethttps://forwarder.example.com/fwd
UPSTREAM_AUTH_KEYSecretle même AUTH_KEY que vous avez défini sur le VPS
UPSTREAM_FAIL_MODEVariableclosed (par défaut) — renvoie 502 en cas d’échec du relais amont. Utilisez open pour revenir au fetch direct.
UPSTREAM_TIMEOUT_MSVariable (optionnel)par défaut 25000