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
canarytokens-docker — Configuración de Docker para montar rápidamente tus propios Canarytokens. | Kitploit
Herramientas/GitHubGitHub/thinkst/canarytokens-docker
Herramientas DefensivasSeguridad de RedesDetección de IntrusionesRespuesta a Incidentes
GitHubthinkst/canarytokens-docker

canarytokens-docker

Configuración de Docker para montar rápidamente tus propios Canarytokens.

Ver Repositorio
6581194hace 1 mesRevisado 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

Dockerized Canarytokens

por Thinkst Applied Research

Resumen

Los Canarytokens ayudan a rastrear la actividad y las acciones en tu red.

Si tienes algún problema, consulta nuestras FAQ aquí, o crea un issue e intentaremos responderte lo antes posible.

Tabla de contenido

  • Código de conducta
  • Requisitos previos
  • Migración a v3
  • Configuración (en Ubuntu)
  • Persistencia de datos
  • Cómo habilitar HTTPS
  • Habilitar autenticación básica en tu sitio de Canarytokens
  • ¿Qué hay de nuevo?
  • FAQ
  • Contribuciones

Código de conducta

Este proyecto y todos los que participan en él se rigen por el Código de conducta. Al participar, se espera que cumplas con este código. Por favor, reporta cualquier comportamiento inaceptable a [email protected].

Requisitos previos

  • Al menos un nombre de dominio. Si quieres habilitar el seguimiento de apertura de PDF, al menos dos dominios.
  • Host Docker con acceso a Internet. Puedes instalar Docker en un host Linux rápidamente.

Migración a v3

  • Dependiendo de si usas letsencrypt: docker compose -f docker-compose.yml down o docker compose -f docker-compose-letsencrypt.yml down
  • Si estás ejecutando una versión anterior de Docker, necesitarás actualizar.
  • docker-compose ya no funciona, y necesitarás ejecutar docker network prune antes de levantar tu instancia de Canarytokens con docker compose. Canarytokens v2 seguirá funcionando.
  • Descarga la última versión del repositorio canarytokens-docker.
  • Y en consecuencia: docker compose -f docker-compose.yml up -d o docker compose -f docker-compose-letsencrypt.yml up -d

NB: El repositorio actualizado canarytokens-docker ya no incluye el Dockerfile para Canarytokens v2, por lo que para ejecutarlo se requiere usar la imagen etiquetada thinkst/canarytokens:v2_latest. Recomendamos encarecidamente migrar a v3. Por favor, contáctanos si tienes problemas con la migración.

Configuración (en Ubuntu)

  • Inicia tu host Docker y anota la IP pública.
  • Configura tus dominios para que sus servidores de nombres apunten a la IP pública del host Docker. Esto requiere un cambio en tu registrador. Simplemente cambiar los registros NS en el archivo de zona no es suficiente. Necesitarás un registro A de tu dominio que apunte a tu IP pública.
  • Clona la configuración de Docker:
root@kitploit:~
$ git clone https://github.com/thinkst/canarytokens-docker
$ cd canarytokens-docker
  • Instala Docker compose (si aún no está presente):
root@kitploit:~
$ sudo apt-get install python3-pip python3-dev
$ sudo pip install -U docker-compose
#si esto falla con errores de PyYAML, instala el paquete de desarrollo libyaml
# sudo apt-get install libyaml-dev
  • Distribuimos dos archivos .env que se usarán para la configuración: switchboard.env.dist y frontend.env.dist. Deberás copiarlos/renombrarlos a switchboard.env y frontend.env respectivamente (esto garantiza que tu configuración no se pierda si descargas cambios). Una vez hecho esto, puedes editarlos:
  1. Revisa ambos archivos de configuración recién creados, switchboard.env y frontend.env, y completa la sección Required Settings. Las Optional Settings no son necesarias para el funcionamiento y tienen valores predeterminados sensatos, así que no las cambies a menos que sea necesario.

  2. A continuación, decide qué proveedor de correo quieres usar para enviar alertas. Deberás elegir entre mailgun, SMTP y sendgrid. Los detalles requeridos correspondientes se encuentran en el archivo .env correspondiente.

  3. Genera una única semilla de clave WireGuard para establecerla como CANARY_WG_PRIVATE_KEY_SEED tanto en switchboard.env como en frontend.env con el comando:

root@kitploit:~
dd bs=32 count=1 if=/dev/urandom 2>/dev/null | base64
  • Aquí hay ejemplos de archivos para una configuración que usa:
    • los dominios example1.com, example2.com y example3.com (PDFs) para los disparadores de canarytoken a través de switchboard

    • la IP pública 1.1.1.1 para los disparadores de switchboard

    • el dominio 'my.domain' para servir el frontend

    • el nombre de dominio de Mailgun 'x.y' y la clave API 'zzzzzzzzzz'

    • la semilla de clave WireGuard vk/GD+frlhve/hDTTSUvqpQ/WsQtioKAri0Rt5mg7dw=

    • frontend.env

root@kitploit:~
#Estos dominios se usan para tokens de propósito general
CANARY_PUBLIC_IP=1.1.1.1
CANARY_DOMAINS=example1.com,example2.com

#Estos dominios se usan solo para tokens PDF
CANARY_NXDOMAINS=example3.com

#Requiere una clave de API de Google Cloud para generar un mapa de incidentes en la página de historial con la API de Google Maps JavaScript
CANARY_GOOGLE_API_KEY=<grab google maps api key>
LOG_FILE=frontend.log
  • switchboard.env (Ejemplo usando Mailgun para correo electrónico)
root@kitploit:~
CANARY_PUBLIC_DOMAIN=mydomain.com
LOG_FILE=switchboard.log
CANARY_MAILGUN_DOMAIN_NAME=x.y
CANARY_MAILGUN_API_KEY=zzzzzzzzzz
[email protected]
CANARY_ALERT_EMAIL_FROM_DISPLAY="Example Canarytokens"
CANARY_ALERT_EMAIL_SUBJECT="Canarytoken"
CANARY_WG_PRIVATE_KEY_SEED=vk/GD+frlhve/hDTTSUvqpQ/WsQtioKAri0Rt5mg7dw=
  • Finalmente, descarga e inicia las imágenes:
root@kitploit:~
$ docker compose up
  • El frontend y switchboard ahora se ejecutarán en primer plano. El frontend es accesible en http://example1.com/generate. Si deseas ejecutarlo en segundo plano, puedes usar
root@kitploit:~
$ docker compose up -d

NOTA: Si solo posees un dominio y te gustaría usar tokens PDF, puedes usar subdominios para CANARY_NXDOMAINS. Usando example.com como dominio, puedes establecer CANARY_NXDOMAINS a nx.example.com. Luego inicia sesión en tu consola de administración de DNS (donde puedes editar los registros DNS de tu dominio) y agrega un registro NS de nx.example.com que apunte a example.com.

Persistencia de datos

Los tokens se guardan en un archivo de base de datos Redis que existe fuera de los contenedores Docker. Busca dump.rdb en el directorio canarytokens-docker/data.

Si quieres borrar todos tus tokens, elimina dump.rdb.

Cómo habilitar HTTPS

Tenemos un archivo docker-compose separado que automatizará (en su mayoría) la puesta en marcha de un servidor de Canarytokens con HTTPS. Necesitarás hacer lo siguiente:

  • Edita el certbot.env. Deberás proporcionar tu dominio y dirección de correo electrónico (son necesarios para el proceso de registro de certbot). Ej.:
root@kitploit:~
# Specify a single domain name
MY_DOMAIN_NAME=example.com

# or multiple domains names with this different key (comment out MY_DOMAIN_NAME above if you do):
# MY_DOMAIN_NAMES=example.com anotherexample.net thirdexample.org

[email protected]
  • Ahora, cuando quieras levantar tu servidor, usarás docker compose -f docker-compose-letsencrypt.yml up, lo que ejecutará el servidor en primer plano para que puedas asegurarte de que todo se inicia correctamente.

  • Si todo está funcionando, es posible que quieras presionar CTRL+C, ejecutar docker compose -f docker-compose-letsencrypt.yml down para tener un estado limpio, y luego volver a ejecutar docker compose -f docker-compose-letsencrypt.yml up -d con el agregado -d para ejecutar el servidor en segundo plano (en modo demonio).

  • Ten en cuenta que usar el método HTTPS utilizará el correo electrónico y el nombre de dominio que especificaste para registrar el certificado. Puedes leer sobre el proceso de Let's Encrypt (usando certbot) aquí. El proceso implica verificar que eres el propietario del dominio que has especificado y registrarte con Let's Encrypt.

  • HAY UN LÍMITE DE TASA. Así que no levantes y bajes este servidor constantemente, de lo contrario alcanzarás rápidamente el límite de generación de certificados de Let's Encrypt. Para evitar esto, con fines de prueba puedes agregar --staging al comando ./certbot-auto en cerbot-nginx/start.sh, lo que probará si Let's Encrypt te otorga el certificado.

Habilitar autenticación básica en tu sitio de Canarytokens

Puedes seguir estos pasos si deseas tener un sitio de canarytokens de cara al público pero te gustaría tener algo de autenticación básica para acceder a él.

  1. git clone https://github.com/thinkst/canarytokens-docker.git
  2. Navega a la carpeta nginx:
    • para HTTP:
    root@kitploit:~
    cd canarytokens-docker/nginx
    
    • para HTTPS:
    root@kitploit:~
    cd canarytokens-docker/certbot-nginx
    
  3. sudo htpasswd -c .htpasswd user donde user puede ser cualquier nombre de usuario que quieras usar.
  4. sudo chown <user>:<user> .htpasswd donde user es el usuario local de Linux.
  5. edita el nginx.conf correspondiente y
root@kitploit:~
server {
    ...
    location ~* (/generate|/manage|/download|/history|/settings|/resources|/legal).* {
        auth_basic           "Basic Auth Restricted Canrytokens"; <---- ADD
        auth_basic_user_file /etc/nginx/.htpasswd;                 <---- ADD
  1. edita el Dockerfile correspondiente y agrega debajo de COPY nginx.conf ...
root@kitploit:~
COPY .htpasswd /etc/nginx/.htpasswd
  1. reconstruye las imágenes usando:
    • para HTTP:
    root@kitploit:~
    docker compose build
    
    • para HTTPS:
    root@kitploit:~
    docker compose -f docker-compose-letsencrypt.yml build
    

reinicia tus contenedores Docker, ¡y a disfrutar!

Gracias, @mamisano por detectar un problema tonto con lo anterior 🙏

¿Qué hay de nuevo?

Vamos a registrar algunas características/adiciones nuevas aquí para que sea rápido y fácil ver lo que se ha añadido recientemente.

  • hemos movido el "What's new?" a Github Discussions. Míralo aquí.

  • ahora tenemos la capacidad de enviar registros de errores a un webhook de tu elección, con la esperanza de alertarte a ti o a tu equipo sobre los fallos, en lugar de que estos errores solo vivan en un archivo de registro. Simplemente proporciona la URI del webhook correspondiente en el valor ERROR_LOG_WEBHOOK de tu archivo switchboard.env. (2021-04-09)

  • hemos renombrado los archivos .env distribuidos a switchboard.env.dist y frontend.env.dist. Esto garantiza que tu configuración local no se pierda cuando descargas cambios del repositorio. (Todavía usamos switchboard.env y frontend.env para la configuración, solo significa que las nuevas copias del repositorio requieren que los usuarios copien/renombren los archivos dist).

  • hemos añadido una variable extra en switchboard.env llamada CANARY_IPINFO_API_KEY. Esto te permite usar tu clave de API de ipinfo.io si lo deseas (ten en cuenta que ipinfo.io tiene un nivel gratuito de hasta 1000 solicitudes al día).

  • ahora tenemos soporte para Slack. Cuando proporciones un webhook, simplemente proporciona la URL de tu webhook de Slack. (Gracias a @shortstack).

  • hemos añadido una nueva variable de entorno a frontend.env llamada CANARY_AWSID_URL que te permite especificar una URL privada o diferente para el token de AWS ID. Esto significa que puedes cambiar fácilmente entre cuentas. (2018-10-17)

  • si tienes la intención de construir la imagen para ejecutarla en otro sistema con una arquitectura diferente, puedes construir las imágenes con docker compose build --build-arg ARCH=<target arch>/, ten en cuenta la barra diagonal al final del argumento. La imagen no se construirá correctamente si esto no se incluye.

FAQ

Tenemos una FAQ aquí

Contribuciones

Por favor, revisa nuestros documentos de Código de conducta y Contribuciones antes de enviar una pull request.

Esperamos con interés tus valiosas contribuciones.

Descargar herramienta