Engineering Note

プログラミングなどの技術的なメモ

Nmapによるネットワークスキャン

nmap

本記事では、有名なネットワークスキャンツールであるNmap(Network Mapper)によるWindows PCのスキャンを行います。

また、Windows標準のファイアウォール機能を有効にした場合と無効にした場合の違いについても確認してみます。

 

 

Nmapとは

Nmap(Network Mapper)とは、ネットワーク上で稼働しているホストをスキャンすることでネットワーク上の地図を作成するツールを言います。

具体的にはICMP、TCPUDPなどのパケットを送信し、それに対する応答を確かめることで、ホストが稼働しているか、またはどのようなポートが開いているか(サービスが稼働しているか)を調査します。

なお、Nmapは映画のマトリックスやダイハード4.0などでも登場するような有名なツールです。

Nmapのようなネットワークスキャナーでは、OSフィンガープリンティングといったOSごとの特徴を読み取り、標的ホストを特定していきます。

例えばpingなどで用いられるTTL(Time To Live)は、Windowsでは128、Unixでは255がデフォルト値になっています。

他にもTCPの初期ウインドウサイズ、初期シーケンス番号のサンプリング、フラグメント処理などもOSごとに特徴があります。

また、TCP/UDPの1~1024番はウェルノウンポート(Well-known ports)番号としており、これらポートの開閉の有無やサービスのバナー情報などから稼働しているバージョンなども特定していきます。

 

Nmapを使ってみる

それではNmapでWindows PCのスキャンを行ってみます。

今回はVM上のWindows7とWindows10を使い、ファイアウォール機能が有効な場合と無効な場合の違いを確認してみたいと思います。

なお、スキャンにはKali LinuxにインストールされているNmapを使用します。

 

Windows7のスキャン

以下コマンドでネットワークスキャンを行います。

 

 > nmap -sS -A <target IP>

 

上記オプションの詳細は以下になります。

  • -sS: TCP SYNスキャン(ステルススキャン)
  • -A  :  バナー情報から得た情報も出力

 

それでは結果を見てみます。

 

# ファイアウォール機能が有効の場合
Starting Nmap 7.70 ( https://nmap.org ) at 2019-03-11 00:00 JST Nmap scan report for 10.0.0.102 Host is up (0.0010s latency). Not shown: 999 filtered ports PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.7 (protocol 2.0) | ssh-hostkey: | (省略) MAC Address: xx:xx:xx:xx:xx:xx (Oracle VirtualBox virtual NIC) Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Device type: general purpose|phone|specialized Running (JUST GUESSING): Microsoft Windows Vista|Phone|2008|8.1|7 (93%) OS CPE: cpe:/o:microsoft:windows_vista::sp2 cpe:/o:microsoft:windows cpe:/o:microsoft:windows_server_2008:r2 cpe:/o:microsoft:windows_8.1 cpe:/o:microsoft:windows_7::-:professional cpe:/o:microsoft:windows_8 cpe:/o:microsoft:windows_7 Aggressive OS guesses: Microsoft Windows Vista SP2 (93%), Microsoft Windows Phone 7.5 or 8.0 (87%), Microsoft Windows Server 2008 R2 or Windows 8.1 (86%), Microsoft Windows 7 Professional or Windows 8 (86%), Microsoft Windows Vista SP0 or SP1, Windows Server 2008 SP1, or Windows 7 (86%), Microsoft Windows 8.1 Update 1 (85%), Microsoft Windows Embedded Standard 7 (85%), Microsoft Windows 7 or Windows Server 2008 R2 (85%), Microsoft Windows Server 2008 R2 (85%), Microsoft Windows Server 2008 R2 SP1 or Windows 8 (85%) No exact OS matches for host (test conditions non-ideal). Network Distance: 1 hop TRACEROUTE HOP RTT ADDRESS 1 1.02 ms 10.0.0.102 OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 14.89 seconds

 

ファイアウォール機能が有効の場合は、ホストが"Microsoft Windows Vista|Phone|2008|8.1|7"の何れかである可能性が93%とだけでほとんど詳細は分かりません。

次にファイアウォール機能を無効にした場合でスキャンをしてみます。

 

# ファイアウォール機能が無効の場合
Starting Nmap 7.70 ( https://nmap.org ) at 2019-03-11 00:00 JST
Nmap scan report for 10.0.0.102
Host is up (0.00090s latency).
Not shown: 991 closed ports
PORT      STATE SERVICE      VERSION
22/tcp    open  ssh          OpenSSH 6.7 (protocol 2.0)
| ssh-hostkey:
| (省略)
135/tcp   open  msrpc        Microsoft Windows RPC
139/tcp   open  netbios-ssn  Microsoft Windows netbios-ssn
445/tcp   open  microsoft-ds Windows 7 Enterprise 7601 Service Pack 1 microsoft-ds (workgroup: WORKGROUP)
49152/tcp open  msrpc        Microsoft Windows RPC
49153/tcp open  msrpc        Microsoft Windows RPC
49154/tcp open  msrpc        Microsoft Windows RPC
49156/tcp open  msrpc        Microsoft Windows RPC
49157/tcp open  msrpc        Microsoft Windows RPC
MAC Address: xx:xx:xx:xx:xx:xx (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Microsoft Windows 2008
OS CPE: cpe:/o:microsoft:windows_server_2008:r2
OS details: Microsoft Windows Server 2008 R2
Network Distance: 1 hop
Service Info: Host: IE8WIN7; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: mean: 2h40m01s, deviation: 4h37m08s, median: 0s
|_nbstat: NetBIOS name: IE8WIN7, NetBIOS user: <unknown>, NetBIOS MAC: xx:xx:xx:xx:xx:xx (Oracle VirtualBox virtual NIC)
| smb-os-discovery:
|   OS: Windows 7 Enterprise 7601 Service Pack 1 (Windows 7 Enterprise 6.1)
|   OS CPE: cpe:/o:microsoft:windows_7::sp1
|   Computer name: IE8WIN7
|   NetBIOS computer name: IE8WIN7\x00
|   Workgroup: WORKGROUP\x00
|_  System time: 2019-03-11T00:00:00-00:00
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-security-mode:
|   2.02:
|_    Message signing enabled but not required
| smb2-time:
|   date: 2019-03-11 00:00:00
|_  start_date: 2019-03-11 00:00:00

TRACEROUTE
HOP RTT     ADDRESS
1   0.90 ms 10.0.0.102

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 71.25 seconds

 

ファイアウォール機能を無効化した場合では、稼働中のサービス(smbなど)が表示され、対象のOS情報やビルド番号、またはホスト名なども確認できます。

 

Windows10のスキャン

次にWindows10のスキャンを行います。

なお、Windows8以降ではWindows Defenderが標準でプリインストールされています。

 

# ファイアウォール機能が有効の場合
Starting Nmap 7.70 ( https://nmap.org ) at 2019-03-11 00:00 JST
Nmap scan report for 10.0.0.103
Host is up (0.00062s latency).
All 1000 scanned ports on 10.0.0.103 are filtered
MAC Address: xx:xx:xx:xx:xx:xx (Oracle VirtualBox virtual NIC)
Too many fingerprints match this host to give specific OS details
Network Distance: 1 hop

TRACEROUTE
HOP RTT     ADDRESS
1   0.62 ms 10.0.0.103

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 29.49 seconds

 

Windows7の時と同様にほとんど情報は得られず、Windows OSかどうかもわかりません。

ファイアウォール機能を無効にした場合でスキャンをしてみます。

 

# ファイアウォール機能が無効の場合
Starting Nmap 7.70 ( https://nmap.org ) at 2019-03-11 00:00 JST
Nmap scan report for 10.0.0.103
Host is up (0.00089s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE       VERSION
135/tcp open  msrpc         Microsoft Windows RPC
139/tcp open  netbios-ssn   Microsoft Windows netbios-ssn
445/tcp open  microsoft-ds?
MAC Address: xx:xx:xx:xx:xx:xx (Oracle VirtualBox virtual NIC)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN
(省略) Network Distance: 1 hop Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows Host script results: |_clock-skew: mean: 4s, deviation: 0s, median: 4s |_nbstat: NetBIOS name: DESKTOP-E07R62B, NetBIOS user: , NetBIOS MAC: xx:xx:xx:xx:xx:xx (Oracle VirtualBox virtual NIC) | smb2-security-mode: | 2.02: |_ Message signing enabled but not required | smb2-time: | date: 2019-03-11 00:00:00 |_ start_date: N/A TRACEROUTE HOP RTT ADDRESS 1 0.89 ms 10.0.0.103 OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 28.98 seconds

 

稼働中のサービス名やWindows OSであることはわかりますが、詳細な情報についてはフィンガープリントからはマッチしませんでした。

Nmap側でフィンガープリントをアップデートしていないのか、またはWindows10側で対策が施されているのか、詳細は調べてみないとよくわかりません。

 

最後に

ネットワークスキャンは、標的ホストを調査するために最初に行われる作業なので、これらの予兆などがないかを確認することで、水際で攻撃を阻止することができると思います。

 

参考書籍

実践サイバーセキュリティモニタリング

ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習