Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Cloak — Uma ferramenta de contorno de censura para evitar a detecção por adversários estatais autoritários | Kitploit
Ferramentas/GitHubGitHub/cbeuw/cloak
Ferramentas de Criptografia/DescriptografiaEvasão de IDS/IPSSegurança de RedeEsteganografia
GitHubcbeuw/cloak

Cloak

Uma ferramenta de contorno de censura para evitar a detecção por adversários estatais autoritários

Ver Repositório
4.1k354há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Build Status codecov Go Report Card Donate

Cloak é um transporte plugável que aprimora ferramentas de proxy tradicionais como OpenVPN para evitar censura sofisticada e discriminação de dados.

Cloak não é um programa de proxy independente. Em vez disso, ele funciona disfarçando o tráfego de proxy como atividades normais de navegação na web. Ao contrário das ferramentas tradicionais, que possuem impressões digitais de tráfego muito proeminentes e podem ser bloqueadas por regras de filtragem simples, é muito difícil direcionar o Cloak com precisão com poucos falsos positivos. Isso aumenta os danos colaterais das ações de censura, pois tentativas de bloquear o Cloak também podem danificar serviços dos quais o estado censor depende.

Para qualquer observador terceiro, um host executando o servidor Cloak é indistinguível de um servidor web inocente. Tanto ao observar passivamente o fluxo de tráfego de e para o servidor, quanto ao sondar ativamente os comportamentos de um servidor Cloak. Isso é alcançado através do uso de uma série de técnicas de esteganografia criptográfica.

Cloak pode ser usado em conjunto com qualquer programa de proxy que tunnel o tráfego através de TCP ou UDP, como Shadowsocks, OpenVPN e Tor. Múltiplos servidores proxy podem estar em execução no mesmo host servidor e o servidor Cloak atuará como um proxy reverso, conectando os clientes ao seu proxy de destino.

Cloak multiplexa o tráfego através de múltiplas conexões TCP subjacentes, o que reduz o bloqueio de cabeça-de-linha e elimina a sobrecarga do handshake TCP. Isso também torna o padrão de tráfego mais semelhante ao de sites reais.

Cloak oferece suporte a múltiplos usuários, permitindo que vários clientes se conectem ao servidor proxy na mesma porta (443 por padrão). Também fornece funcionalidades de gerenciamento de tráfego, como controle de crédito de uso e largura de banda. Isso permite que um servidor proxy atenda vários usuários, mesmo que o software de proxy subjacente não tenha sido projetado para múltiplos usuários.

Cloak também suporta tunelamento através de um servidor CDN intermediário, como Amazon Cloudfront. Tais serviços são tão amplamente utilizados que tentativas de interromper o tráfego para eles podem causar danos colaterais muito altos para o censor.

Início Rápido

Para implantar rapidamente o Cloak com Shadowsocks em um servidor, você pode executar este script escrito por @HirbodBehnam

Índice

  • Início Rápido
  • Construir
  • Configuração
    • Servidor
    • Cliente
  • Configuração
    • Servidor
      • Para adicionar usuários
        • Usuários irrestritos
        • Usuários sujeitos a controles de largura de banda e crédito
    • Cliente
  • Apoie-me

Construir

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

Os binários compilados estarão na pasta build.

Configuração

Exemplos de arquivos de configuração podem ser encontrados na pasta example_config.

Servidor

RedirAddr é o endereço de redirecionamento quando o tráfego de entrada não é de um cliente Cloak. Idealmente, deve ser definido para um site importante permitido pelo censor (por exemplo, www.bing.com)

BindAddr é uma lista de endereços aos quais o Cloak se ligará e escutará (por exemplo, [":443",":80"] para escutar nas portas 443 e 80 em todas as interfaces)

ProxyBook é um objeto cuja chave é o nome do ProxyMethod usado no lado do cliente (sensível a maiúsculas/minúsculas). Seu valor é um array cujo primeiro elemento é o protocolo e o segundo elemento é uma string IP:PORT do servidor proxy upstream para o qual o Cloak encaminhará o tráfego.

Exemplo:

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

PrivateKey é a chave privada estática Diffie-Hellman curve25519 codificada em base64.

BypassUID é uma lista de UIDs autorizados sem quaisquer limites de largura de banda ou crédito.

AdminUID é o UID do usuário administrador em base64. Você pode deixar isso vazio se apenas adicionar usuários a BypassUID.

DatabasePath é o caminho para userinfo.db, usado para armazenar informações de uso e restrições do usuário. O Cloak criará o arquivo automaticamente se ele não existir. Você pode deixar isso vazio se apenas adicionar usuários a BypassUID. Este campo também não tem efeito se AdminUID não for um UID válido ou estiver vazio.

KeepAlive é o número de segundos para informar ao SO para esperar após inatividade antes de enviar sondas TCP KeepAlive para o servidor proxy upstream. Um valor zero ou negativo desabilita. O padrão é 0 (desabilitado).

Cliente

UID é o seu UID em base64.

Transport pode ser direct ou CDN. Se o host do servidor deseja que você se conecte diretamente a ele, use direct. Se, em vez disso, um CDN for usado, use CDN.

PublicKey é a chave pública estática curve25519 em base64, fornecida pelo administrador do servidor.

ProxyMethod é o nome do método proxy que você está usando. Isso deve corresponder exatamente a uma das entradas no ProxyBook do servidor.

EncryptionMethod é o nome do algoritmo de criptografia que você deseja que o Cloak use. As opções são plain, aes-256-gcm (sinônimo de aes-gcm), aes-128-gcm e chacha20-poly1305. Nota: O Cloak não foi projetado para fornecer segurança de transporte. O objetivo da criptografia é ocultar impressões digitais de protocolos de proxy e tornar o payload estatisticamente semelhante a aleatório. Você só pode deixá-lo como plain se tiver certeza de que sua ferramenta de proxy subjacente já fornece TANTO criptografia quanto autenticação (via AEAD ou técnicas semelhantes).

ServerName é o domínio que você quer fazer seu ISP ou firewall pensar que está visitando. Idealmente, deve corresponder ao RedirAddr na configuração do servidor, um site importante que o censor permite, mas não é obrigatório. Use random para randomizar o nome do servidor para cada conexão feita.

AlternativeNames é uma matriz usada em conjunto com ServerName para alternar entre diferentes ServerNames para cada nova conexão. Isso pode entrar em conflito com o modo de transporte CDN se o provedor de CDN proibir o domain fronting e rejeitar os domínios alternativos.

Exemplo:

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

CDNOriginHost é o nome de domínio do servidor origin (ou seja, o servidor executando o Cloak) no modo CDN. Isso só tem efeito quando Transport está definido como CDN. Se não for definido, o padrão será o hostname remoto fornecido via argumento de linha de comando (no modo independente) ou pelo Shadowsocks (no modo plugin). Após o estabelecimento de uma sessão TLS com o servidor CDN, este nome de domínio será usado no cabeçalho Host da solicitação HTTP para pedir ao servidor CDN que estabeleça uma conexão WebSocket com este host.

CDNWsUrlPath é o caminho de URL usado para construir a solicitação websocket enviada no modo CDN, e também só tem efeito quando Transport está definido como CDN. Se não for definido, o padrão será "/". Esta opção é usada para construir a primeira linha da solicitação HTTP após o estabelecimento de uma sessão TLS. Destina-se principalmente a um servidor Cloak atrás de um proxy reverso, onde apenas solicitações sob um caminho de URL específico são encaminhadas.

NumConn é a quantidade de conexões TCP subjacentes que você deseja usar. O padrão de 4 deve ser apropriado para a maioria das pessoas. Definir muito alto prejudicará o desempenho. Definir como 0 desabilitará a multiplexação de conexão e cada conexão TCP gerará uma sessão curta separada que será fechada após ser encerrada. Isso faz com que se comporte como GoQuiet. Isso pode ser útil para pessoas com conexões instáveis.

BrowserSig é o navegador que você deseja parecer estar usando. Não é relevante para o navegador que você está realmente usando. Atualmente, chrome, firefox e safari são suportados.

KeepAlive é o número de segundos para informar ao SO para esperar após inatividade antes de enviar sondas TCP KeepAlive para o servidor Cloak. Um valor zero ou negativo desabilita. O padrão é 0 (desabilitado). Aviso: Ativá-lo pode tornar seu servidor mais detectável como proxy, mas fará com que o cliente Cloak detecte interrupções de internet mais rapidamente.

StreamTimeout é o número de segundos que o Cloak espera por uma conexão de entrada de um programa proxy para enviar quaisquer dados, após o qual a conexão será fechada pelo Cloak. O Cloak não imporá nenhum tempo limite nas conexões TCP após seu estabelecimento.

Configuração

Servidor

  1. Instale pelo menos um servidor proxy subjacente (por exemplo, OpenVPN, Shadowsocks).
  2. Baixe a versão mais recente ou clone e construa este repositório.
  3. Execute ck-server -key. A chave pública deve ser fornecida aos usuários, a chave privada deve ser mantida em segredo.
  4. (Pule se você quiser apenas adicionar usuários irrestritos) Execute ck-server -uid. O novo UID será usado como AdminUID.
  5. Copie example_config/ckserver.json para o local desejado. Altere PrivateKey para a chave privada que você acabou de obter; altere AdminUID para o UID que você acabou de obter.
  6. Configure seu servidor proxy subjacente para que todos escutem em localhost. Edite ProxyBook no arquivo de configuração de acordo.
  7. Configure o programa proxy. Execute sudo ck-server -c <caminho para ckserver.json>. O ck-server precisa de privilégios root porque se liga a uma porta baixa (443). Alternativamente, você pode seguir https://superuser.com/a/892391 para evitar conceder privilégios root desnecessariamente ao ck-server.

Para adicionar usuários

Usuários irrestritos

Execute ck-server -uid e adicione o UID ao campo BypassUID em ckserver.json

Usuários sujeitos a controles de largura de banda e crédito
  1. Primeiro, certifique-se de ter AdminUID gerado e definido em ckserver.json, juntamente com um caminho para userinfo.db em DatabasePath (o Cloak criará este arquivo para você se ele ainda não existir).
  2. No seu cliente, execute ck-client -s <IP do servidor> -l <Uma porta local> -a <AdminUID> -c <caminho-para-ckclient.json> para entrar no modo admin
  3. Visite https://cbeuw.github.io/Cloak-panel (Nota: este é um site estático puro em JS, não há backend e todos os dados inseridos neste site são processados entre seu navegador e o endpoint da API Cloak que você especificou. Alternativamente, você pode baixar o repositório em https://github.com/cbeuw/Cloak-panel e abrir index.html em um navegador. Nenhum servidor web é necessário).
  4. Digite 127.0.0.1:<a porta que você inseriu no passo 1> como Base da API e clique em List.
  5. Você pode adicionar mais usuários clicando no painel +

Nota: o banco de dados do usuário é persistente, pois está em disco. Você não precisa adicionar os usuários novamente cada vez que iniciar o ck-server.

Cliente

Cliente Android disponível aqui: https://github.com/cbeuw/Cloak-android

  1. Instale o cliente proxy subjacente correspondente ao que o servidor possui.
  2. Baixe a versão mais recente ou clone e construa este repositório.
  3. Obtenha a chave pública e seu UID do administrador do seu servidor
  4. Copie example_config/ckclient.json para um local de sua escolha. Insira o UID e PublicKey que você obteve. Defina ProxyMethod para corresponder exatamente à entrada correspondente em ProxyBook no lado do servidor
  5. Configure o programa proxy. Execute ck-client -c <caminho para ckclient.json> -s <ip do seu servidor>

Apoie-me

Se você achar este projeto útil, pode visitar minha loja de mercadorias; alternativamente, você pode doar diretamente para mim

Donate

BTC: bc1q59yvpnh0356qq9vf0j2y7hx36t9ysap30spx9h

ETH: 0x8effF29a8F9bD38A367580527AC303972c92b60c

Baixar ferramenta