Kali LinuxにおけるNmap(ネットワークセキュリティスキャナー)の実用ガイド
第二のKali Linuxの記事では、‘nmap’として知られるネットワークツールについて説明します。nmapはKali専用のツールではありませんが、Kaliで最も便利なネットワークマッピングツールの一つです。
- 初心者のためのKali Linuxインストールガイド - パート1
Nmap、つまりネットワークマッパーはゴードン・ライオンによって維持されており(ライオン氏の詳細についてはここを参照してください: http://insecure.org/fyodor/)、世界中の多くのセキュリティ専門家によって使用されています。
このユーティリティはLinuxとWindowsの両方で動作し、コマンドライン(CLI)で操作されます。しかし、コマンドラインにちょっと不安がある方のために、nmap用の素晴らしいグラフィカルフロントエンドであるzenmapがあります。
nmapのCLIバージョンを学ぶことを強く推奨します。これはzenmapのグラフィカル版と比べてはるかに柔軟性を提供します。
nmapはどのような目的に役立ちますか?素晴らしい質問です。Nmapは、管理者がネットワーク上のシステムについて迅速かつ徹底的に学ぶことを可能にします。したがって、その名前はネットワークマッパー(Network MAPper)またはnmapです。
Nmapは、ライブホストやそのホストに関連するサービスを迅速に特定する能力を持っています。Nmapの機能は、Nmapスクリプトエンジン(NSEと略される)を使うことでさらに拡張できます。
このスクリプトエンジンは、管理者が新たに発見された脆弱性がネットワーク上に存在するかどうかを判断するために使用できるスクリプトを迅速に作成することを可能にします。多くのスクリプトが開発され、ほとんどのnmapインストールに含まれています。
注意の言葉 - nmapは善意と悪意の両方の人々によって一般的に使用されています。書面または法的合意の中で明示的に許可が与えられていないシステムに対してnmapを使用していないことを確認するために、極めて注意が必要です。nmapツールを使用する際は注意を払ってください。
システム要件
- Kali Linux(nmapは他のオペレーティングシステムでも利用可能で、この記事のガイドに類似した機能を持っています)。
別のコンピュータと、そのコンピュータを nmap でスキャンするための許可 - これは通常、VirtualBox と仮想マシンの作成などのソフトウェアを使用して簡単に行うことができます。
- 良い練習用マシンについては、Metasploitable 2について読んでください。
- MS2 Metasploitable2のダウンロード
Kali Linux - Nmapを使用する
nmapを使い始める最初のステップは、Kali Linuxマシンにログインし、必要に応じてグラフィカルセッションを開始することです(このシリーズの最初の記事では、XFCEデスクトップ環境でKali Linuxをインストールしました)。
インストール中、インストーラーはユーザーに「root」ユーザーパスワードを要求しており、これはログインするために必要です。Kali Linuxマシンにログインしたら、コマンド「startx」を使用してXFCEデスクトップ環境を起動できます。nmapは実行するのにデスクトップ環境を必要としないことは注目に値します。
# startx
XFCEにログインすると、ターミナルウィンドウを開く必要があります。デスクトップの背景をクリックすると、メニューが表示されます。ターミナルに移動するには、次のようにします:アプリケーション → システム → 'Xterm' または 'UXterm' または 'Root Terminal'.
著者は「Terminator」と呼ばれるシェルプログラムのファンですが、これがKali Linuxのデフォルトインストールに表示されないことがあります。リストされているすべてのシェルプログラムは、nmapの目的のために機能します。
ターミナルが起動すると、nmapの楽しみが始まります。この特定のチュートリアルでは、KaliマシンとMetasploitableマシンを持つプライベートネットワークが作成されました。
これにより、プライベートネットワークの範囲が安全なマシンにスキャンが留まることを保証し、脆弱なMetasploitableマシンが他の誰かによって侵害されるのを防ぐため、物事がより簡単かつ安全になりました。
ネットワーク上のライブホストを見つける方法は?
この例では、両方のマシンがプライベートな192.168.56.0 /24ネットワーク上にあります。KaliマシンのIPアドレスは192.168.56.101で、スキャン対象のMetasploitableマシンのIPアドレスは192.168.56.102です。
ただし、IPアドレスの情報が利用できなかったとしましょう。特定のネットワーク上で何が稼働しているかを確認するために、迅速なnmapスキャンが役立ちます。このスキャンは「シンプルリスト」スキャンとして知られており、したがって、-sL引数がnmapコマンドに渡されます。
# nmap -sL 192.168.56.0/24
残念ながら、この初期スキャンでは生きているホストが見つかりませんでした。時々、これは特定のオペレーティングシステムがポートスキャンのネットワークトラフィックを処理する方法に影響を与える要因となります。
私のネットワーク上のすべてのライブホストを見つけてピンを送る
心配しないでください。nmapには、これらのマシンを見つけるためのいくつかのトリックがあります。この次のトリックでは、nmapに192.168.56.0/24ネットワーク内のすべてのアドレスにpingを試みるよう指示します。
# nmap -sn 192.168.56.0/24
今回はnmapがスキャンのためのいくつかの有望なホストを返します!このコマンドでは、-snがnmapのデフォルトの動作であるホストへのポートスキャンを試みることを無効にし、単にnmapがホストにpingを送るだけになります。
ホスト上のオープンポートを見つける
特定のホストに対してnmapポートスキャンを試みて、何が出てくるか見てみましょう。
# nmap 192.168.56.1,100-102
わあ!今回はnmapが金鉱を見つけました。この特定のホストはかなりの数のオープンネットワークポートがあります。
これらのポートはすべて、この特定のマシン上で何らかのリスニングサービスが動作していることを示しています。以前のことを思い出すと、192.168.56.102 のIPアドレスはmetasploitableの脆弱なマシンに割り当てられているため、このホストに多くのオープンポートが存在します。
ほとんどのマシンでこれほど多くのポートが開いているのは非常に異常なことであり、このマシンをもう少し詳しく調査するのが賢明かもしれません。管理者はネットワーク上で物理マシンを特定し、ローカルでマシンを確認することもできますが、特にnmapがもっと早くそれを行うことができる場合、あまり楽しさはありません!
ホスト上のポートでリスニングしているサービスを見つける
次のスキャンはサービススキャンであり、特定のポートでどのサービスがリッスンしているかを確認するために使用されることが多いです。
Nmapはすべての開いているポートを調査し、各ポートで実行されているサービスからバナー情報を取得しようとします。
# nmap -sV 192.168.56.102
今回はnmapがこの特定のポートで実行されている可能性があるものについていくつかの提案を提供したことに注意してください(白いボックスで強調表示されています)。また、nmapはこのマシンで実行されているオペレーティングシステムやホスト名についても情報を特定しようとしました(成功しました!)。
この出力を見ていると、ネットワーク管理者にとっていくつかの懸念が生じるはずです。最初の行は、このマシンでVSftpdバージョン2.3.4が実行されていると主張しています!それは非常に古いバージョンのVSftpdです。
ExploitDBを調べたところ、2011年にこの特定のバージョンについて深刻な脆弱性が見つかりました (ExploitDB ID – 17491)。
ホスト上の匿名FTPログインを見つける
nmapを使ってこの特定のポートを詳しく観察し、どのようなことが判断できるか見てみましょう。
# nmap -sC 192.168.56.102 -p 21
このコマンドを使用して、nmapはホストのFTPポート(-p 21)でデフォルトスクリプト(-sC)を実行するように指示されました。問題があるかどうかは不明ですが、nmapはこの特定のサーバーで匿名FTPログインが許可されていることを発見しました。
ホストの脆弱性をチェックする
このことは、VSftpdに昔の脆弱性があるという以前の知識と組み合わせると、いくらかの懸念を引き起こすべきです。それでは、nmapにVSftpdの脆弱性をチェックしようとするスクリプトがあるか見てみましょう。
# locate .nse | grep ftp
nmapにはVSftpdバックドア問題に対してすでにNSEスクリプトが組み込まれていることに注意してください!このホストに対してこのスクリプトを実行してみて、何が起こるか見てみましょう。ただし、まずはスクリプトの使い方を知っておくことが重要かもしれません。
# nmap --script-help=ftp-vsftd-backdoor.nse
この説明を読むと、このスクリプトは、この特定のマシンが以前に特定されたExploitDBの問題に対して脆弱であるかどうかを確認するために使用できることが明らかです。
スクリプトを実行して、何が起こるか見てみましょう。
# nmap --script=ftp-vsftpd-backdoor.nse 192.168.56.102 -p 21
おお!Nmapのスクリプトがいくつかの危険なニュースを返しました。このマシンは、真剣な調査の良い候補である可能性が高いです。これは、このマシンが侵害されており、ひどいことに使われていることを意味するわけではありませんが、ネットワーク/セキュリティチームにいくつかの懸念をもたらすべきです。
Nmapは非常に選択的で非常に静かな能力を持っています。これまでのところ行われてきたことのほとんどは、nmapのネットワークトラフィックを適度に静かに保つことを試みていますが、この方法で個人的に所有しているネットワークをスキャンすることは非常に時間がかかる場合があります。
Nmapは、複数のコマンドの代わりに1つのコマンドで、非常に攻撃的なスキャンを行う能力があります。これにより、しばしば同じ情報の多くが得られます。攻撃的スキャンの出力を見てみましょう(注意してください - 攻撃的スキャンは侵入検知/防止システムを作動させる可能性があります!)。
# nmap -A 192.168.56.102
今回は、1つのコマンドで、nmapがこの特定のマシン上で動作しているオープンポート、サービス、設定に関する多くの情報を以前に返してきました。この情報の多くは、このマシンを保護する方法を決定するのに役立ち、ネットワーク上にどのソフトウェアが存在するかを評価するのにも使用できます。
これは、nmapがホストまたはネットワークセグメント上で見つけるために使用できる多くの便利な機能の短いリストに過ぎません。個々の所有するネットワーク上で管理された方法でnmapを引き続き実験することが強く推奨されます(他の組織をスキャンすることで練習しないでください!).
ゴードン・ライオン著のNmapネットワークスキャニングに関する公式ガイドが、Amazonで入手可能です。











