Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
canarytokens-docker — Docker-Konfiguration, um schnell deine eigenen Canarytokens einzurichten. | Kitploit
Tools/GitHubGitHub/thinkst/canarytokens-docker
DefensivwerkzeugeNetzwerksicherheitEinbruchserkennungIncident Response
GitHubthinkst/canarytokens-docker

canarytokens-docker

Docker-Konfiguration, um schnell deine eigenen Canarytokens einzurichten.

Repository anzeigen
6581194vor 1 MonatVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Dockerisierte Canarytokens

von Thinkst Applied Research

Überblick

Canarytokens helfen dabei, Aktivitäten und Aktionen in Ihrem Netzwerk zu verfolgen.

Wenn Sie Probleme haben, schauen Sie bitte in unsere FAQ hier oder erstellen Sie ein Issue, und wir werden versuchen, uns so schnell wie möglich bei Ihnen zu melden.

Inhaltsverzeichnis

  • Verhaltenskodex
  • Voraussetzungen
  • Migration zu v3
  • Einrichtung (unter Ubuntu)
  • Daten dauerhaft speichern
  • So aktivieren Sie HTTPS
  • Aktivieren der Basisauthentifizierung für Ihre Canarytokens-Website
  • Was gibt es Neues?
  • FAQ
  • Mitwirken

Verhaltenskodex

Dieses Projekt und alle, die daran teilnehmen, unterliegen dem Verhaltenskodex. Mit Ihrer Teilnahme verpflichten Sie sich, diesen Kodex einzuhalten. Bitte melden Sie inakzeptables Verhalten an [email protected].

Voraussetzungen

  • Mindestens ein Domainname. Wenn Sie das Tracking von PDF-Öffnungen aktivieren möchten, benötigen Sie mindestens zwei Domains.
  • Ein nach außen erreichbarer Docker-Host. Sie können Docker auf einem Linux-Host schnell installieren.

Migration zu v3

  • Abhängig davon, ob Sie LetsEncrypt verwenden: docker compose -f docker-compose.yml down oder docker compose -f docker-compose-letsencrypt.yml down
  • Wenn Sie eine ältere Docker-Version verwenden, müssen Sie upgraden.
  • docker-compose funktioniert nicht mehr, und Sie müssen docker network prune ausführen, bevor Sie Ihre Canarytokens-Instanz mit docker compose starten. Canarytokens v2 funktioniert weiterhin.
  • Ziehen Sie die neueste Version des canarytokens-docker-Repos.
  • Und entsprechend: docker compose -f docker-compose.yml up -d oder docker compose -f docker-compose-letsencrypt.yml up -d

NB: Das aktualisierte canarytokens-docker-Repo enthält kein Dockerfile mehr für Canarytokens v2. Um es auszuführen, muss daher das getaggte Image thinkst/canarytokens:v2_latest verwendet werden. Wir empfehlen dringend, auf v3 umzusteigen. Bitte kontaktieren Sie uns, wenn Sie mit der Migration zu kämpfen haben.

Einrichtung (unter Ubuntu)

  • Starten Sie Ihren Docker-Host und notieren Sie sich die öffentliche IP.
  • Konfigurieren Sie Ihre Domains so, dass ihre Nameserver auf die öffentliche IP des Docker-Hosts zeigen. Dies erfordert eine Änderung bei Ihrem Registrar. Es reicht nicht aus, nur NS-Einträge in der Zonendatei zu ändern. Sie benötigen einen A-Eintrag Ihrer Domain, der auf Ihre öffentliche IP zeigt.
  • Klonen Sie das Docker-Setup:
root@kitploit:~
$ git clone https://github.com/thinkst/canarytokens-docker
$ cd canarytokens-docker
  • Installieren Sie Docker Compose (falls nicht bereits vorhanden):
root@kitploit:~
$ sudo apt-get install python3-pip python3-dev
$ sudo pip install -U docker-compose
#if this breaks with PyYAML errors, install the libyaml development package
# sudo apt-get install libyaml-dev
  • Wir verteilen zwei .env-Dateien, die für die Konfiguration verwendet werden, nämlich switchboard.env.dist und frontend.env.dist. Sie müssen sie in switchboard.env bzw. frontend.env kopieren/umbenennen (dadurch wird sichergestellt, dass Ihre Konfiguration nicht überschrieben wird, wenn Sie Änderungen ziehen). Danach können Sie sie bearbeiten:
  1. Bitte gehen Sie beide neu erstellten Konfigurationsdateien switchboard.env und frontend.env durch und füllen Sie den Abschnitt Required Settings aus. Die Optional Settings sind für den Betrieb nicht erforderlich und haben sinnvolle Standardwerte. Ändern Sie sie daher nicht, wenn Sie es nicht müssen.

  2. Entscheiden Sie als Nächstes, welchen E-Mail-Anbieter Sie für den Versand von Benachrichtigungen verwenden möchten. Sie müssen sich zwischen mailgun, SMTP und sendgrid entscheiden. Die relevanten erforderlichen Details finden Sie in der entsprechenden .env-Datei.

  3. Generieren Sie einen einzelnen eindeutigen WireGuard-Key-Seed, um ihn als CANARY_WG_PRIVATE_KEY_SEED sowohl in switchboard.env als auch in frontend.env zu setzen, mit dem Befehl:

root@kitploit:~
dd bs=32 count=1 if=/dev/urandom 2>/dev/null | base64
  • Hier sind Beispieldateien für ein Setup, das Folgendes verwendet:
    • die Domains example1.com, example2.com und example3.com (PDFs) für Canarytoken-Trigger über das Switchboard

    • die öffentliche IP 1.1.1.1 für die Switchboard-Trigger

    • die Domain 'my.domain', um das Frontend bereitzustellen

    • den Mailgun-Domainnamen 'x.y' und API-Schlüssel 'zzzzzzzzzz'

    • den WireGuard-Key-Seed vk/GD+frlhve/hDTTSUvqpQ/WsQtioKAri0Rt5mg7dw=

    • frontend.env

root@kitploit:~
#These domains are used for general purpose tokens
CANARY_PUBLIC_IP=1.1.1.1
CANARY_DOMAINS=example1.com,example2.com

#These domains are only used for PDF tokens
CANARY_NXDOMAINS=example3.com

#Requires a Google Cloud API key to generate an incident map on the history page with the Maps JavaScript API
CANARY_GOOGLE_API_KEY=<grab google maps api key>
LOG_FILE=frontend.log
  • switchboard.env (Beispiel mit Mailgun für E-Mail)
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=
  • Schließlich laden Sie die Images herunter und starten Sie sie:
root@kitploit:~
$ docker compose up
  • Das Frontend und das Switchboard laufen nun im Vordergrund. Das Frontend ist unter http://example1.com/generate erreichbar. Wenn Sie dies im Hintergrund ausführen möchten, können Sie verwenden:
root@kitploit:~
$ docker compose up -d

HINWEIS: Wenn Sie nur eine Domain besitzen und PDF-Tokens verwenden möchten, können Sie Subdomains für CANARY_NXDOMAINS verwenden. Wenn wir example.com als unsere Domain verwenden, können Sie CANARY_NXDOMAINS auf nx.example.com setzen. Melden Sie sich dann in Ihrer DNS-Manager-Konsole an (wo Sie die DNS-Einträge Ihrer Domain bearbeiten können) und fügen Sie einen NS-Eintrag von nx.example.com mit Verweis auf example.com hinzu.

Daten dauerhaft speichern

Die Tokens werden in einer Redis-Datenbankdatei gespeichert, die sich außerhalb der Docker-Container befindet. Suchen Sie nach dump.rdb im Verzeichnis canarytokens-docker/data.

Wenn Sie alle Ihre Tokens löschen möchten, löschen Sie dump.rdb.

So aktivieren Sie HTTPS

Wir haben eine separate docker-compose-Datei, die es Ihnen (größtenteils) automatisiert ermöglicht, einen Canarytokens-Server mit HTTPS zu betreiben. Sie müssen Folgendes tun:

  • Bearbeiten Sie die certbot.env. Sie müssen Ihre Domain und E-Mail-Adresse angeben (diese sind für den Registrierungsprozess von Certbot erforderlich). Z.B.
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]
  • Wenn Sie Ihren Server nun starten möchten, verwenden Sie docker compose -f docker-compose-letsencrypt.yml up, wodurch der Server im Vordergrund läuft, sodass Sie sicherstellen können, dass alles ordnungsgemäß startet.

  • Wenn alles läuft, können Sie STRG+C drücken, docker compose -f docker-compose-letsencrypt.yml down ausführen, um einen sauberen Zustand zu erhalten, und dann docker compose -f docker-compose-letsencrypt.yml up -d mit dem zusätzlichen -d erneut ausführen, um den Server im Hintergrund (im Daemon-Modus) zu betreiben.

  • Bitte beachten Sie, dass die HTTPS-Methode die von Ihnen angegebene E-Mail-Adresse und den Domainnamen verwendet, um das Zertifikat zu registrieren. Sie können den Lets-Encrypt-Prozess (mit Certbot) hier nachlesen. Der Prozess umfasst die Überprüfung, dass Sie der Eigentümer der von Ihnen angegebenen Domain sind, und die Registrierung bei Lets Encrypt.

  • ES GIBT EIN RATENLIMIT. Bringen Sie diesen Server also nicht ständig hoch und runter, sonst erreichen Sie schnell das Limit für die Zertifikatserstellung von Lets Encrypt. Um dies zu vermeiden, können Sie für Testzwecke --staging zum Befehl ./certbot-auto in cerbot-nginx/start.sh hinzufügen, um zu testen, ob Lets Encrypt Ihnen das Zertifikat ausstellt.

Aktivieren der Basisauthentifizierung für Ihre Canarytokens-Website

Sie können diese Schritte befolgen, wenn Sie eine öffentlich erreichbare Canarytokens-Website betreiben möchten, diese jedoch mit einer einfachen Basisauthentifizierung schützen wollen.

  1. git clone https://github.com/thinkst/canarytokens-docker.git
  2. Navigieren Sie zum nginx-Ordner:
    • für HTTP:
    root@kitploit:~
    cd canarytokens-docker/nginx
    
    • für HTTPS:
    root@kitploit:~
    cd canarytokens-docker/certbot-nginx
    
  3. sudo htpasswd -c .htpasswd user wobei user ein beliebiger Benutzername sein kann, den Sie verwenden möchten.
  4. sudo chown <user>:<user> .htpasswd wobei user der lokale Linux-Benutzer ist
  5. bearbeiten Sie die entsprechende nginx.conf und
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. bearbeiten Sie das entsprechende Dockerfile und fügen Sie unterhalb von COPY nginx.conf ... hinzu:
root@kitploit:~
COPY .htpasswd /etc/nginx/.htpasswd
  1. Erstellen Sie die Images neu mit:
    • für HTTP:
    root@kitploit:~
    docker compose build
    
    • für HTTPS:
    root@kitploit:~
    docker compose -f docker-compose-letsencrypt.yml build
    

Starten Sie Ihre Docker-Container neu, und viel Spaß!

Danke, @mamisano, für das Finden eines dummen Problems bei der obigen Vorgehensweise 🙏

Was gibt es Neues?

Wir werden hier einige neue Funktionen/Ergänzungen festhalten, damit Sie schnell und einfach sehen können, was kürzlich hinzugefügt wurde.

  • Wir sind mit „Was gibt es Neues?“ zu GitHub Discussions umgezogen. Schauen Sie hier vorbei.

  • Wir haben jetzt die Möglichkeit, Fehlerprotokolle an einen Webhook Ihrer Wahl zu senden, um Sie oder Ihr Team hoffentlich auf Fehler aufmerksam zu machen, anstatt dass diese Fehler nur in einer Protokolldatei landen. Geben Sie einfach die entsprechende Webhook-URI im Wert ERROR_LOG_WEBHOOK in Ihrer switchboard.env-Datei an. (2021-04-09)

  • Wir haben die verteilten .env-Dateien in switchboard.env.dist und frontend.env.dist umbenannt. Dadurch wird sichergestellt, dass Ihre lokale Konfiguration nicht überschrieben wird, wenn Sie Änderungen aus dem Repo ziehen. (Wir verwenden weiterhin switchboard.env und frontend.env für die Konfiguration; es bedeutet nur, dass neue Klone des Repos von den Benutzern das Kopieren/Umbenennen der dist-Dateien erfordern)

  • Wir haben eine zusätzliche switchboard.env-Variable namens CANARY_IPINFO_API_KEY hinzugefügt. Damit können Sie bei Bedarf Ihren ipinfo.io-API-Schlüssel verwenden (beachten Sie, dass ipinfo.io ein kostenloses Kontingent von bis zu 1000 Anfragen pro Tag hat).

  • Wir unterstützen jetzt Slack. Wenn Sie einen Webhook angeben, müssen Sie lediglich Ihre Slack-Webhook-URL angeben. (Dank an @shortstack).

  • Wir haben eine neue Umgebungsvariable zu frontend.env hinzugefügt, genannt , mit der Sie eine private oder andere URL für das AWS-ID-Token angeben können. So können Sie einfach zwischen Konten wechseln. (2018-10-17)

FAQ

Wir haben eine FAQ hier

Mitwirken

Bitte lesen Sie unsere Dokumente Verhaltenskodex und Mitwirken, bevor Sie einen Pull-Request einreichen.

Wir freuen uns auf Ihre wertvollen Beiträge.

Tool herunterladen
CANARY_AWSID_URL
  • Wenn Sie das Image für ein anderes System mit anderer Architektur erstellen möchten, können Sie die Images mit docker compose build --build-arg ARCH=<target arch>/ bauen. Beachten Sie den Schrägstrich am Ende des Arguments. Ohne diesen wird das Image nicht korrekt erstellt.