Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
yellow — DNS canarytokens 用のシンプルなバイナリラッパー。 | Kitploit
ツール/GitHubGitHub/singe/yellow
防御ツールネットワークセキュリティ侵入検知
GitHubsinge/yellow

yellow

DNS canarytokens 用のシンプルなバイナリラッパー。

リポジトリを見る
2513年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
root@kitploit:~
            _ _               
 _   _  ___| | | _____      __
| | | |/ _ \ | |/ _ \ \ /\ / /
| |_| |  __/ | | (_) \ V  V / 
 \__, |\___|_|_|\___/ \_/\_/  
 |___/               
 - Just add blue.

yellow - 青を加えるだけ

バイナリを実行した際に canarytoken をトリガーする、シンプルなバイナリ改変です。

攻撃者に対する本番システムのブービートラップ化に最適です。

現在、4つの方法があります:

  • yellow は、トークンをトリガーした後、任意のファイル拡張子に基づいて実際のバイナリを実行するバイナリを使った、対象を絞ったアプローチです。
  • spe は、Thinkst が最近追加した Windows 向けの "Sensitive Process Execution" トークンと同様のアプローチを用いた、上記の派生版です。
  • libyellow はシステム横断的な通知で、LD_PRELOAD 経由で注入された際に、指定した任意のバイナリ名に対して透過的に canarytoken をトリガーします。
  • ldsoyellow は完全に機能する glibc リンカ(ld.so)で、それを使用する任意のバイナリに対して canarytoken をトリガーします。

事前準備

独自の DNS canary token を canarytokens で登録してください。それらの仕組みについては ドキュメント で詳しく読めます。

次のような形式になります: pz21qtyfsidipvrsuzs9n2udi.canarytokens.com

それを環境変数 TOKEN に設定します: export TOKEN="c28y9l4dw0drj62un0cm4rwz6.canarytokens.com"

Dockerfile には動作するサンプルトークンが含まれています。そのアクティビティ履歴は こちら で確認できます。ただし、実際には独自のトークンを使うべきです。

ビルド

これらの各ビルド方法を実装した Dockerfile が用意されています。

適切なデフォルトのビルド環境(例: Debian 系システムの build-essential や Alpine 系システムの build-base)があれば、libyellow または yellow を非常に簡単にコンパイルできます。ldsoyellow はもう少し複雑です。

Dockerfile 群に、yellow のビルドとインストールの単純なエンドツーエンドの例があります。

yellow

gcc -o yellow yellow.c canary32.c

Dockerfile.yellow を参照してください。

spe

ビルドは不要です。

libyellow

アラート対象にしたいバイナリのリストを、alert_list 配列で必ず更新してください。

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

Alpine 版と Debian 版については、Dockerfile.libyellow または Dockerfile.libyellow.debian を参照してください。

ldsoyellow

動作例については Dockerfile.ldsoyellow を確認してください。glibc のソースが必要です(実際のリンカにできる限り近づけるため、公式パッケージ版を使うことをお勧めします)。

apt-get source libc6

パッチ rtld.c.patch を適用します。

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

サニティチェックを無効にし、正しい libdir を指すように glibc を構成します(64ビットシステムを想定)。

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

通常どおりビルドします。

make

インストール

すべてのバリアントは、canary token の URL を指定するために TOKEN 環境変数を使用します。環境変数名は変更できますし、必要であればハードコードすることもできます。繰り返しますが、それぞれに対応する Dockerfile があります。

yellow

yellow は、busybox と同じように、リネームして yellow へのエイリアスとして使う特定のバイナリに対してトリガーすることを意図しています。バイナリを ".canary" 拡張子を使うようにリネームし、元のバイナリ名で yellow へのシンボリックリンク(またはコピー)を作成する必要があります。例:

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

この後、id を実行すると canary token がトリガーされます。

Dockerfile.yellow を参照してください。

spe

sensitive process execution(機密プロセス実行)方式は上記と同じ手法を使いますが、バイナリではなくシェルスクリプトでトリガーし、インストーラが付属しています。DNS トークンと、トリガーしたいバイナリの名前を渡して spe_install.sh を実行してください。そのバイナリが存在している必要はありません。

例: ./spe_install.sh "c28y9l4dw0drj62un0cm4rwz6.canarytokens.com" /bin/id

これにより、id が実行されるたびにアラートが作成されます。

これは ここ で説明されている Windows トークン方式のコピーです。

libyellow

libyellow は、LD_PRELOAD 経由で注入された状態で使用される任意のバイナリに対してトリガーすることを意図していますが、アラートを出すのはコード内で指定したものだけです。これは、LD_PRELOAD 環境変数をそれに向けて設定することでセッション単位で行うこともできますし、/etc/ld.so.preload ファイルに追加することでシステム全体で行うこともできます。後者は、ライブラリがそのシステムで動作していない場合にシステムを壊す可能性があるため、最初に LD_PRELOAD を使ってテストすることをお勧めします。

上記の「事前準備」で説明したとおり、TOKEN 環境変数にトークンを設定することを忘れないでください。

LD_PRELOAD の例:

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

その後、対象のバイナリを実行し、期待どおりに動作することを確認すると、canary アラートが届きます。

すべてが動作していることを確認できたら、次の方法でシステム全体に追加できます(これは Alpine のような musl ベースのシステムでは機能しません。そのようなシステムでは代わりに LD_PRELOAD 方式を使用してください):

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

Alpine 版と Debian 版については、Dockerfile.libyellow または Dockerfile.libyellow.debian を参照してください。

ldsoyellow

ldsoyellow は、デフォルトのリンカの代わりにそれを使うように変更された特定のバイナリに対してトリガーすることを意図しています。システム全体に影響を与えるためにデフォルトのリンカをこれに置き換えることもできますが、おそらくノイズが多すぎるでしょう。

Dockerfile.ldsoyellow の例では、/bin/cat に対してこれを行っています。まず、トリガーを仕込んだリンカを正規のリンカの隣にコピーします:

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

次に、バイナリが正規のリンカの代わりにそれを使用するよう変更されます:

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

Dockerfile.ldsoyellow を参照してください。

Docker in Docker の例

たとえば、ビルドディレクティブをあまり制御できないビルド環境で Docker in Docker を実行し、誰かがコンテナから脱出した場合にアラートを受け取りたい場合、Dockerfile.dind-rootless の例のようなことができます。この例は yellow を使用していますが、他のバリアントのいずれかまたはすべてを使用することもできます。

コンテナからアクセスできるべきではないホスト上のバイナリにブービートラップを仕掛けます。

ツールをダウンロード