nmapはポートスキャンに使われるツールです。しかし、オプションが多く、使いこなすのが大変です。そんなnmapですが、いくつかのユースケースを想定して使い方を6つ紹介していきます。
クイックにスキャンする
nmapの基本的な使い方は、空いているポートを確認するというユースケースです。しかし、ポートは65535個もあり、フルスキャンを行うには時間がかかります。
そんなとき、まずはクイックに100ポートだけを確認したい、というときに使うのがこのコマンドです。
クイックスキャン
$ nmap -F <IP address>
100ポートだけでは見つからないという時、もう少しポート数を増やしてスキャンしてみたいですよね。そんなときはこのコマンド。
よく使われるポートを200個スキャン
$ nmap --top-ports 200 <IP address>
ファイアウォールを回避してスキャンしたい
ファイアウォール機能が存在する、というユースケースもあります。
そんなときはファイアウォールを回避して空きポートを知りたいですよね。
ファイアウォールがONでの通常のスキャン結果
$ nmap 192.168.254.102
Starting Nmap 7.92 ( https://nmap.org ) at 2023-03-28 17:41 PST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.09 seconds
ファイアウォール回避して空きポートを確認
$ sudo nmap -f 192.168.254.102
Password:
Warning: Packet fragmentation selected on a host other than Linux, OpenBSD, FreeBSD, or NetBSD. This may or may not work.
Starting Nmap 7.92 ( https://nmap.org ) at 2023-03-28 17:41 PST
Stats: 0:02:29 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 74.00% done; ETC: 17:45 (0:00:53 remaining)
Nmap scan report for 192.168.254.102 (192.168.254.102)
Host is up (0.00019s latency).
Not shown: 999 filtered tcp ports (no-response)
PORT STATE SERVICE
8100/tcp open xprint-server
Nmap done: 1 IP address (1 host up) scanned in 150.91 seconds
バージョンを知りたい
ポート番号だけではなく、使われているプログラム名やバージョンも知りたいというユースケースもあります。そんなときはこのコマンドです。
バージョン
$ nmap -sV <IP address>
全ポートをスキャンしたい
クイックにスキャンしても空きポートが見つからないとき。そんなときは全ポート確認するしかありません。そんなときはこのコマンドです。
フルスキャン
$ nmap -T4 -p- <IP address>
脆弱性を確認する
nmapにはポートスキャン以外の機能もあります。それがスクリプト機能です。この機能を使うと簡易的な脆弱性スキャンを行うことができます。脆弱性とはシステムのセキュリティ上の弱点のことです。攻撃者はこの脆弱性を攻撃してきますので、脆弱性は少ないほうがよいです。
簡易脆弱性スキャン
$ nmap --script vuln <IP address>
簡易脆弱性スキャン2
$ nmap -sV --script vulners <IP address>