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
yellow — Ein einfacher Binary-Wrapper für DNS-Canarytokens. | Kitploit
Tools/GitHubGitHub/singe/yellow
DefensivwerkzeugeNetzwerksicherheitEinbruchserkennung
GitHubsinge/yellow

yellow

Ein einfacher Binary-Wrapper für DNS-Canarytokens.

Repository anzeigen
2511vor 3 JahrenVon 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
root@kitploit:~
            _ _               
 _   _  ___| | | _____      __
| | | |/ _ \ | |/ _ \ \ /\ / /
| |_| |  __/ | | (_) \ V  V / 
 \__, |\___|_|_|\___/ \_/\_/  
 |___/               
 - Just add blue.

yellow - einfach Blau hinzufügen

Einfache Binärmodifikationen, die einen Canary-Token auslösen, wenn eine Binärdatei ausgeführt wird.

Ideal zum Präparieren von Produktionssystemen gegen Angreifer.

Derzeit gibt es vier Methoden:

  • yellow ist ein gezielter Ansatz mit einer Binärdatei, die den Token auslöst und anschließend die echte Binärdatei basierend auf einer Dateierweiterung Ihrer Wahl ausführt.
  • spe ist eine Variation des oben Genannten und verwendet einen ähnlichen Ansatz wie das kürzlich von Thinkst hinzugefügte Token "Sensitive Process Execution" für Windows.
  • libyellow ist ein systemübergreifender Benachrichtigungsmechanismus und löst transparent einen Canary-Token für jeden von Ihnen angegebenen Binärnamen aus, wenn es über LD_PRELOAD injiziert wird.
  • ldsoyellow ist ein voll funktionsfähiger glibc-Linker (ld.so), der für jede Binärdatei, die ihn verwendet, einen Canary-Token auslöst.

Vorbereitung

Registrieren Sie unter canarytokens einen eigenen DNS-Canary-Token. Weitere Informationen zur Funktionsweise finden Sie in der Dokumentation.

Er sieht ungefähr so aus: pz21qtyfsidipvrsuzs9n2udi.canarytokens.com

Setzen Sie ihn in die Umgebungsvariable TOKEN mit: export TOKEN="c28y9l4dw0drj62un0cm4rwz6.canarytokens.com"

Die Dockerfiles enthalten ein funktionierendes Beispiel-Token. Sie können seinen Aktivitätsverlauf hier einsehen. Sie sollten aber wirklich Ihren eigenen verwenden.

Erstellen

Für jede dieser Build-Methoden sind Dockerfiles verfügbar.

Wenn Sie eine geeignete Standard-Build-Umgebung haben (z. B. build-essential auf Debian-basierten Systemen oder build-base auf Alpine-basierten Systemen), können Sie libyellow oder yellow sehr einfach kompilieren. ldsoyellow ist aufwendiger.

Ein einfaches End-to-End-Beispiel für das Erstellen und Installieren von yellow finden Sie in den Dockerfiles.

yellow

gcc -o yellow yellow.c canary32.c

Siehe Dockerfile.yellow

spe

Keine Kompilierung erforderlich.

libyellow

Achten Sie darauf, die Liste der Binärdateien, für die Sie Benachrichtigungen erhalten möchten, im Array alert_list zu aktualisieren.

gcc -shared -fPIC libyellow.c canary32.c -o libyellow.so

Siehe Dockerfile.libyellow oder Dockerfile.libyellow.debian für Alpine- und Debian-Versionen.

ldsoyellow

Schauen Sie sich das Dockerfile.ldsoyellow für ein funktionierendes Beispiel an. Sie benötigen die glibc-Quellen (ich empfehle, die offizielle Paketversion zu verwenden, um so nah wie möglich am echten Linker zu sein).

apt-get source libc6

Wenden Sie den Patch rtld.c.patch an.

cd /glibc-* patch < rtld.c.patch

Konfigurieren Sie glibc mit deaktivierten Sanity-Checks und Verweis auf das richtige libdir (unter der Annahme eines 64-Bit-Systems).

mkdir glibcbuild && cd glibcbuild /glibc-*/configure --disable-sanity-checks --libdir=$(dirname $(find / -name "libc.so.6"|grep 64))

Wie gewohnt bauen

make

Installieren

Alle Varianten verwenden die Umgebungsvariable TOKEN, um die Canary-Token-URL anzugeben. Der Name der Umgebungsvariable kann geändert oder bei Bedarf sogar fest verdrahtet werden. Auch hierfür existieren Dockerfiles für jede dieser Varianten.

yellow

yellow ist dafür gedacht, auf bestimmte Binärdateien zu reagieren, die Sie umbenennen und darauf aliasen, ähnlich wie busybox verwendet wird. Sie müssen die Binärdatei so umbenennen, dass sie die Erweiterung „.canary“ verwendet, und dann einen Symlink (oder eine Kopie) von yellow unter dem ursprünglichen Binärnamen erstellen. Zum Beispiel:

root@kitploit:~
cp yellow /usr/bin
mv /usr/bin/id /usr/bin/id.canary
ln -s /usr/bin/yellow /usr/bin/id

Danach löst jede Ausführung von id Ihren Canary-Token aus.

Siehe Dockerfile.yellow

spe

Die Methode zur Ausführung sensibler Prozesse (Sensitive Process Execution) verwendet dieselbe Technik wie oben, löst jedoch mit einem Shell-Skript statt einer Binärdatei aus und wird mit einem Installationsprogramm geliefert. Führen Sie spe_install.sh aus und übergeben Sie Ihr DNS-Token sowie den Namen der Binärdatei, bei der Sie den Token auslösen möchten. Die Binärdatei muss nicht existieren.

Zum Beispiel: ./spe_install.sh "c28y9l4dw0drj62un0cm4rwz6.canarytokens.com" /bin/id

Dadurch wird bei jeder Ausführung von id ein Alarm erstellt.

Dies ist eine Kopie der Windows-Token-Methode, die hier beschrieben wird.

libyellow

libyellow ist dafür gedacht, auf jede Binärdatei zu reagieren, in die es über LD_PRELOAD injiziert wurde, aber nur die von Ihnen im Code angegebenen zu melden. Dies kann pro Sitzung erfolgen, indem die Umgebungsvariable LD_PRELOAD darauf zeigt, oder systemweit, indem es in die Datei /etc/ld.so.preload eingetragen wird. Letzteres kann Ihr System beschädigen, wenn die Bibliothek dort nicht funktioniert. Daher wird empfohlen, sie zuerst mit LD_PRELOAD zu testen.

Denken Sie daran, Ihren Token wie oben unter „Vorbereitung“ beschrieben in die Umgebungsvariable TOKEN zu setzen.

LD_PRELOAD-Beispiel:

root@kitploit:~
cp libyellow.so /usr/lib/
export LD_PRELOAD=/usr/lib/libyellow.so

Führen Sie dann eine Zielbinärdatei aus, prüfen Sie, ob sie sich wie erwartet verhält, und Sie erhalten einen Canary-Alarm.

Sobald Sie zufrieden sind, dass alles funktioniert, können Sie es systemweit hinzufügen mit (dies funktioniert nicht auf musl-basierten Systemen wie Alpine, wo stattdessen die LD_PRELOAD-Methode verwendet wird):

root@kitploit:~
cp libyellow.so /usr/lib
echo /usr/lib/libyellow.so >> /etc/ld.so.preload

Siehe Dockerfile.libyellow oder Dockerfile.libyellow.debian für Alpine- und Debian-Versionen.

ldsoyellow

ldsoyellow ist dafür gedacht, auf bestimmte Binärdateien zu reagieren, bei denen die Binärdatei so modifiziert wurde, dass sie es anstelle des Standard-Linkers verwendet. Sie könnten den Standard-Linker für eine systemweite Wirkung durch es ersetzen, aber das würde wahrscheinlich zu viele Meldungen erzeugen.

Das Beispiel in Dockerfile.ldsoyellow führt dies für /bin/cat durch. Zuerst wird der präparierte Linker neben den legitimen Linker kopiert:

cp <arm'd linker> /lib64/ld-linux-x86-64.so.3

Dann wird die Binärdatei so geändert, dass sie anstelle des legitimen Linkers diesen verwendet:

sed -i "s/\/lib64\/ld-linux-x86-64.so.2/\/lib64\/ld-linux-x86-64.so.3/" /bin/cat

Siehe Dockerfile.ldsoyellow.

Docker-in-Docker-Beispiel

Wenn Sie Docker in Docker ausführen möchten, zum Beispiel in einer Build-Umgebung, in der Sie nur begrenzte Kontrolle über die Build-Anweisungen haben, und benachrichtigt werden möchten, falls jemand ausbricht, könnten Sie etwas Ähnliches wie das Beispiel in Dockerfile.dind-rootless tun. Dieses Beispiel verwendet yellow, könnte aber jede oder alle anderen Varianten verwenden.

Es präpariert Binärdateien auf dem Host, die aus einem Container nicht zugänglich sein sollten.

Tool herunterladen