Nmapとは
Nmapとは、簡単に言うと、コンピューターのセキュリティの脆弱性を確認できるようにしてくれる便利なものです
Nmap 使用者は、現在使用中の PC のオペレーティングシステム情報、ポートリスト、プログラムのバージョンなど、固有の情報をスキャンしたものを見ることができます。それにより、自身の PC のセキュリティの 脆弱性を把握することもでき、また、他の使用者の PC をサイバー攻撃する目的で固有の情報を確認することも可能です。
ここで、誰かが PC でセキュリティに脆弱な Python 2.x バージョンを使用していると仮定してみましょう。
この時、サイバー攻撃者は Nmap を使い、上記の人が PC で Python 2.x バージョンを使用していると確認することができます。そして、この脆弱性を中心に攻撃を試みると、重要な個人情報やビジネスロジックにダメージを与えることができます。
したがって、 Nmap ユーティリティプログラムは外部からの攻撃から自身の PC を守る為の予防策としても使用でき、反対に特定の PC を攻撃する為に使用することもできます。
試験環境
まず、Nmap を実際に試してみる前に、インストール方法を先に述べたいと思います。
Nmap は Windows、Linux などのプラットホームを対象に提供されています。
この記事では、下記の試験環境で Nmap ソースコードをビルドし、インストールをしてテストを進めて行きたいと思います。
必ずしも 16.04 である必要はありませんが、16.04 以下のバージョンでエラーが発生する可能性があるので、各自 Linux環境を環境してください。
Linux Ubuntu 16.04 LTS x64
$ uname -a
Linux aav-cn-vmm 4.15.0-106-generic #107~16.04.1 Ubuntu SMP Thu Jun 4 15:40:05 U TC 2020 x86_64 x86_64 x86_64 GNU/Linux
ソースコードのダウンロード
下記の命令を実行し、ディレクトリを生成させ、その経路に nmap 6.47 バージョンのソースコードをダウンロードします。
その後、ソースコードをビルドし、Linuxの環境に Nmap バイナリーをインストールします。
中間の "./configure" 命令は現在の PC環境に合わせて Nmap をビルドできるように、環境設定ファイルを生成します。その後、"make" 命令を遂行し、この環境設定ファイルをロードして使用します。
最後に、"make install" 命令を遂行する時には、必ず管理者(root)権限で遂行します。
ビルド環境に変わったら、必ず環境設定ファイルをもう一度生成させないといけません。
$ cd ~
$ mkdir nmap;cd nmap
$ wget http://nmap.org/dist/nmap-6.47.tgz
$ tar -xvf nmap-6.47.tgz
$ cd nmap-6.47
$ ./configure
$ make
$ sudo make install
下の画像は環境設定および、ビルド過程の画像です。
Nmapを活用した例題
Nmapインストールが完了したら、 スキャンの例題をいくつか挙げていきたいと思います。
[Ping 情報確認]
[TCP ポート確認]
[UDP ポート確認]
[OS 情報確認]
Nmap オプションとしては –sPがあります。
このオプションは Ping Scanningの略字で、対象 PCに Ping が送られて応答が受信されるのかを使用確認する命令です。
まず、 Nmap がインストールされた PCと同じローカル環境にある、IPアドレス "172.16.0.1" の PCの電源がついていたり、同じローカル環境にあるのかを確認する為には下記と同じ命令を遂行します。
[単一対象に対するPing 情報確認]
$ sudo nmap -sP 172.16.0.1
次に、単一対象ではない同じサブネットマスク領域のローカル PCに対する状態を照会する為には、下記と同じような命令を遂行します。
[単一ネットマスク領域のローカルPC達に 対する Ping 情報確認]
$ sudo nmap -sP 172.16.0.1/24
次は、対象の PCにどんな TCPポート達が開かれているのか確認をする命令です。
-sTオプションを使用します。
Tは Transport(TCP)の略字を使用します。
[単一対象の現在開かれているTCP ポート照会]
$ sudo nmap -sT 172.16.0.1
[単一ネットマスク領域のローカルPC達に 対する TCP ポート照会]
$ sudo nmap -sT 172.16.0.1/24
[単一対象の現在開かれているUDP ポート照会]
$ sudo nmap -sU 172.16.0.1
次は対象の OS情報を確認する方法です。
対象の PCがどんな運営体制を使用しているのか、どんなバージョンなのかなどの詳しい内容を確認できます。このような情報を通して脆弱性の為にサイバー攻撃の対象になる可能性があります。
[単一対象のOS 情報照会]
$ sudo nmap -O 172.16.0.1
結論
Nmapは脆弱性の検査にも最高もユーティリティですが、反対に最高のサイバー攻撃のユーティリティになる可能性もあります。実際にサイバー攻撃をするものではないですが、脆弱性を探し出して攻撃を遂行できるように手伝ってくれます。
次の記事ではより詳しい Nmapオプションについて述べて行きたいと思います。