Windows/Linux

nmapの基本的な使い方

この記事は投稿日から1年以上経過しています。

当記事では、スキャンツールの有名どころである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スクリプトを使用して脆弱性を検出することも可能です。

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

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

 

若手エンジニア志望者を募集!支度金あり

LogStare Collector 無償版

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

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

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

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

ピックアップ記事

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

関連記事

  1. Windows/Linux

    WindowsServerにaws cliバージョン2をインストールする方法について

    当記事では、WindowsServerにaws cliバージョン2をイ…

  2. Windows/Linux

    Linux/Windows pingコマンドの使い方とオプションについて

    当記事では、Linux/Windowsのpingコマンドの使い方とオプ…

  3. Windows/Linux

    LSCサーバのWindowsファイアウォールにてWMI、Syslog、SNMP、PING通信を許可す…

    当記事では、LSCをインストールしたWindowsOS上の Windo…

  4. Windows/Linux

    ARPって何だ・・?新入社員が調べてみた(Linux版)

    今回は新入社員研修の一環として、ナレッジステアを書こうという事で作成し…

  5. Windows/Linux

    テキストマッチングを利用したAudit.logの監視について

    当記事では、LogStare Collector(以下、LSCと記載)…

  6. Windows/Linux

    Windows Server (2019,2016, 2012 R2)にSNMP (v1, v2c)…

    当記事では、Windows Server にSNMP の設定を投入する…

若手エンジニア志望者を募集!
LogStare Collector 無償版
クラウド活用の「困った」「焦った」事例
月額200円でM356の監査ログの運用レベルUP LogStare M365
AWSのログ分析・モニタリングに 次世代のマネージド・セキュリティ・プラットフォーム LogStare

  1. 実践記事

    DNSキャッシュポイズニングやってみた
  2. NW機器

    SonicWall UTMにSyslog送信設定を追加する方法について
  3. ログ分析・監視テクニック

    nProbeであらゆる通信をログに記録し可視化する
  4. NW機器

    Nutanix Prism ElementにおけるSNMP監視/REST API…
  5. SNMPを触ってみた

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

    SNMPとは?新入社員が生まれてはじめて触ってみた!
PAGE TOP