Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/cbeuw/cloak
Herramientas de Cifrado/DescifradoEvasión de IDS/IPSSeguridad de RedesEsteganografía
GitHubcbeuw/cloak

Cloak

Una herramienta de elusión de censura para evadir la detección por parte de adversarios estatales autoritarios

Ver Repositorio
4.1k3548hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Build Status codecov Go Report Card Donate

Cloak es un transporte conectable que mejora herramientas proxy tradicionales como OpenVPN para evadir la censura sofisticada y la discriminación de datos.

Cloak no es un programa proxy independiente. En cambio, funciona disfrazando el tráfico proxy como actividades normales de navegación web. En contraste con las herramientas tradicionales que tienen huellas de tráfico muy prominentes y pueden ser bloqueadas por simples reglas de filtrado, es muy difícil apuntar a Cloak con precisión y con pocos falsos positivos. Esto aumenta el daño colateral de las acciones de censura, ya que los intentos de bloquear Cloak también podrían dañar servicios de los que depende el estado censor.

Para cualquier observador externo, un servidor que ejecuta Cloak es indistinguible de un servidor web inocente. Tanto al observar pasivamente el flujo de tráfico hacia y desde el servidor, como al sondear activamente los comportamientos de un servidor Cloak. Esto se logra mediante el uso de una serie de técnicas de esteganografía criptográfica.

Cloak puede utilizarse junto con cualquier programa proxy que tunelice tráfico a través de TCP o UDP, como Shadowsocks, OpenVPN y Tor. Se pueden ejecutar múltiples servidores proxy en el mismo servidor anfitrión y el servidor Cloak actuará como un proxy inverso, conectando a los clientes con su extremo proxy deseado.

Cloak multiplexa el tráfico a través de múltiples conexiones TCP subyacentes, lo que reduce el bloqueo de cabeza de línea y elimina la sobrecarga del handshake TCP. Esto también hace que el patrón de tráfico sea más similar al de sitios web reales.

Cloak proporciona soporte multiusuario, permitiendo que múltiples clientes se conecten al servidor proxy en el mismo puerto (443 por defecto). También ofrece funciones de gestión de tráfico, como crédito de uso y control de ancho de banda. Esto permite que un servidor proxy sirva a múltiples usuarios incluso si el software proxy subyacente no fue diseñado para múltiples usuarios.

Cloak también soporta túneles a través de un servidor CDN intermediario como Amazon Cloudfront. Estos servicios son tan ampliamente utilizados que los intentos de interrumpir su tráfico pueden causar un daño colateral muy alto para el censor.

Quick Start

Para implementar rápidamente Cloak con Shadowsocks en un servidor, puede ejecutar este script escrito por @HirbodBehnam

Table of Contents

  • Quick Start
  • Build
  • Configuration
    • Server
    • Client
  • Setup
    • Server
      • To add users
        • Unrestricted users
        • Users subject to bandwidth and credit controls
    • Client
  • Support me

Build

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

Los binarios compilados estarán en la carpeta build.

Configuration

Los ejemplos de archivos de configuración se pueden encontrar en la carpeta example_config.

Server

RedirAddr es la dirección de redirección cuando el tráfico entrante no proviene de un cliente Cloak. Idealmente debería configurarse en un sitio web importante permitido por el censor (por ejemplo, www.bing.com).

BindAddr es una lista de direcciones a las que Cloak se vinculará y escuchará (por ejemplo, [":443",":80"] para escuchar en los puertos 443 y 80 en todas las interfaces).

ProxyBook es un objeto cuya clave es el nombre del ProxyMethod utilizado en el lado del cliente (sensible a mayúsculas y minúsculas). Su valor es un arreglo cuyo primer elemento es el protocolo y el segundo elemento es una cadena IP:PORT del servidor proxy ascendente al que Cloak reenviará el tráfico.

Ejemplo:

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

PrivateKey es la clave privada Diffie-Hellman estática curve25519 codificada en base64.

BypassUID es una lista de UIDs autorizados sin restricciones de ancho de banda o crédito.

AdminUID es el UID del usuario administrador en base64. Puede dejar esto vacío si solo agrega usuarios a BypassUID.

DatabasePath es la ruta a userinfo.db, que se utiliza para almacenar la información de uso y las restricciones del usuario. Cloak creará el archivo automáticamente si no existe. Puede dejar esto vacío si solo agrega usuarios a BypassUID. Este campo tampoco tiene efecto si AdminUID no es un UID válido o está vacío.

KeepAlive es la cantidad de segundos que se le indica al SO que espere después de la inactividad antes de enviar sondas TCP KeepAlive al servidor proxy ascendente. Un valor cero o negativo lo desactiva. El valor predeterminado es 0 (desactivado).

Client

UID es su UID en base64.

Transport puede ser direct o CDN. Si el anfitrión del servidor desea que se conecte directamente a él, use direct. Si en su lugar se usa un CDN, use CDN.

PublicKey es la clave pública estática curve25519 en base64, proporcionada por el administrador del servidor.

ProxyMethod es el nombre del método proxy que está utilizando. Debe coincidir exactamente con una de las entradas en el ProxyBook del servidor.

EncryptionMethod es el nombre del algoritmo de cifrado que desea que use Cloak. Las opciones son plain, aes-256-gcm (sinónimo de aes-gcm), aes-128-gcm y chacha20-poly1305. Nota: Cloak no está diseñado para proporcionar seguridad en el transporte. El propósito del cifrado es ocultar las huellas de los protocolos proxy y hacer que la carga útil sea estadísticamente aleatoria. Solo puede dejarlo como plain si está seguro de que su herramienta proxy subyacente ya proporciona TANTO cifrado como autenticación (a través de AEAD o técnicas similares).

ServerName es el dominio que desea que su ISP o firewall piensen que está visitando. Idealmente debería coincidir con RedirAddr en la configuración del servidor, un sitio importante permitido por el censor, pero no es obligatorio. Use random para aleatorizar el nombre del servidor en cada conexión.

AlternativeNames es un arreglo que se utiliza junto con ServerName para alternar entre diferentes ServerNames en cada nueva conexión. Esto puede entrar en conflicto con el modo de transporte CDN si el proveedor de CDN prohíbe el domain-fronting y rechaza los dominios alternativos.

Ejemplo:

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

CDNOriginHost es el nombre de dominio del servidor de origen (es decir, el servidor que ejecuta Cloak) en modo CDN. Solo tiene efecto cuando Transport está configurado como CDN. Si no se establece, por defecto será el nombre de host remoto proporcionado a través del argumento de línea de comandos (en modo independiente) o por Shadowsocks (en modo plugin). Después de establecer una sesión TLS con el servidor CDN, este nombre de dominio se usará en el encabezado Host de la solicitud HTTP para pedirle al servidor CDN que establezca una conexión WebSocket con este host.

CDNWsUrlPath es la ruta de URL utilizada para construir la solicitud WebSocket enviada en modo CDN, y también solo tiene efecto cuando Transport está configurado como CDN. Si no se establece, por defecto será "/". Esta opción se utiliza para construir la primera línea de la solicitud HTTP después de que se establece una sesión TLS. Está pensada principalmente para un servidor Cloak detrás de un proxy inverso, donde solo se reenvían las solicitudes bajo una ruta de URL específica.

NumConn es la cantidad de conexiones TCP subyacentes que desea utilizar. El valor predeterminado de 4 debería ser adecuado para la mayoría de las personas. Configurarlo demasiado alto perjudicará el rendimiento. Configurarlo en 0 deshabilitará la multiplexación de conexiones y cada conexión TCP generará una sesión separada de corta duración que se cerrará después de terminarse. Esto hace que se comporte como GoQuiet. Puede ser útil para personas con conexiones inestables.

BrowserSig es el navegador que desea parecer estar utilizando. No está relacionado con el navegador que realmente está utilizando. Actualmente, se admiten chrome, firefox y safari.

KeepAlive es la cantidad de segundos que se le indica al SO que espere después de la inactividad antes de enviar sondas TCP KeepAlive al servidor Cloak. Un valor cero o negativo lo desactiva. El valor predeterminado es 0 (desactivado). Advertencia: activarlo puede hacer que su servidor sea más detectable como proxy, pero hará que el cliente Cloak detecte la interrupción de Internet más rápidamente.

StreamTimeout es la cantidad de segundos que Cloak espera a que una conexión entrante de un programa proxy envíe cualquier dato, después de lo cual la conexión será cerrada por Cloak. Cloak no impondrá ningún tiempo de espera en las conexiones TCP una vez establecidas.

Setup

Server

  1. Instale al menos un servidor proxy subyacente (por ejemplo, OpenVPN, Shadowsocks).
  2. Descargue la última versión o clone y compile este repositorio.
  3. Ejecute ck-server -key. La pública debe entregarse a los usuarios, la privada debe mantenerse en secreto.
  4. (Omita esto si solo desea agregar usuarios sin restricciones) Ejecute ck-server -uid. El nuevo UID se usará como AdminUID.
  5. Copie example_config/ckserver.json en la ubicación deseada. Cambie PrivateKey por la clave privada que acaba de obtener; cambie AdminUID por el UID que acaba de obtener.
  6. Configure su servidor proxy subyacente para que todos escuchen en localhost. Edite ProxyBook en el archivo de configuración en consecuencia.
  7. Configure el programa proxy. Ejecute sudo ck-server -c <ruta a ckserver.json>. ck-server necesita privilegios de root porque se vincula a un puerto con número bajo (443). Alternativamente, puede seguir https://superuser.com/a/892391 para evitar otorgar privilegios de root a ck-server innecesariamente.

To add users

Unrestricted users

Ejecute ck-server -uid y agregue el UID al campo BypassUID en ckserver.json.

Users subject to bandwidth and credit controls
  1. Primero asegúrese de haber generado y establecido AdminUID en ckserver.json, junto con una ruta a userinfo.db en DatabasePath (Cloak creará este archivo por usted si no existía).
  2. En su cliente, ejecute ck-client -s <IP del servidor> -l <Un puerto local> -a <AdminUID> -c <ruta a ckclient.json> para ingresar al modo administrador.
  3. Visite https://cbeuw.github.io/Cloak-panel (Nota: este es un sitio estático de puro JS, no tiene backend y todos los datos ingresados en este sitio se procesan entre su navegador y el endpoint de la API de Cloak que especificó. Alternativamente, puede descargar el repositorio en https://github.com/cbeuw/Cloak-panel y abrir index.html en un navegador. No se requiere ningún servidor web).
  4. Escriba 127.0.0.1:<el puerto que ingresó en el paso 1> como API Base y haga clic en List.
  5. Puede agregar más usuarios haciendo clic en el panel +.

Nota: la base de datos de usuarios es persistente ya que está en disco. No es necesario agregar los usuarios nuevamente cada vez que inicie ck-server.

Client

El cliente Android está disponible aquí: https://github.com/cbeuw/Cloak-android

  1. Instale el cliente proxy subyacente correspondiente al que tiene el servidor.
  2. Descargue la última versión o clone y compile este repositorio.
  3. Obtenga la clave pública y su UID del administrador de su servidor.
  4. Copie example_config/ckclient.json en una ubicación de su elección. Ingrese el UID y PublicKey que obtuvo. Configure ProxyMethod para que coincida exactamente con la entrada correspondiente en ProxyBook en el extremo del servidor.
  5. Configure el programa proxy. Ejecute ck-client -c <ruta a ckclient.json> -s <ip de su servidor>.

Support me

Si encuentra útil este proyecto, puede visitar mi tienda de productos; alternativamente, puede donarme directamente

Donate

BTC: bc1q59yvpnh0356qq9vf0j2y7hx36t9ysap30spx9h

ETH: 0x8effF29a8F9bD38A367580527AC303972c92b60c

Descargar herramienta