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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
dns-honeypot — dns-honeypot | Kitploit
ツール/GitHubGitHub/tg12/dns-honeypot
OSINT (オープンソースインテリジェンス)情報収集ネットワークセキュリティ脅威インテリジェンスインシデントレスポンスDNS分析ログ分析Archived
GitHubtg12/dns-honeypot

dns-honeypot

dns-honeypot

リポジトリを見る
9973ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

DNSハニーポットを運用した最初の24時間

観測可能性ツールに日々没頭しているエンジニアとして、たまにどうしても試したくなるアイデアが浮かびます。これもそうした実験の一つです:誰も広告していないクリーンなIP上でDNSリゾルバを立ち上げ、インターネットに好き勝手に話しかけさせます。リゾルバの唯一の仕事は、静かに待機し、すべてをログに記録し、結果のクエリをGrafanaに送り込むことです。docker compose up -d を実行しただけで、Unbound、Loki、Prometheus、Grafana、Traefikがライブトラフィックを追跡し、好奇心、設定ミス、時折のスキャナーのヒストグラムを表示してくれました。このREADMEは、その最初の24時間のレポートであり、スタックが何を捉えているか、なぜそれが私にとって重要なのか、そして現在のセキュリティ状況について何を浮き彫りにしているかを示しています。

実験

私は意図的に自分の側から一切のシグナルを導入しませんでした。パケットドロップも、調整された応答も、緩和策もありません。ログを有効にしたUnbound、ログファイルを追跡するLoki、エクスポーターメトリクスをスクレイピングするPrometheus、GrafanaをフロントエンドにするTraefik、それらを結びつけるDocker Composeだけです。リゾルバは、私が見つけた驚くほど「クリーン」なIPv4アドレス94.130.27.226に配置し(ノイズ前のベースラインを知りたい場合はhttps://www.abuseipdb.com/check/94.130.27.226でステータスを確認してください)、世界に好き放題させました。一台のラップトップで全てのパネルを監視でき、刺激を与えたいときは tools/dns_query_storm.sh を起動し、その後ノイズが世界のインターネットが送る任意のパターンに落ち着くのを待ちました。

それらのダッシュボードは https://dns.cybersafeintl.co.uk/public-dashboards/eb554b5b74e14f4d95e376c0033ee83d でライブで覗くことができますが、スタック内で最も低スペックなサーバーで動作しているため、クエリが多いときはリフレッシュが遅くなる可能性があります。

ダッシュボードが捉えるもの

  • スループット: PrometheusはUnboundエクスポーターの unbound_total_num_queries メトリクスをスクレイピングするため、「スループット(QPS、5分レート)」パネルは毎秒のクエリ数を表示し、ソース別に分類します。このビューは「誰がリゾルバを叩いているのか?」という質問に答え、突然のスパイクはバングラデシュまたはポーランド拠点のASNを直接指し示し、ログからはSERVFAIL/NXDOMAINストームがバーストに伴っているかどうかを簡単に確認できます。
  • トップクライアント: LokiのLogQLは client_ip でグループ化し、ダッシュボードは既にすべてを topk(sort_desc(...)) でラップしています。これによりパネルはすっきりと保たれ、エクスポータースクリプトを使用して同じクエリをCSVにダンプし、オフライン分析、レポート、再現可能なストーリーに活用できます。最初のキャプチャでは、45.179.* と 45.6.* のレンジにある5つのIPアドレスが5分間でそれぞれ5k以上のクエリを発射しており、スキャナーファームか攻撃的なクライアントである可能性があります。
  • ドメイン: 「トップドメイン」パネルは、5分および24時間のウィンドウにおける qname の人気を表示します。5分のスナップショットでは scb.se、dhl.com、cmu.edu が、24時間のエクスポートでは cbs.nl、scb.se、atlassian.com、abb.com、up.pt が含まれていました。なぜこれらのドメインなのか?それが興味深い点です。これらは正当なサービス、設定ミスのリゾルバ、または期限切れレコードを追う日和見スキャナーでしょうか?理論があれば教えてください。

表示されているすべてのパネルには、exports/ ディレクトリに対応するCSVがあります。ブログ記事やインシデントレポートに生のストーリーを添付したい場合は、それらをまとめてください (zip -r exports.zip exports/)。

内部構造

  • docker-compose.yml は、単一のコマンドでUnbound、Unboundエクスポーター、Loki + Promtail、Prometheus、Grafana、Traefikを起動します。
  • unbound/ はリゾルバの設定とログを保存します。TTL制御、serve-expired、キャッシュ設定により、クライアントが実際に何を尋ねているかを忠実にキャプチャします。
  • prometheus/、loki/、grafana/ ディレクトリにはデータとプロビジョニングファイルが保存され、メトリクスとダッシュボードが再起動後も保持されます。
  • grafana/dashboards/unbound-traffic-insights.json は、表示されているビューで事前プロビジョニングされています。すべてのPromQL/Lokiクエリはすでに集計およびソートされており、パネルを読みやすく保っています。
  • tools/dns_query_storm.sh を使用すると、反応時間をテストする必要があるときにクエリストームをシミュレートできます。
  • redeploy.sh は、スタック全体をダウンさせ、アップデートをプルし、再構築する作業を単一のスクリプトで自動化します。
  • export_dashboard_data.py は、ダッシュボードJSONをウォークスルーし、各Prometheus/Lokiクエリを実行し、サニタイズされたCSVファイルを exports/ ディレクトリに書き出して共有できるようにします。
image image

はじめに

  1. cd hetzner_deploy/unbound-dns
  2. cp .env.example .env を実行し、GRAFANA_DOMAIN、Grafana管理者認証情報、LETSENCRYPT_EMAIL、必要なTLSオーバーライドを設定します。
  3. sudo chown -R 472:472 grafana-data && sudo mkdir -p prometheus/data && sudo chown -R 65534:65534 prometheus/data
  4. docker compose build && docker compose up -d
  5. DNSクライアントをポート53のホストに向け、TraefikをGrafanaのHTTPS用に配置すれば、数分以内にパッシブトラフィックを監視できます。

表示内容のエクスポートと共有

  1. pip install requests を実行します(エクスポーターは純粋なPythonです)。
  2. python export_dashboard_data.py --duration 24h --outdir exports/24h --timeout 90 を実行して、すべてのダッシュボードクエリを取得し、CSVに変換して、結果を exports/24h の下に配置します。
  3. zip -r exports.zip exports/ を実行して、公開前、ブログ記事への添付、または共同作業者への送信のために生のテーブルをまとめます。
  4. 対象を絞ったスライスが必要な場合は --duration 6h や --end タイムスタンプを指定して再実行するか、ドメインパネルのみが必要な場合は --filter domains を使用します。

初日に気づいたこと

  • 5分粒度のエクスポートでは、scb.se、dhl.com、cmu.edu、up.pt、utc.fr がそれぞれ数十万のルックアップを生成しました。なぜこれらのターゲットなのか?欧州企業のドメイン群から、CDN、リストアサービス、または古いキャッシュを再水和しようとするスキャナーが疑われます。
  • 24時間のエクスポートはさらに大きな全体像を示しています:cbs.nl、scb.se、atlassian.com、abb.com、up.pt が合計で2億5千万以上のクエリを生成しました。この量はランダムノイズではなく、大規模なクライアントか、決して解決を止めない持続的なアプライアンスのいずれかです。
  • 最も忙しいクライアントは、いくつかの 45.179.* および 45.6.* のIPv4アドレスで、観測された5分間でそれぞれ5k以上のクエリを発射していました。これらはISPまたはスキャンファームの一部かもしれませんが、いずれにせよ、ダッシュボードはその追跡を簡単にしています。

これが何を浮き彫りにするのか?それは、露出したDNSインフラストラクチャが、広告されていなくても興味深いトラフィックの受動的なフィードになり得ることを示しています。インターネットは質問を投げかけ続け、このセットアップは単に注意深く耳を傾けます。この実験が私のより広い仕事にどのように適合するか興味があれば、他のリポジトリをチェックしてください。時々このようなアイデアを実行して、それがどこに導くかを見なければなりません。

この実験の感触

  • このセットアップはほとんどコストがかからず、それでいてまるで研究室全体のようです。リゾルバが未承諾のクエリで満たされるのを見ると、スタックが生きているように感じられ、少し不安ですが魅力的です。
  • 私は何もフィルタリングしていないので、ストレステストをしたい場合や自分のスクリプトを向けたい場合は、どうぞご自由に。ダッシュボードは、あなたがどれだけのノイズを引き起こしたかを正確に表示します。
  • エクスポート機能により、そのノイズを簡単に保存できます。exports/ フォルダをZip圧縮するか、CSVを直接ストーリーを語る場所に添付してください。
  • 私は今でもそれらのドメインとクライアントIPに興味を持っています。自分のハニーポットで同様のパターンを見かけたら、ここに統計情報を残して、情報交換しましょう。

ここからどう発展させるか

  • 異常(SERVFAILのバーストや突然のNXDOMAINストームなど)に反応したい場合は、Alertmanagerやカスタムスクリプトを追加します。
  • export_dashboard_data.py やLokiクエリを拡張して、追加のメタデータ(クライアントASN、SERVFAIL理由、国)を組み込み、より深い質問に答えます。
  • Lokiの出力を二次分析パイプラインに送るか、PrometheusのCSVをノートブックにダンプして分類実験を行います。
  • ストーリーを生かし続ける:新しいウィンドウ(--duration 12h、--end ...)でエクスポーターを再実行し、出力をタイムスタンプ付きディレクトリに保存し、このREADMEを最新の統計で更新して、プロットを最新に保ちます。

自身のハニーポットで追跡している場合は、このREADMEをエクスポートの統計で更新し、ストーリーを比較し、同じサイトやクライアントが戻ってくるかどうかを確認しましょう。

法的免責事項

このプロジェクトは「現状のまま」提供されます。商品性、特定目的への適合性、非侵害性を含むがこれらに限定されない、明示または黙示のいかなる保証もなく、その使用から生じるいかなる損害についても責任を負いません。このスタックのデプロイ、設定、運用に関連するすべてのリスクはお客様が負うものとします。

サポート

このプロジェクトが役立つと思われたら、サポートをご検討ください:

通貨アドレス
Bitcoin (BTC)3QjWqhQbHdHgWeYHTpmorP8Pe1wgDjJy54
Ethereum (ETH)0x5851e6145F4773d1585b8686095FB16E368a4dA1
ZCash (ZEC)t1KSR5YkNPbjqRSCoLKo5AddFWdm9Kzxh1B
ツールをダウンロード
  • ログ: Lokiは生のログテールもストリーミングするため、SERVFAIL、キャッシュウォームアップ、またはクライアントがクエリの種類を拡大していることに関連するスパイクを確認できます。これらのログをエクスポートしたCSVと組み合わせると、世界が何を尋ねていたかのタイムラインを再構築できます。