nmapはポートスキャンに使われるツールです。しかし、オプションが多く、使いこなすのが大変です。そんなnmapですが、いくつかのユースケースを想定して使い方を5つ紹介していきます。

クイックにスキャンする

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にはポートスキャン以外の機能もあります。それがスクリプト機能です。この機能を使うと簡易的な脆弱性スキャンを行うことができます。脆弱性とはシステムのセキュリティ上の弱点のことです。攻撃者はこの脆弱性を攻撃してきますので、脆弱性は少ないほうがよいです。

簡易脆弱性スキャン1

nmap --script vuln <IP address>

簡易脆弱性スキャン2

nmap -sV --script vulners <IP address>

まとめ

ユースケースを想定して5つ紹介してきました。しかし、nmapはいろんな使い方ができます。色々なオプションで試してみることをおすすめします。