Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
mhr-cfw — Un Domain-Fronting Relay che instrada il traffico attraverso GAS (Google Apps Script) e lo inoltra a Cloudflare Workers. Progettato per aggirare il DPI. | Kitploit
Strumenti/GitHubGitHub/denuitt1/mhr-cfw
Proxy Web e IntercettazioneEvasione IDS/IPSSicurezza CloudRed Teaming
GitHubdenuitt1/mhr-cfw

mhr-cfw

Un Domain-Fronting Relay che instrada il traffico attraverso GAS (Google Apps Script) e lo inoltra a Cloudflare Workers. Progettato per aggirare il DPI.

Vedi Repository
4.4k41623 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

MHR-CFW

MITM Domain-Fronted HTTP Relay + Uscita Cloudflare Worker

GitHub

InglesePersiano

Come Funziona

1 - GAS + Uscita Cloudflare Worker

root@kitploit:~
Client -> Local Relay -> Google/CDN Front -> GAS (Google Apps Script) Relay -> Cloudflare Worker -> Exit
            |
            +-> Mostra www.google.com al filtro DPI di rete

2 - GAS + Cloudflare Worker Middle + Self-Hosted Upstream Forwarder Relay Exit

root@kitploit:~
Client -> Local Relay -> Google/CDN Front -> GAS (Google Apps Script) Relay -> Cloudflare Worker -> Self-Hosted Upstream Forwarder -> Exit
            |
            +-> Mostra www.google.com al filtro DPI di rete

In condizioni normali, il browser invia il traffico al proxy in esecuzione sul tuo computer. Il proxy invia quel traffico attraverso l'infrastruttura di Google, così la rete vede solo un dominio consentito come www.google.com. Il relay da te distribuito recupera quindi il sito web reale tramite il cloudflare worker e invia la risposta indietro attraverso lo stesso percorso.

Ciò significa che il filtro vede traffico normale verso Google, mentre la destinazione effettiva rimane nascosta all'interno della richiesta del relay.


Come Usare

1 - Scarica il progetto ed estrai

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

Non riesci a raggiungere PyPI direttamente? Usa questo mirror invece:

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

2 - Configura il Cloudflare Worker (worker.js)

  1. Apri il pannello di Cloudflare e accedi con il tuo account Cloudflare.
  2. Dalla barra laterale, vai su Compute > Workers & Pages
  3. Clicca su Create Application, scegli Start with Hello World e clicca su Deploy
  4. Clicca su Edit code e cancella tutto il codice predefinito nell'editor.
  5. Apri il file worker.js da questo progetto (sotto deploy/), copia tutto, e incollalo nell'editor del Worker.
  6. Importante: Cambia il worker su questa riga con il worker che hai creato:
    root@kitploit:~
    const WORKER_URL = "myworker.workers.dev";
    
  7. Clicca su Deploy.

3 - Configura il Google Relay (Code.gs)

  1. Apri Google Apps Script e accedi con il tuo account Google.
  2. Clicca su Nuovo progetto.
  3. Cancella tutto il codice predefinito nell'editor.
  4. Apri il file Code.gs da questo progetto (sotto deploy/), copia tutto, e incollalo nell'editor di Apps Script.
  5. Importante: Cambia la password su questa riga con qualcosa che solo tu conosci, e sostituisci l'URL del worker con il tuo cloudflare worker:
    root@kitploit:~
    const AUTH_KEY = "your-secret-password-here";
    const WORKER_URL = "https://myworker.workers.dev";
    
  6. Clicca su Deploy → Nuovo deployment.
  7. Scegli Web app come tipo.
  8. Imposta:
    • Esegui come: Me
    • Chi ha accesso: Chiunque
  9. Clicca su Deploy.
  10. Copia l'ID di Deployment (sembra una lunga stringa casuale). Ti servirà nel prossimo passo.

⚠️ Ricorda la password che hai impostato al passo 3. Userai la stessa password nel file di configurazione qui sotto.

4 - Esegui

Clicca sul file run.bat (su Windows) o run.sh (su Linux) per avviare il relay.

Se lo esegui per la prima volta, verrà visualizzata una procedura guidata in cui dovrai inserire AUTH_KEY e l'ID di Deployment di Google Apps Script. Dovresti vedere un messaggio che dice che il proxy HTTP è in esecuzione su 127.0.0.1:8085

5 - Utilizzo

Raccomandiamo l'uso del client v2rayN e la configurazione di un proxy socks5.

Puoi anche usare l'estensione FoxyProxy per Chrome o Firefox per utilizzare questo proxy nel tuo browser.

6 - Testa la connessione

Apri ipleak.net nel tuo browser, dovresti vedere il tuo indirizzo IP impostato come quello di Cloudflare.

image

7 - Guide aggiuntive all'uso

Usare il Proxy all'interno di una Macchina Virtuale

Quando esegui una macchina virtuale (VM), essa opera in un ambiente di rete isolato dall'host. Per impostazione predefinita, la VM non può accedere direttamente ai servizi in esecuzione su localhost dell'host — incluso questo proxy.

Per risolvere, devi trovare l'IP del gateway che il tuo hypervisor assegna all'host, quindi usarlo al posto di localhost quando configuri il proxy all'interno della VM.

Esempio: VirtualBox (modalità NAT)

L'host è sempre raggiungibile dall'interno della VM all'indirizzo 10.0.2.2. Imposta il 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"

Per renderlo permanente, aggiungi le righe sopra a ~/.bashrc ed esegui source ~/.bashrc.

Poiché questo proxy esegue l'ispezione SSL, potresti vedere errori di certificato. Installa il ca.crt incluso per risolverli:

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

Condividere il Proxy su una Rete Locale (es. Dispositivi Mobili)

Puoi usare questo proxy sul tuo telefono o su qualsiasi altro dispositivo sulla stessa rete — nessun software aggiuntivo necessario.

1. Trova l'IP del tuo host

root@kitploit:~
# Windows
ipconfig

# Linux / macOS
ip addr

Cerca l'IP dell'adattatore collegato al tuo router (es. 192.168.1.8).

2. Inoltra la porta (solo Windows, se il servizio è legato a localhost)

Esegui CMD come amministratore:

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. Configura il proxy sul tuo telefono

Collega il telefono allo stesso Wi-Fi, poi imposta il proxy manualmente:

  • Host: l'IP del tuo host (es. 192.168.1.8)
  • Porta: 8085

Su Android: Impostazioni → Wi-Fi → Modifica → Proxy → Manuale Su iPhone: Impostazioni → Wi-Fi → (rete) → Proxy HTTP → Manuale

4. Installa il certificato CA

Trasferisci ca.crt sul tuo telefono, poi:

  • Android: Impostazioni → Sicurezza → Installa un certificato → Certificato CA
  • iPhone: Apri il file → installa profilo → Impostazioni → Generali → Info → Impostazioni di fiducia dei certificati → abilitalo

Opzionale: IP di Uscita Stabile tramite Upstream Forwarder

I CAPTCHA (Cloudflare Turnstile/sfida bot, reCAPTCHA, hCaptcha) legano i token all'IP che ha risolto la sfida. I Cloudflare Worker escono attraverso IP edge diversi per ogni richiesta, quindi la verifica sul sito di destinazione fallisce anche quando risolvi la sfida. Questo componente aggiuntivo opzionale permette al Worker di inoltrare tutte le chiamate fetch() attraverso un piccolo server Node che esegui su un VPS con IP stabile — fornendo al sito di destinazione un unico indirizzo di uscita coerente.

Quando ti serve

  • Siti protetti dalla sfida bot di Cloudflare continuano a rimandarti alla pagina della sfida.
  • I moduli di login ti rifiutano dopo aver risolto un reCAPTCHA/hCaptcha.
  • Hai bisogno di continuità dei cookie tra le richieste (es. cf_clearance).

Se non incontri questi problemi, lascialo non configurato — il Worker si comporta esattamente come prima.

Perché è necessario un server separato

I Cloudflare Worker non espongono un IP di uscita stabile — fetch() esce attraverso un pool rotante di IP edge di Cloudflare, che è esattamente ciò che rompe i token CAPTCHA legati all'IP. Le opzioni di uscita statica di Cloudflare (BYOIP, Egress Workers) sono di livello Enterprise, quindi un piccolo VPS con IP statico è la soluzione pratica. Il forwarder è solo un proxy sottile che riemette fetch() da un indirizzo stabile.

1. Distribuisci il forwarder su un VPS

L'implementazione di riferimento è deploy/upstream-forwarder/upstream_forwarder.js. Richiede Node 18+ e nessuna dipendenza. Eseguilo dietro Caddy o nginx con TLS — il Worker rifiuta URL di forwarder non HTTPS.

root@kitploit:~
# Sul tuo VPS (esempio Ubuntu/Debian):
sudo apt install -y nodejs   # deve essere 18+
export AUTH_KEY="some-long-random-string-at-least-32-chars"
export PORT=8787
node deploy/upstream-forwarder/upstream_forwarder.js

Mettilo davanti a Caddy per TLS automatico:

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

Test rapido:

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":{}}'

Il corpo della risposta decodificata dovrebbe mostrare l'IP del VPS.

2. Collega il Worker al forwarder

Nel pannello Cloudflare → il tuo Worker → Impostazioni → Variabili e Segreti:

Salva e ridistribuisci il Worker.

3. Verifica

Naviga su https://httpbin.org/ip attraverso il proxy — dovresti vedere l'IP del VPS, non quello di Cloudflare. Poi rivisita un sito protetto da CAPTCHA che non funzionava — la sfida dovrebbe ora essere convalidata.

Il forwarder deve richiedere autenticazione. Senza AUTH_KEY si rifiuta di avviarsi. Chiunque abbia l'URL e la chiave può usarlo come relay, quindi mantieni entrambi segreti.

4. Limita il forwarder a host specifici (opzionale)

Per impostazione predefinita, ogni richiesta gestita dal Worker passa attraverso il forwarder, quindi anche il traffico non correlato consuma larghezza di banda del VPS. Per inviare solo i siti che necessitano di un IP di uscita stabile attraverso il VPS, elencali in forwarder_hosts in config.json — stessa sintassi di bypass_hosts (hostname esatto o .suffix). Tutto ciò che non corrisponde ripiega su fetch() diretto sul Worker.

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

Lascia la lista vuota (o rimuovi la chiave) per mantenere il comportamento storico di 'inoltra tutto'.


Dichiarazione di non responsabilità

MHR-CFW è fornito solo per scopi educativi, di test e di ricerca.

  • Fornito senza garanzia: Questo software è fornito "COSÌ COM'È", senza garanzia esplicita o implicita, inclusa la commerciabilità, l'idoneità a uno scopo particolare e la non violazione.
  • Limitazione di responsabilità: Gli sviluppatori e i contributori non sono responsabili per danni diretti, indiretti, incidentali, consequenziali o di altro tipo derivanti dall'uso di questo progetto o dall'impossibilità di utilizzarlo.
  • Responsabilità dell'utente: L'esecuzione di questo progetto al di fuori di ambienti di test controllati potrebbe influenzare reti, account, proxy, certificati o sistemi collegati. Sei l'unico responsabile per installazione, configurazione e utilizzo.
  • Conformità legale: Sei responsabile del rispetto di tutte le leggi e i regolamenti locali, nazionali e internazionali prima di utilizzare questo software.
  • Conformità ai servizi Google: Se utilizzi Google Apps Script o altri servizi Google con questo progetto, sei responsabile del rispetto dei Termini di servizio di Google, delle regole di uso accettabile, delle quote e delle politiche della piattaforma. Un uso improprio può portare alla sospensione o alla terminazione del tuo account Google o delle distribuzioni.
  • Termini di licenza: L'uso, la copia, la distribuzione e la modifica di questo software sono regolati dalla licenza del repository. Qualsiasi utilizzo al di fuori di questi termini è proibito.

Collaboratori

  • Un ringraziamento speciale a onlymaj

Fonti

  • Questo progetto è basato su MasterHttpRelayVPN

Licenza

MIT

Scarica lo strumento
NomeTipoValore
UPSTREAM_FORWARDER_URLSecrethttps://forwarder.example.com/fwd
UPSTREAM_AUTH_KEYSecretlo stesso AUTH_KEY impostato sul VPS
UPSTREAM_FAIL_MODEVariableclosed (default) — restituisce 502 in caso di errore del forwarder. Usa open per ripiegare su fetch diretto.
UPSTREAM_TIMEOUT_MSVariable (opzionale)default 25000