ネットワーク探索ツール「netdiscover」
2025年4月11日
セキュリティエンジニアの曽我です。今回からシリーズでセキュリティエンジニアに役立つツールをご紹介します。 第一回目はネットワークへのwifiからのアプローチなどで役立つネットワーク探索ツール「netdiscover」について ご紹介します。 ネットワーク管理者やセキュリティ担当者にとって、ローカルネットワーク上のデバイスを把握する ことは基本的かつ重要なタスクです。netdiscoverはシンプルながら強力なツールで、ARPリクエストを利用して ネットワーク上のアクティブなデバイスを発見できます。
本記事では、netdiscoverの基本的な使い方から応用テクニックまで、実際のコマンド例と出力結果を交えて 解説します。ネットワーク監査やトラブルシューティングに役立つツールとして、ぜひ皆さんのツールボックスに 加えていただければと思います。
目次
- netdiscoverとは
- インストール方法
- 基本的な使い方 3.1. パッシブモード 3.2. アクティブモード
- 高度な使い方 4.1. 特定のネットワーク範囲のスキャン 4.2. 特定のインターフェースの使用 4.3. スキャン間隔の調整
- 実践的な活用例 5.1. 不正デバイスの検出 5.2. IPアドレス競合の特定
- まとめ
- 参考資料
1. netdiscoverとは
netdiscoverは、ARPリクエストを使用してローカルネットワーク上のデバイスを発見するシンプルなネットワーク探索ツールです。主にLinux環境で使用され、Kali LinuxやParrot OS等のセキュリティ指向のディストリビューションには標準でインストールされています。
netdiscoverの主な特徴:
- ARPプロトコルを利用するため、LAN内の探索に最適
- パッシブモードとアクティブモードの両方をサポート
- 最小限のネットワークトラフィックで効率的な探索が可能
- シンプルなコマンドラインインターフェース
2. インストール方法
Debian/Ubuntuベースのディストリビューションでは、以下のコマンドでインストールできます:
sudo apt update
sudo apt install netdiscover
Arch Linuxの場合:
sudo pacman -S netdiscover
Fedora/CentOSの場合:
sudo dnf install netdiscover
ソースコードからビルドする場合は、公式のGitHubリポジトリからクローンできます:
git clone https://github.com/alexxy/netdiscover.git
cd netdiscover
./configure
make
sudo make install
3. 基本的な使い方
netdiscoverには主に2つの動作モードがあります:パッシブモードとアクティブモードです。
3.1. パッシブモード
パッシブモードでは、netdiscoverはネットワーク上の既存のARPトラフィックを監視し、デバイスを検出します。これは最も非侵入的な方法で、自分でARPパケットを送信しないため、ネットワーク上での存在を最小限に抑えることができます。
sudo netdiscover -p
実行例:
Currently scanning: (passive) | Screen View: Unique Hosts
5 Captured ARP Req/Rep packets, from 3 hosts. Total size: 300
_____________________________________________________________________________
IP At MAC Address Count Len MAC Vendor / Hostname
-----------------------------------------------------------------------------
192.168.1.1 e4:6f:13:a2:45:e1 2 60 TP-LINK TECHNOLOGIES CO.,LTD.
192.168.1.15 b8:27:eb:c3:d2:91 2 60 Raspberry Pi Foundation
192.168.1.25 f8:1a:67:42:bd:76 1 60 Apple, Inc.
3.2. アクティブモード
アクティブモードでは、netdiscoverは指定されたネットワーク範囲にARPリクエストを送信し、応答するホストを識別します。これはより迅速かつ包括的にデバイスを発見できますが、ネットワークトラフィックが増加します。
sudo netdiscover -r 192.168.1.0/24
実行例:
Currently scanning: 192.168.1.0/24 | Screen View: Unique Hosts
12 Captured ARP Req/Rep packets, from 7 hosts. Total size: 720
_____________________________________________________________________________
IP At MAC Address Count Len MAC Vendor / Hostname
-----------------------------------------------------------------------------
192.168.1.1 e4:6f:13:a2:45:e1 2 60 TP-LINK TECHNOLOGIES CO.,LTD.
192.168.1.10 00:0c:29:f1:d8:5a 1 60 VMware, Inc.
192.168.1.15 b8:27:eb:c3:d2:91 2 60 Raspberry Pi Foundation
192.168.1.20 d8:3a:dd:27:9c:14 2 60 Intel Corporate
192.168.1.25 f8:1a:67:42:bd:76 2 60 Apple, Inc.
192.168.1.30 78:24:af:34:c1:a8 2 60 ASUSTek COMPUTER INC.
192.168.1.35 98:fa:9b:5d:7e:29 1 60 APPLE INC.
4. 高度な使い方
4.1. 特定のネットワーク範囲のスキャン
特定のIPアドレス範囲をスキャンするには、-r
オプションを使用します:
sudo netdiscover -r 10.0.0.0/24
複数の範囲を指定することも可能です:
sudo netdiscover -r 192.168.1.0/24,10.0.0.0/24
4.2. 特定のインターフェースの使用
デフォルトでは、netdiscoverは最初に見つかったインターフェースを使用しますが、-i
オプションで特定のインターフェースを指定できます:
sudo netdiscover -i wlan0 -r 192.168.1.0/24
4.3. スキャン間隔の調整
ARPリクエスト間の待機時間を調整して、ネットワーク負荷を制御できます。-d
オプションを使用して、ミリ秒単位で待機時間を指定します:
sudo netdiscover -r 192.168.1.0/24 -d 500
上記のコマンドでは、各ARPリクエスト間に500ミリ秒の待機時間を設定しています。デフォルトは30ミリ秒です。
5. 実践的な活用例
5.1. 不正デバイスの検出
ネットワークセキュリティ監査の一環として、netdiscoverを定期的に実行し、不明または未承認のデバイスを検出できます。
sudo netdiscover -r 192.168.1.0/24 > devices_$(date +%Y%m%d).txt
このコマンドは、現在のネットワークデバイスリストをタイムスタンプ付きのファイルに保存します。これを定期的に実行して比較することで、新しく追加されたデバイスを特定できます。
5.2. IPアドレス競合の特定
ネットワークで問題が発生している場合、netdiscoverを使用してIPアドレスの競合を特定できることがあります。同じIPアドレスに異なるMACアドレスが関連付けられている場合、それは潜在的な競合を示しています。
sudo netdiscover -r 192.168.1.0/24 | grep -i duplicate
6. まとめ
netdiscoverは、ネットワーク管理者やセキュリティ担当者にとって非常に便利なツールです。シンプルながらも、ローカルネットワーク上のデバイス探索に必要な機能を備えています。パッシブモードでの監視からアクティブなネットワークスキャンまで、さまざまなシナリオに対応できる柔軟性を持っています。
本記事で紹介した基本的な使い方と高度なテクニックを組み合わせることで、効率的なネットワーク監査やトラブルシューティングが可能になります。特に、セキュリティ意識の高い環境では、未承認デバイスの検出ツールとして定期的に活用することをお勧めします。
ネットワークの可視性を高め、潜在的な問題を早期に発見するためにも、ぜひnetdiscoverをツールボックスに加えてみてください。
7. 参考資料
※本記事の内容は、ネットワーク管理者や適切な権限を持つユーザーが自社のネットワーク内で実行することを前提としています。他者のネットワークに対して許可なくスキャンを実行することは、法律やポリシーに違反する可能性があるため、必ず適切な許可を得た上で実行してください。