本記事では、有名なネットワークスキャンツールであるNmap(Network Mapper)によるWindows PCのスキャンを行います。
また、Windows標準のファイアウォール機能を有効にした場合と無効にした場合の違いについても確認してみます。
Nmapとは
Nmap(Network Mapper)とは、ネットワーク上で稼働しているホストをスキャンすることでネットワーク上の地図を作成するツールを言います。
具体的にはICMP、TCP、UDPなどのパケットを送信し、それに対する応答を確かめることで、ホストが稼働しているか、またはどのようなポートが開いているか(サービスが稼働しているか)を調査します。
なお、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側で対策が施されているのか、詳細は調べてみないとよくわかりません。
最後に
ネットワークスキャンは、標的ホストを調査するために最初に行われる作業なので、これらの予兆などがないかを確認することで、水際で攻撃を阻止することができると思います。