netdiscoverは同一LAN内のPC・ルータ・その他ネットワークに接続されたデバイスを調査するコマンドです。
kali linuxではツールの1つとして分類されています。
netdiscoverの起動
kali ー 01-Information Gathering ー netdiscoverで起動
起動画面:ヘルプが表示されています。
netdiscoverの実行
コマンドには ” sudo ” が必要です。
sudo netdiscover -r 192.168.xx.0/24
” xx ” には自分のLANに固有の数値が入ります。(=自分のIPアドレスを調べて、3番目の数字がそれです。)
4番目の数字 ” 0/24 ” は、4番目が0番から255番までの全部を調べるという意味。
下の例では ” 192/168.11.0/24 ” で実行しています。
8つのホストが検出されました。
なおこの中には自分自身は含まれていません(ちなみに自分は ” 192.168.11.21 ” です。)
LAN内のデバイスにARP問い合わせを行い、帰ってきた返答のMACアドレスから、機器のベンダーを推定しています。
ARP(Adress Resolution Protocol)問い合わせ:ご近所さん(LAN内)に放送をかけて、この住所(IPアドレス)の方はいらっしゃいますか? もしいらっしゃったら名前(MACアドレス)を教えてください。と呼びかける行為。
このARPを0番地(192.168.11.0)から255番地(192.168.11.255)まで順に行って、返答があった名前をまとめたのが上記の結果です。
ARPはIPアドレスとMACアドレスを対応させます。
LAN内で新たに機器を立ち上げると
同一LAN内で新たに機器を立ち上げて再度 ” sudo netdiscover -r 192.168.11.0/24 ” と実行した結果。
呼びかけに応答した機器が増えているせいで、検出された機器は10に増加しています。
arp -a コマンド
似たようなコマンドに ” arp ” コマンドがあります。
これは自分の持っている、「ご近所さんの番地と名前の対照表(=arpテーブル)」を表示する機能です。
arp -a
この対照表は普段はOSが管理しています。
arpコマンドとnetdiscoverコマンドの違い
番地(IPアドレス)は時々変更がありえますので、或いは新しい機器が随時LAN内に参加してくることがあり得ますので、arpテーブルの情報は最新とは言えません。
またarpコマンドではベンダー情報は表示されません。
netdiscoverの方が、arpコマンドに比べて最新かつ詳細ということになります。
nmapとの違い
参考までに ” sudo nmap -O ” コマンドでもLAN内ホストのOS調査ができます。
sudo nmap -O 192.168.11.0/24
こちらはLAN内の全てのホストにフレーム(パケット)を送りつけてその反応から様々な調査を行います。調査結果は一番詳しく出ますが一つ一つのIPアドレスにつき、多くのポートを調べますので何しろ時間がかかります。
上記の ” netdiscover ” や ” arp -a ” では1秒で結果が出ましたが、 ” nmap -O ” では40分もかかりました。
nmapの結果を早める方法
nmapのオプションで、調べる対象や項目を削減してスキャン速度を上げる手があります。
例えば、オプション ” -sP ” では20秒で終わります。但しOSの調査は出来ず、ホストの存在診断のみの結果となります。
nampのオプション ” -sP ” では、LAN内の各ホストにpingを打って、その応答を調べています。
まとめ
同一LAN内にどんな機器がつながっているのか、そしてそのIPアドレスを調べたい場合。
コマンド/ツール | netdiscover | arp | nmap |
情報の鮮度 | 新鮮 | やや古い | 新鮮 |
ホストの情報 | NICベンダー名 | 少ない | 多い |
速さ | 速い | 速い | 遅い |
コメント