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
Strumenti/GitHubGitHub/cbeuw/cloak
Strumenti di Crittografia/DecrittografiaEvasione IDS/IPSSicurezza di ReteSteganografia
GitHubcbeuw/cloak

Cloak

Uno strumento di elusione della censura per evitare il rilevamento da parte di avversari statali autoritari

Vedi Repository
4.1k35491 anno 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

Build Status codecov Go Report Card Donate

Cloak è un trasporto collegabile che migliora strumenti proxy tradizionali come OpenVPN per eludere la censura sofisticata e la discriminazione dei dati.

Cloak non è un programma proxy autonomo. Piuttosto, funziona mascherando il traffico proxy come normali attività di navigazione web. A differenza degli strumenti tradizionali, che hanno impronte di traffico molto evidenti e possono essere bloccati da semplici regole di filtraggio, è molto difficile colpire Cloak con precisione con pochi falsi positivi. Questo aumenta il danno collaterale delle azioni di censura, poiché i tentativi di bloccare Cloak potrebbero danneggiare anche i servizi da cui lo Stato censore dipende.

Per qualsiasi osservatore terzo, un host che esegue il server Cloak è indistinguibile da un server web innocuo. Sia durante l'osservazione passiva del flusso di traffico verso e dal server, sia durante il probing attivo dei comportamenti di un server Cloak. Ciò è ottenuto attraverso l'uso di una serie di tecniche di steganografia crittografica.

Cloak può essere utilizzato insieme a qualsiasi programma proxy che tunnelizza il traffico tramite TCP o UDP, come Shadowsocks, OpenVPN e Tor. Più server proxy possono essere eseguiti sullo stesso host server e il server Cloak agirà come proxy inverso, collegando i client con il loro proxy finale desiderato.

Cloak multiplexa il traffico attraverso più connessioni TCP sottostanti, riducendo il blocco di testa di linea ed eliminando l'overhead dell'handshake TCP. Questo rende anche il modello di traffico più simile a quello dei siti web reali.

Cloak fornisce supporto multiutente, permettendo a più client di connettersi al server proxy sulla stessa porta (443 di default). Fornisce anche funzionalità di gestione del traffico come il credito di utilizzo e il controllo della larghezza di banda. Ciò permette a un server proxy di servire più utenti anche se il software proxy sottostante non è stato progettato per più utenti.

Cloak supporta anche il tunneling attraverso un server CDN intermedio come Amazon Cloudfront. Tali servizi sono così ampiamente utilizzati che i tentativi di interrompere il traffico verso di essi possono causare danni collaterali molto elevati per il censore.

Avvio Veloce

Per distribuire rapidamente Cloak con Shadowsocks su un server, puoi eseguire questo script scritto da @HirbodBehnam

Indice dei contenuti

  • Avvio Veloce
  • Compilazione
  • Configurazione
    • Server
    • Client
  • Setup
    • Server
      • Per aggiungere utenti
        • Utenti senza restrizioni
        • Utenti soggetti a controlli di larghezza di banda e credito
    • Client
  • Supportami

Compilazione

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

I binari compilati si troveranno nella cartella build.

Configurazione

Esempi di file di configurazione si trovano nella cartella example_config.

Server

RedirAddr è l'indirizzo di reindirizzamento quando il traffico in entrata non proviene da un client Cloak. Idealmente dovrebbe essere impostato su un sito web importante consentito dal censore (ad es. www.bing.com)

BindAddr è un elenco di indirizzi a cui Cloak si legherà e ascolterà (ad es. [":443",":80"] per ascoltare sulla porta 443 e 80 su tutte le interfacce)

ProxyBook è un oggetto la cui chiave è il nome del ProxyMethod utilizzato lato client (case-sensitive). Il suo valore è un array il cui primo elemento è il protocollo e il secondo elemento è una stringa IP:PORT del server proxy upstream a cui Cloak inoltrerà il traffico.

Esempio:

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

PrivateKey è la chiave privata Diffie-Hellman statica curve25519 codificata in base64.

BypassUID è un elenco di UID autorizzati senza limiti di larghezza di banda o credito.

AdminUID è l'UID dell'utente amministratore in base64. Puoi lasciarlo vuoto se aggiungi solo utenti a BypassUID.

DatabasePath è il percorso di userinfo.db, usato per memorizzare le informazioni sull'utilizzo degli utenti e le restrizioni. Cloak creerà il file automaticamente se non esiste. Puoi lasciarlo vuoto se aggiungi solo utenti a BypassUID. Questo campo non ha effetto nemmeno se AdminUID non è un UID valido o è vuoto.

KeepAlive è il numero di secondi da indicare al sistema operativo di attendere dopo nessuna attività prima di inviare sonde TCP KeepAlive al server proxy upstream. Un valore zero o negativo lo disabilita. Il default è 0 (disabilitato).

Client

UID è il tuo UID in base64.

Transport può essere direct o CDN. Se l'host server desidera che tu ti connetta direttamente, usa direct. Se invece viene usato un CDN, usa CDN.

PublicKey è la chiave pubblica curve25519 statica in base64, fornita dall'amministratore del server.

ProxyMethod è il nome del metodo proxy che stai utilizzando. Deve corrispondere esattamente a una delle voci in ProxyBook del server.

EncryptionMethod è il nome dell'algoritmo di crittografia che vuoi utilizzare per Cloak. Le opzioni sono plain, aes-256-gcm ( sinonimo di aes-gcm), aes-128-gcm e chacha20-poly1305. Nota: Cloak non è pensato per fornire sicurezza del trasporto. Lo scopo della crittografia è nascondere le impronte dei protocolli proxy e rendere il carico utile statisticamente simile a casuale. Puoi lasciarlo su plain solo se sei certo che il tuo strumento proxy sottostante fornisca già sia crittografia che autenticazione (tramite AEAD o tecniche simili).

ServerName è il dominio che vuoi far credere al tuo ISP o firewall che stai visitando. Idealmente dovrebbe corrispondere a RedirAddr nella configurazione del server, un sito importante che il censore permette, ma non è obbligatorio. Usa random per randomizzare il nome del server per ogni connessione effettuata.

AlternativeNames è un array usato insieme a ServerName per mescolare diversi ServerNames per ogni nuova connessione. Questo potrebbe essere in conflitto con la modalità di trasporto CDN se il provider CDN proibisce il domain fronting e rifiuta i domini alternativi.

Esempio:

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

CDNOriginHost è il nome di dominio del server di origine (cioè il server che esegue Cloak) in modalità CDN. Questo ha effetto solo quando Transport è impostato su CDN. Se non impostato, verrà utilizzato di default il nome host remoto fornito tramite l'argomento della riga di comando (in modalità standalone) o da Shadowsocks (in modalità plugin). Dopo aver stabilito una sessione TLS con il server CDN, questo nome di dominio verrà utilizzato nell'intestazione Host della richiesta HTTP per chiedere al server CDN di stabilire una connessione WebSocket con questo host.

CDNWsUrlPath è il percorso URL utilizzato per costruire la richiesta websocket inviata in modalità CDN, e ha effetto solo quando Transport è impostato su CDN. Se non impostato, verrà utilizzato di default "/". Questa opzione viene utilizzata per costruire la prima riga della richiesta HTTP dopo aver stabilito una sessione TLS. Serve principalmente per un server Cloak dietro un proxy inverso, dove vengono inoltrate solo le richieste con un percorso URL specifico.

NumConn è il numero di connessioni TCP sottostanti che vuoi utilizzare. Il valore predefinito di 4 dovrebbe essere appropriato per la maggior parte delle persone. Impostarlo troppo alto può ostacolare le prestazioni. Impostarlo a 0 disabiliterà il multiplexing delle connessioni e ogni connessione TCP genererà una sessione separata di breve durata che verrà chiusa dopo la sua terminazione. Questo la fa comportare come GoQuiet. Può essere utile per persone con connessioni instabili.

BrowserSig è il browser che vuoi far apparire di utilizzare. Non è rilevante per il browser che stai effettivamente usando. Attualmente, chrome, firefox e safari sono supportati.

KeepAlive è il numero di secondi da indicare al sistema operativo di attendere dopo nessuna attività prima di inviare sonde TCP KeepAlive al server Cloak. Un valore zero o negativo lo disabilita. Il default è 0 (disabilitato). Attenzione: abilitarlo potrebbe rendere il tuo server più rilevabile come proxy, ma farà sì che il client Cloak rilevi un'interruzione di Internet più rapidamente.

StreamTimeout è il numero di secondi che Cloak attende per una connessione in entrata da un programma proxy per inviare dati, dopo i quali la connessione verrà chiusa da Cloak. Cloak non imporrà alcun timeout sulle connessioni TCP dopo la loro creazione.

Setup

Server

  1. Installa almeno un server proxy sottostante (ad es. OpenVPN, Shadowsocks).
  2. Scarica l'ultima release o clona e compila questo repository.
  3. Esegui ck-server -key. La chiave pubblica deve essere data agli utenti, la privata deve rimanere segreta.
  4. (Salta se vuoi solo aggiungere utenti senza restrizioni) Esegui ck-server -uid. Il nuovo UID verrà usato come AdminUID.
  5. Copia example_config/ckserver.json nella posizione desiderata. Cambia PrivateKey con la chiave privata appena ottenuta; cambia AdminUID con l'UID appena ottenuto.
  6. Configura il tuo server proxy sottostante in modo che ascoltino tutti su localhost. Modifica ProxyBook nel file di configurazione di conseguenza.
  7. Configura il programma proxy. Esegui sudo ck-server -c <percorso di ckserver.json>. ck-server necessita dei privilegi di root perché si lega a una porta con numero basso (443). In alternativa puoi seguire https://superuser.com/a/892391 per evitare di concedere a ck-server privilegi di root inutilmente.

Per aggiungere utenti

Utenti senza restrizioni

Esegui ck-server -uid e aggiungi l'UID nel campo BypassUID in ckserver.json.

Utenti soggetti a controlli di larghezza di banda e credito
  1. Prima assicurati di aver generato e impostato AdminUID in ckserver.json, insieme a un percorso per userinfo.db in DatabasePath (Cloak creerà questo file per te se non esiste già).
  2. Sul tuo client, esegui ck-client -s <IP del server> -l <Una porta locale> -a <AdminUID> -c <percorso di ckclient.json> per entrare in modalità amministratore.
  3. Visita https://cbeuw.github.io/Cloak-panel (Nota: questo è un sito statico puramente JS, non c'è backend e tutti i dati inseriti in questo sito vengono elaborati tra il tuo browser e l'endpoint API Cloak che hai specificato. In alternativa puoi scaricare il repository da https://github.com/cbeuw/Cloak-panel e aprire index.html in un browser. Non è richiesto alcun server web).
  4. Inserisci 127.0.0.1:<la porta inserita nel passo 1> come Base API e clicca su Elenco.
  5. Puoi aggiungere altri utenti cliccando sul pannello +.

Nota: il database degli utenti è persistente poiché memorizzato su disco. Non devi aggiungere nuovamente gli utenti ogni volta che avvii ck-server.

Client

Il client Android è disponibile qui: https://github.com/cbeuw/Cloak-android

  1. Installa il client proxy sottostante corrispondente a quello del server.
  2. Scarica l'ultima release o clona e compila questo repository.
  3. Ottieni la chiave pubblica e il tuo UID dall'amministratore del tuo server.
  4. Copia example_config/ckclient.json in una posizione a tua scelta. Inserisci UID e PublicKey che hai ottenuto. Imposta ProxyMethod in modo che corrisponda esattamente alla voce corrispondente in ProxyBook lato server.
  5. Configura il programma proxy. Esegui ck-client -c <percorso di ckclient.json> -s <ip del tuo server>.

Supportami

Se trovi utile questo progetto, puoi visitare il mio negozio di merchandising; in alternativa puoi donare direttamente a me

Donate

BTC: bc1q59yvpnh0356qq9vf0j2y7hx36t9ysap30spx9h

ETH: 0x8effF29a8F9bD38A367580527AC303972c92b60c

Scarica lo strumento