 
 Nmapは、セキュリティ監査と侵入テストのための強力なネットワークスキャンツールです。これは、ネットワーク管理者がネットワーク接続の問題とポートスキャンのトラブルシューティングに使用する重要なツールの1つです。
Nmapは、Macアドレス、OSタイプ、サービスバージョンなども検出できます。
 この記事では、 nmapの使用方法の基本について説明します。 さまざまなネットワークタスクを実行するコマンド。
Nmapのインストール#
Nmapは、すべての主要なオペレーティングシステムにインストールできるマルチプラットフォームプログラムです。当初はLinux専用ツールとしてリリースされ、その後BSD、Windows、macOSなどの他のシステムに移植されました。
コマンドラインよりもGUIを使用する場合、NmapにはZenmapと呼ばれるグラフィカルユーザーインターフェイスもあります。
公式のバイナリパッケージは、Nmapダウンロードページからダウンロードできます。
インストール手順は簡単で、オペレーティングシステムによって異なります。
UbuntuおよびDebianへのNmapのインストール#
Nmapは、デフォルトのUbuntuおよびDebianリポジトリから利用できます。インストールするには、次のコマンドを実行します:
sudo apt updatesudo apt install nmap
CentOSおよびFedoraへのNmapのインストール#
CentOSおよびその他のRedHat派生ディストリビューションで実行:
sudo dnf install nmapmacOSへのNmapのインストール#
macOSユーザーは、NmapサイトまたはHomebrewから「.dmg」インストールパッケージをダウンロードすることでNmapをインストールできます。
brew install nmapWindowsへのNmapのインストール#
NmapのWindowsバージョンにはいくつかの制限があり、一般的にUNIXバージョンよりも少し遅くなります。
WindowsにNmapをインストールする最も簡単なオプションは、自己インストールexeファイルをダウンロードして実行することです。
WindowsでNmapを実行するには、コマンドラインから、またはZenmapプログラムを起動します。 WindowsでNmapを使用する方法の詳細については、インストール後の使用手順を確認してください。
Nmapの使用#
Nmapは通常、ネットワークセキュリティの監査、ネットワークマッピング、開いているポートの特定、オンラインデバイスの検索に使用されます。
  nmapの簡略化された構文 コマンドは次のとおりです:
nmap [Options] [Target...]
Nmapを使用する最も基本的な例は、オプションを指定せずに単一のターゲットを標準ユーザーとしてスキャンすることです。
nmap scanme.nmap.org
 生のパケット権限を持たない非rootユーザーとして呼び出された場合、 nmap  TCP接続スキャンを実行します。 ( -sT  )非特権モードではデフォルトでオンになっています。
スキャンに関する基本情報や、開いているTCPポートとフィルタリングされたTCPポートのリストなど、出力は次のようになります。
Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-16 20:19 CET
Nmap scan report for cast.lan (192.168.10.121)
Host is up (0.048s latency).
Not shown: 981 closed ports
PORT     STATE    SERVICE
21/tcp   open     ftp
22/tcp   open     ssh
25/tcp   open     smtp
53/tcp   open     domain
80/tcp   open     http
110/tcp  open     pop3
143/tcp  open     imap
443/tcp  open     https
587/tcp  open     submission
993/tcp  open     imaps
995/tcp  open     pop3s
1025/tcp open     NFS-or-IIS
1080/tcp open     socks
8080/tcp open     http-proxy
8081/tcp open     blackice-icecap
Nmap done: 1 IP address (1 host up) scanned in 1.78 seconds
 最も一般的なスキャンオプションは、TCP SYNスキャン( -sS  )これは接続オプションよりも高速で、準拠しているすべてのTCPスタックに対して機能します。
 -sS  nmap の場合、デフォルトでオンになっています 管理者権限を持つユーザーとして呼び出されます:
sudo nmap 192.168.10.121
 より詳細な出力については、 -vを使用して詳細度を上げるを使用してください または-vv :
sudo nmap -vv 192.168.10.121
 UDPスキャンを実行するには、( -sU を指定してコマンドを呼び出します。 )rootユーザーとしてのオプション:
sudo nmap -sU 192.168.10.121ポートスキャン方法の完全なリストについては、Nmapのドキュメントページにアクセスしてください。
 NmapはIPv6アドレスもサポートしています。 IPv6ホストを指定するには、 -6を使用します オプション:
sudo nmap -6 fd12:3456:789a:1::1ターゲットホストの指定#
Nmapは、オプションではないすべての引数をターゲットホストとして扱います。
引数が一重ダッシュまたは二重ダッシュ(-)で始まる場合、引数はオプションと見なされます 、-コード> )。 
 最も簡単なオプションは、1つ以上のターゲットアドレスまたはドメイン名を渡すことです。
 nmap 192.168.10.121 host.to.scan
 
 CIDR表記を使用して、ネットワーク範囲を指定できます。
 nmap 192.168.10.0/24
 
 オクテット範囲を指定するには、ダッシュ文字を使用します。たとえば、 192.168.10.1をスキャンするには 、 192.168.11.1  、および 192.168.12.1  :
 nmap 192.168.10-12.1
 
 ターゲットを指定するために使用できるもう1つの文字は、コンマです。次のコマンドは、上記と同じホストを対象としています。
 nmap 192.168.10,11,12.1
 
 すべてのフォームを組み合わせることができます:
 nmap 10.8-10.10,11,12.0/28  192.168.1-2.100,101
 
 スキャンする前に正しいホストを指定したことを確認するには、リストスキャンオプション( -sL )を使用します )、スキャンを実行せずにターゲットのみを一覧表示します:
 nmap -sL 10.8-10.10,11,12.0/28  192.168.1-2.100,101
 
 指定した範囲に含まれるターゲットを除外する場合は、-excludeを使用します オプション:
 nmap 10.8-10.10,11,12.0/28 --exclude 10.10.12.12
 ポートの指定とスキャン#
 
 デフォルトでは、Nmapは最も人気のある1000個のポートのクイックスキャンを実行します。これらのポートは、最初の1000個の連続するポートではありませんが、1〜65389の範囲で最も一般的に使用される1000個のポートです。
 
 1〜65535のすべてのポートをスキャンするには、-p-を使用します オプション:
 nmap -p- 192.168.10.121
 
 各ポートは、次のいずれかの状態になります。
  - open-ポートで実行されているプログラムが要求に応答します。
- クローズ-ポートでプログラムが実行されておらず、ホストがリクエストに応答します。
- フィルタリング-ホストはリクエストに応答しません。
-  
 たとえば、ポート443のみをスキャンするには、次のコマンドを使用します。
 nmap -p 443 192.168.10.121
 
 複数のポートを指定するには、ターゲットポートをコンマで区切ります:
 nmap -p 80,443 192.168.10.121
 
 ポート範囲はダッシュ記号で指定できます。たとえば、1〜1024の範囲のすべてのUDPポートをスキャンするには、次のコマンドを実行します。
 sudo nmap -sU -p 1-1024 192.168.10.121
 
 すべて組み合わせ:
 nmap -p 1-1024,8080,9000 192.168.10.121
 
 ポートは、ポート名を使用して指定することもできます。たとえば、ポート22、sshをスキャンするには、次を使用できます。
 nmap -p ssh 192.168.10.121
  pingスキャン#
 
 pingスキャンまたはホスト検出を実行するには、 nmapを呼び出します。  -snを使用したコマンド オプション:
 sudo nmap -sn 192.168.10.0/24
 
  -sn  オプションは、Nmapにオンラインホストのみを検出し、ポートスキャンを実行しないように指示します。これは、指定したホストのどれが稼働しているかをすばやく判断する場合に役立ちます。
  DNS名解決の無効化#
 
 Nmapのデフォルトの動作は、検出されたホストごとに逆引きDNS解決を実行することです。これにより、スキャン時間が長くなります。
 
 大規模なネットワークをスキャンする場合は、逆引きDNS解決を無効にして、スキャンを高速化することをお勧めします。これを行うには、 -nを使用してコマンドを呼び出します。 オプション:
 sudo nmap -n 192.168.10.0/16
  OS、サービス、バージョンの検出#
 
 Nmapは、TCP/IPスタックフィンガープリントを使用してリモートホストオペレーティングシステムを検出できます。 OS検出を実行するには、 -Oを指定してコマンドを呼び出します。 オプション:
 sudo nmap -O scanme.nmap.org
 
 NmapがホストOSを検出できる場合、次のように出力されます。
 ...
Device type: general purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5
OS details: Linux 5.0 - 5.4
Network Distance: 18 hops
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.47 seconds
 
 通常、システムサービスは、よく知られていて予約されている標準ポートでリッスンします。たとえば、SSHサービスに対応するポート22が開いている場合、SSHサーバーがホスト上で実行されていると想定します。ただし、ユーザーは必要なポートでサービスを実行できるため、完全に確信することはできません。
 
 サービスとバージョンの検出により、Nmapはポートでリッスンしているプログラムとプログラムのバージョンを表示します。
 
 サービスとバージョンをスキャンするには、 -sVを使用します オプション:
 sudo nmap -sV scanme.nmap.org
 ...
PORT      STATE    SERVICE      VERSION
19/tcp    filtered chargen
22/tcp    open     ssh          OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
80/tcp    open     http         Apache httpd 2.4.7 ((Ubuntu))
135/tcp   filtered msrpc
139/tcp   filtered netbios-ssn
445/tcp   filtered microsoft-ds
9929/tcp  open     nping-echo   Nping echo
31337/tcp open     tcpwrapped
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
...
 
  -A を使用して、OS、バージョンをスキャンし、tracerouteを1つのコマンドで実行することもできます。 オプション:
 sudo nmap -A 192.168.10.121
  Nmap出力#
 
 デフォルトでは、Nmapは情報を標準出力(stdout)に出力します。
 
 大規模なネットワークをスキャンする場合、または後で使用するために情報が必要な場合は、出力をファイルに保存できます。
 
 Nmapはいくつかの出力タイプを提供します。出力を通常の形式で保存するには、 -oNを使用します オプションの後にファイル名を続ける:
 sudo nmap -sU -p 1-1024 192.168.10.121 -oN output.txt
 
 最も一般的なオプションは、出力をXML形式で保存することです。これを行うには、 -oXを使用します オプション:
 sudo nmap -sU -p 1-1024 192.168.10.121 -oX output.xml
 
 もう1つの便利な形式は、grepable出力です。これは、 grepなどの標準のUnixツールで解析できます。 、 awk  およびcut 。 grepable出力は、 -oGで指定されます オプション:
 sudo nmap -sU -p 1-1024 192.168.10.121 -oG output
  Nmapスクリプトエンジン#
 
 Nmapの最も強力な機能の1つは、そのスクリプトエンジンです。 Nmapには何百ものスクリプトが付属しており、Lua言語で独自のスクリプトを作成することもできます。
 
 スクリップを使用して、マルウェアやバックドアを検出したり、ブルートフォース攻撃を実行したりできます。
 
 たとえば、特定のホストが危険にさらされているかどうかを確認するには、次を使用できます。
 nmap -sV --script http-malware-host scanme.nmap.org
 結論#
 
 Nmapは、主にネットワーク管理者がホストとスキャンポートを検出するために使用するオープンソースツールです。
 
 一部の国では、許可なくネットワークをスキャンすることは違法であることに注意してください。
 
        
        
        
               
        
        
    
    
        
            Linux