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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
dnsmonster — パッシブDNSキャプチャ・モニタリングツールキット | Kitploit
ツール/GitHubGitHub/fenkohq/dnsmonster
パケットスニッフィングと分析情報収集ネットワークセキュリティ脅威インテリジェンスDNS分析ログ分析
GitHubfenkohq/dnsmonster

dnsmonster

パッシブDNSキャプチャ・モニタリングツールキット

リポジトリを見る
360601914日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
ウェブサイト
共有

Build Status Go Version Latest Version License Open Issues

dnsmonsterのマネージドSaaSソリューションを検討しています! パッシブDNS監視の未来を形作るために、フィードバックと要件を共有してください:簡単なアンケートにご協力ください

目次

  • Dnsmonster
  • 主な機能
  • インストール
    • Linux
      • コンテナ
      • 手動ビルド
      • 静的ビルド
    • Windows
    • FreeBSDとMacOS
  • アーキテクチャ
    • Dockerを使ったオールインワンインストール
      • オールインワンデモ
    • エンタープライズデプロイ
  • 設定
    • コマンドラインオプション
    • 環境変数
    • 設定ファイル
    • 保持ポリシーとは
  • サンプリングとスキップ
    • 前処理サンプリング
    • ドメインのスキップ
    • ドメインの許可
    • ClickHouseのSELECTクエリにおけるSAMPLE
  • サポートされる入力
  • サポートされる出力
  • ロードマップ
  • 関連プロジェクト

Dnsmonster

Golangで構築されたパッシブDNS監視フレームワーク。 dnsmonsterはDNSトラフィック用のパケットスニファを実装しています。pcapファイル、ライブインターフェース、またはdnstapソケットからトラフィックを受け入れることができ、 一般的なコンピュータ上で毎秒20万件以上のDNSクエリをインデックス化できることが実証されており、毎秒数十万件のDNSクエリをインデックス化・保存するために使用できます。スケーラブルでシンプル、かつ使いやすく、セキュリティチームが企業のDNSトラフィックの詳細を理解するのに役立つことを目的としています。dnsmonsterはDNSの会話を追跡するものではなく、むしろDNSパケットが到着次第インデックス化することを目的としています。また、エンドユーザーのプライバシーを侵害するものではなく、レイヤ3のIP(IPv4およびIPv6)をマスクする機能があり、チームが集計データに対してトレンド分析を行えるようにしつつ、個々のユーザーにクエリを追跡できないようにします。ブログ記事

バージョン1.xより前のコードはベータ品質とみなされ、破壊的変更が発生する可能性があります。各リリース間の破壊的シナリオのリストと、潜在的なデータ損失を軽減する方法については、各タグのリリースノートを参照してください。```mermaid graph TD subgraph Input B1["network input"] B2["pcap file"] B3["dnstap socket"] end

subgraph "Process"
    C1["Sampling based of ratio"]
    C2["Packet Process"]
    C3["Dispatcher"]
    O11["Output1"]
    O12["Domain Skip (optional)"]
    O13["Domain Allow (optional)"]
    O21["Output2"]
    O22["Domain Skip (optional)"]
    O23["Domain Allow (optional)"]
    O31["Output3"]
    O32["Domain Skip (optional)"]
    O33["Domain Allow (optional)"]
end

B1 --> Process
B2 --> Process
B3 --> Process

C1 --> C2
C2 --> C3
C3 --> O11
C3 --> O21
C3 --> O31

O11 --> O12 --> O13
O21 --> O22 --> O23
O31 --> O32 --> O33

subgraph Output
    Splunk
    Syslog
    H["ClickHouse"]
    Postgres
    Kafka
    I["JSON File"]
    Influx
    Elastic
    J["stdout"]
    Parquet
    Sentinel
end

O13 --> H
O23 --> I
O33 --> J
# 主な機能

- Linuxの`afpacket`とゼロコピーパケットキャプチャを使用可能。
- BPFに対応
- プライバシー強化のためIPアドレスをマスク可能
- 前処理サンプリング比率を設定可能
- ストレージへの書き込みを回避するための"スキップ"`fqdn`のリストを保持可能
- 特定のドメインへのアクセスをログに記録するための"許可"ドメインのリストを保持可能
- スキップおよび許可ドメインファイル/URLのホットリロード
- 出力ストリームごとに設定可能なロジックを持つモジュラー出力。
- ClickHouseのTTL属性を使用した自動データ保持ポリシー
- ClickHouse出力用の組み込みGrafanaダッシュボード。
- 単一の静的リンクされたバイナリとして配布可能
- 環境変数、コマンドラインオプション、設定ファイルで設定可能
- ClickHouseのSAMPLE機能を使用した出力のサンプリングが可能
- `prometheus`および`statstd`を使用したメトリクス送信が可能
- ClickHouseの組み込みLZ4ストレージによる高い圧縮率
- DNS Over TCP、フラグメント化DNS(udp/tcp)、IPv6に対応
- UnixソケットまたはTCP経由の[dnstap](https://github.com/dnstap/golang-dnstap)をサポート
- SplunkおよびMicrosoft Sentinelとの組み込みSIEM統合

# インストール

## Linux

`dnsmonster`を使い始める最善の方法は、リリースセクションからバイナリをダウンロードすることです。バイナリは`musl`に対して静的にビルドされているため、多くのディストリビューションでそのまま動作するはずです。`afpacket`をサポートするには、カーネル3.x+を使用する必要があります。最近のLinuxディストリビューション(CentOS/RHEL 7+、Ubuntu 14.0.4.2+、Debian 7+)は3.x+バージョンを搭載しているため、そのまま動作するはずです。ディストリビューションがプリコンパイル版で動作しない場合は、詳細を添えてIssueを送信し、このセクション[手動でビルド](#build-manually)に従って手動でビルドしてください。

### コンテナ

`dnsmonster`はrawパケットキャプチャ機能を使用するため、Docker/Podmanデーモンはコンテナにその機能を付与する必要があります```
sudo docker run --rm -it --net=host --cap-add NET_RAW --cap-add NET_ADMIN --name dnsmonster ghcr.io/mosajjal/dnsmonster:latest --devName lo --stdoutOutputType=1

手動ビルド

  • libpcap を使用する場合: go、libpcap-devel、linux-headers パッケージがインストールされていることを確認してください。パッケージ名はディストリビューションによって異なる場合があります。その後、リポジトリをクローンして go build ./cmd/dnsmonster を実行するだけです。```sh git clone https://github.com/mosajjal/dnsmonster --depth 1 /tmp/dnsmonster cd /tmp/dnsmonster go get go build -o dnsmonster ./cmd/dnsmonster
- `libpcap`なしの場合:
`dnsmonster`は`libpcap`から1つの機能のみを使用します。それは`tcpdump`形式のフィルターをBPFバイトコードに変換することです。BPFサポートなしでも問題ない場合、`libpcap`なしで`dnsmonster`をビルドできます。ただし、他のプラットフォームでは、パケットキャプチャは`libpcap`にフォールバックするため、ハードな依存関係になります(*BSD、Windows、Darwin)```sh
git clone https://github.com/mosajjal/dnsmonster --depth 1 /tmp/dnsmonster 
cd /tmp/dnsmonster
go get
go build -o dnsmonster -tags nolibpcap ./cmd/dnsmonster

上記のビルドはARMv7(RPi4)およびAArch64でも動作します。

Build statically

libpcap.aのコピーがあれば、それをdnsmonsterに静的にリンクして、完全に静的なビルドを行うことができます。以下のコードでは、/root/libpcap-1.9.1/libpcap.aをお使いのコピーの場所に変更してください。``` git clone https://github.com/mosajjal/dnsmonster --depth 1 /tmp/dnsmonster cd /tmp/dnsmonster/ go get go build --ldflags "-L /root/libpcap-1.9.1/libpcap.a -linkmode external -extldflags "-I/usr/include/libnl3 -lnl-genl-3 -lnl-3 -static"" -a -o dnsmonster ./cmd/dnsmonster

静的にリンクされたバイナリの作成方法の詳細については、[この](https://github.com/fenkohq/dnsmonster/blob/main/Dockerfile) Dockerfile を参照してください。

## Windows

Windows でのビルドは Linux とほぼ同じです。`npcap` がインストールされていることを確認してください。リポジトリをクローンし(`--history 1` が機能します)、`go get` と `go build ./cmd/dnsmonster` を実行します。

前述のとおり、Windows 版のバイナリは [npcap](https://nmap.org/npcap/#download) のインストールに依存しています。インストール後、バイナリはすぐに動作するはずです。Windows 10 環境でテストされ、問題なく実行されました。`--devName` パラメータに指定するインターフェース名を見つけてスニッフィングを開始するには、次の手順を実行する必要があります。

  - 管理者として cmd.exe を開き、次のコマンドを実行します: `getmac.exe`。各インターフェースの MAC アドレスと Transport Name 列が表示され、次のような内容になります: `\Device\Tcpip_{16000000-0000-0000-0000-145C4638064C}`
  - 次のように `cmd.exe` で `dnsmonster.exe` を実行します:```sh
dnsmonster.exe --devName \Device\NPF_{16000000-0000-0000-0000-145C4638064C}

注意点: getmac.exe の \Tcpip を \NPF に変更し、それを dnsmonster.exe に渡す必要があります。

FreeBSD および MacOS

Linux や Windows とほぼ同じです。git、libpcap、go がインストールされていることを確認してから、同じ手順に従ってください:```sh git clone https://github.com/mosajjal/dnsmonster --depth 1 /tmp/dnsmonster cd /tmp/dnsmonster go get go build -o dnsmonster ./cmd/dnsmonster

# アーキテクチャ

## Dockerを使用したオールインワンインストール

![Basic AIO Diagram](https://raw.githubusercontent.com/fenkohq/dnsmonster/HEAD/static/dnsmonster-basic.svg)

このダイアグラムの例では、DNSサーバートラフィックの出口/入口をキャプチャし、その後、オプションのパケット集約レイヤーを追加してからDNSMonsterサーバーに到達します。DNSサーバーから送信されるデータは、DNSフリートのキャッシュおよびパフォーマンス分析に非常に有用です。アグリゲーターが利用できない場合は、両方のTAPを直接DNSMonsterに接続し、2つのDNSMonsterエージェントでトラフィックを監視することもできます。

`./autobuild.sh` を実行すると、複数のコンテナが作成されます:

* 任意のインターフェース上のトラフィックを監視する `dnsmonster` の複数インスタンス。インターフェースリストは `autobuild.sh` の一部としてプロンプト表示されます。
* `dnsmonster` の出力を収集し、すべてのログ/データをデータおよびログディレクトリに保存する `clickhouse` の1インスタンス。両方とも `autobuild.sh` の一部としてプロンプト表示されます。
* プリビルドのダッシュボードで `clickhouse` データを参照する `grafana` の1インスタンス。

### オールインワンデモ

[![AIO Demo](https://raw.githubusercontent.com/fenkohq/dnsmonster/HEAD/static/aio_demo.svg)](static/aio_demo.svg)

## エンタープライズデプロイメント

![Basic AIO Diagram](https://raw.githubusercontent.com/fenkohq/dnsmonster/HEAD/static/dnsmonster-enterprise.svg)

# 設定
ツールをダウンロード