Windows/Linux

nmapの基本的な使い方

当記事では、スキャンツールの有名どころであるnmapの使い方やオプションについて紹介します。

今回使用する環境とインストール方法は以下の通りです。

使用環境 RaspberryPi Debian 11.9

はじめにnmapのインストールを行います。

インストール方法

バージョン情報

はじめに

Nmap(Network Mapper)とは、ネットワークの探索及びセキュリティ監査に使用されるオープンソースのツールです。
大規模ネットワークから単一のホストまで幅広く使用することが可能です。
Nmapは生のIPパケットを用いて対象のネットワーク上でどのようなホストが利用可能なのか、そのホストが提供しているサービスやOS、どのようなパケットフィルタリングやFWが使用されているかなど、様々な情報を把握することが可能なツールです。

※本ツールは自身の管理外のネットワークやホスト等に使用すると、攻撃行為と判断される場合があります。不正アクセス禁止法に抵触する恐れもありますので、検証環境や使用が許可されているネットワークの範囲内などで検証してください。
公式リファレンスガイドより抜粋

典型的なNmapスキャンの使用方法の例として、スキャンする対象のOSとそのバージョンの検出を行う-A、と処理を高速に実行する-T4という引数、スキャン対象となるホスト名を指定しスキャンを行います。

スキャンの結果は以下の通りです。

例:

nmap -A -T4 scanme.nmap.org

上記の結果では、scanme.nmap.orgに対しスキャンを行い、その結果が返されています。
Scanme.nmap.orgの名前解決を行い、45.33.32.156というIPアドレスを特定します。
そのIPアドレスに対して1000個のポートに対し、TCPポートスキャンし、確認できた8つのサービスポートのスキャン結果を返しています。

また、ホストのOSを判別し、Tracerouteで宛先ホストまでの経路まで示してくれます。

その他にも色々な使い方ができる有用なツールですので基本的な使用方法についてご紹介させていただければと存じます。

 

Nmapの基本的な使い方

nmap [スキャンタイプ] [オプション] {ターゲット指定}

例:

nmap scanme.nmap.org(若しくはIPアドレス)

nmap 192.168.1.0/24

nmap 192.168.1.1-254

ヘルプの表示方法

nmap -h

ヘルプには使用方法やその他様々なオプションの概要が載っていますので、一読するとどういったことができるのかよりイメージしやすいかと思います。

頻出のオプション

ホストの検出

-sL(リストスキャン):ターゲットの全IPに対してDNS逆引き解決を行う。

-sn(Pingスキャン):Pingスキャンのみを行い、応答のあるホスト一覧を表示する。

-Pn(Pingなしスキャン):DNSの逆引きとポートスキャンを実行する。

-n(DNSの名前解決を行わない):DNSの解決を行わない為スキャン時間を短縮できる。

-traceroute(tracerouteを実行):スキャンしたホストにtracerouteを実行する。

スキャン技術

-sS(TCP SYNスキャン):TCPのSYNパケットでポートスキャンを実行する。ホストからSYN/ACKの応答があった場合、RSTパケットを返してコネクションを終了させる。

-sT(TCP接続スキャン):TCPのSYNパケットでポートスキャンを実行する。RSTパケットを返さないためTCPコネクションが確立される。

-sU(UDPスキャン):空のUDPヘッダーを使用してUDPスキャンを実行する。対象ポートの応答でポートの状態を分類する。

ポート指定とスキャン順序

-p <ポートの指定>(指定ポートのみスキャン実行):指定したポートのみスキャンを実行する。

--exclude-ports<ポート範囲>(指定したポートをスキャンから除外する):-pと同様に指定してポートスキャンの除外範囲を決定します。

-F(高速スキャン):スキャン数を通常1000ポートスキャンするのに対し、100ポートに減らして高速化している。

サービス/バージョン検出

-sV(バージョン検出):ポートをスキャン実行後、オープンポートのバージョン検出を行います。
※デフォルトではポート9100番はバージョン検出を行いません。一部のプリンタではこのポートで受信したものを出力することがあるため

OS検出

-O(OS検出を有効にする):OSの検出を有効にする。

NSEスクリプトについて

NmapのスクリプトはLuaプログラム言語で書かれており、/usr/share/nmap/scripts に保存されています。

注意:使用するスクリプトによっては対象ホストに悪影響を及ぼす可能性があるため注意してください。

NSEスクリプトの使い方

nmap --script <filename>|<category>|<directory>/|<expression>

スクリプトはコンマ区切りリストを使用して複数のスクリプトも使用可能です。

スクリプト例:

nmap --script http-headers scanme.nmap.org

HTTPのヘッダー情報が表示されています。

スキャンタイミング設定

-T(0-5):T0からT5まであり、T3がデフォルト速度で数値が上がるほどスキャン速度が上昇します。T0及びT1はIDSの回避用とリファレンスに記載されています。

ローカル環境のホストをT2でスキャンした際にかかった時間

同ホストをT5でスキャンした際にかかった時間

出力方法

Nmapでは、デフォルトでnmapを実行中のターミナルに結果が出力される他、オプションを使用することで、5つのフォーマットで出力することができます。

 

-oN<filespec>(通常の出力形式):テキストファイルで結果が出力される。

 

-oX<filespec>(XML形式):XMLファイル形式で結果が出力される。

-oS<filespec>(ScRipT KIdd|3 oUTpuT形式):指定した名前でleet表記へ変換されて結果が出力される。
下記のように一部文字が数字や記号に置き換わります。

-oG<filespec>(grep可能な形式)指定した名前でGrep可能なテキスト形式で結果が出力される。

-oA<filespec>(全ての形式で出力)-oN,-oX,-oGのフォーマットでファイルを3つ出力する。

その他

-6(IPv6):IPv6によるスキャンを有効にする。

-A(アグレッシブスキャン):-O,-sV,-sC,--tracerouteを使用します。冒頭部分で使用したオプションです。

まとめ

Nmapは、ネットワークやホストの状態を把握するためのツールとして様々な使用方法があります。
自分の管理するネットワークやホストがどのポートがオープンになっているのか把握することやNSEスクリプトを使用して脆弱性を検出することも可能です。

定期的にスキャンを実施し、適切な対策を行うことが重要だと思います。

また、今回紹介した以上に様々な使用方法があります。その中には有用なオプションやスクリプトもたくさんある反面、危険性があるスクリプトなども含まれています。
繰り返しになりますが、外部のネットワークに対してスキャン行為を行うことは不正アクセス禁止法等に抵触する恐れもありますので、検証を行う際は、自身で検証環境などを用意して試してください。

 

記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。

当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。

[FortiGate]Webフィルタの設定方法と確認方法について前のページ

自社WebサーバにAWS WAFを適用しました(1) ~構成編~次のページ

ピックアップ記事

  1. Zabbixヒストリデータのレポート生成について
  2. IoT機器「Raspberry pi」とLogStare Collectorで温…
  3. 自社製品をAMIにしてAWSマーケットプレイスへ出品
  4. ログフォワーダー「okurun.jar」について

関連記事

  1. SysmonForLinuxをUbuntuとAlmaLinuxに入れてログ取得

    Windows/Linux

    SysmonForLinuxをUbuntuとAlmaLinuxに入れてログ取ってみた

    今回はSysmon(プロセス作成、ネットワーク作成、ファイル操作等のW…

  2. Windows/Linux

    Windows Server 2016 (2019,2012) / Windows 10,11にて,…

    当記事では、LogStare Collector にて、Windows…

  3. Windows/Linux

    vi/vimの使い方と基本コマンドについて

    当記事では、vi及びvimの使い方と基本コマンドについて紹介します。…

  4. Windows/Linux

    SSH接続切断時にプログラムが停止する理由と対処法

    処理に時間のかかるプログラムをSSHから実行していたのですが、別の作業…

  5. Windows/Linux

    CloudWatch Logs収集に必要な権限について

    当記事では、CloudWatch Logs収集に必要な権限について記載…

月額200円でM356の監査ログの運用レベルUP LogStare M365

AWSのログ分析・モニタリングに 次世代のマネージド・セキュリティ・プラットフォーム LogStare

  1. ログ分析・監視テクニック

    nProbeであらゆる通信をログに記録し可視化する
  2. AWS/Azure

    AWSマーケットプレイス上から無償版のLogStare Collectorを試す…
  3. NW機器

    Nutanix Prism ElementにおけるSNMP監視/REST API…
  4. NW機器

    SonicWall UTMにSyslog送信設定を追加する方法について
  5. デフォルト画像イメージ

    FortiGate

    FortiGateのSD-WAN設定について
PAGE TOP