Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら RSSフィードのご登録はこちらから
公開日:2014年1月9日

Nmap を使ってポートスキャンを行う

Kali Linux のインストールと設定も終了しましたので(記事1記事2)、今度は実際に Web サイトに対してポートスキャンを行ってみます。

ポートスキャンには Nmap を使用しますが、Kali Linux には最初からインストールされています。

Nmap とは

Nmap とはオープンソースで開発されているポートスキャンツール(ポートスキャナ)で、サーバーが公開しているポート(サービス)の状況を確認することができます。

また、OS の情報を推測したり、稼働しているサーバーソフトウェアの種類やバージョンを取得することもできます。

Nmap で検出できるポートの STATUS は、以下の6つがありますが、とりあえず open と closed さえ覚えておけば、開発者としては十分でしょう。

  • open - ポートが空いている
  • closed - ポートが閉じている
  • filtered
  • unfiltered
  • open|filtered
  • closed|filtered

診断対象

診断対象の Web サーバーは、Badstore.net という脆弱性をあらかじめ組み込まれたテスト用環境の Linux を使用します。

Badstore.net のセットアップについては、以下の記事を参照してください。

Kali Linux で Nmap を使用する

Kali Linux で Nmap を使用するには、[アプリケーション] – [Kali Linux] – [Top 10 Security Tools] – [nmap] から起動します。

pic01

Nmap を起動すると、Nmap のオプションの説明付きのコンソールが起動されます。

pic02

では、実際に、Badstore.net のサーバー (192.168.11.7) を Nmap でスキャンしてみましょう。

# nmap 192.168.11.7

Starting Nmap 6.40 ( http://nmap.org ) at 2014-01-09 21:58 JST
Nmap scan report for 192.168.11.7
Host is up (0.0022s latency).
Not shown: 997 filtered ports
PORT     STATE SERVICE
80/tcp   open  http
443/tcp  open  https
3306/tcp open  mysql

Nmap done: 1 IP address (1 host up) scanned in 9.02 seconds

Badstore.net のサーバーでは、HTTP と HTTPS と MySQL のポートがオープンされていることが分かります。

今度は、オプションの –A を付けて、OS の種類やサーバーソフトウェアの種類とバージョンを取得してみましょう。

# nmap -A 192.168.11.7

Starting Nmap 6.40 ( http://nmap.org ) at 2014-01-09 22:04 JST
Nmap scan report for 192.168.11.7
Host is up (0.0033s latency).
Not shown: 997 filtered ports
PORT     STATE SERVICE  VERSION
80/tcp   open  http     Apache httpd 1.3.28 ((Unix) mod_ssl/2.8.15 OpenSSL/0.9.7c)
| http-methods: Potentially risky methods: TRACE
|_See http://nmap.org/nsedoc/scripts/http-methods.html
| http-robots.txt: 5 disallowed entries 
|_/cgi-bin /scanbot /backup /supplier /upload
|_http-title: Welcome to BadStore.net v1.2.3s
443/tcp  open  ssl/http Apache httpd 1.3.28 ((Unix) mod_ssl/2.8.15 OpenSSL/0.9.7c)
| http-methods: Potentially risky methods: TRACE
|_See http://nmap.org/nsedoc/scripts/http-methods.html
| http-robots.txt: 5 disallowed entries 
|_/cgi-bin /scanbot /backup /supplier /upload
|_http-title: Welcome to BadStore.net v1.2.3s
| ssl-cert: Subject: commonName=www.badstore.net/organizationName=BadStore.net/stateOrProvinceName=Illinois/countryName=US
| Not valid before: 2006-05-10T12:52:53+00:00
|_Not valid after:  2009-02-02T12:52:53+00:00
|_ssl-date: 2014-01-09T13:04:57+00:00; -2s from local time.
| sslv2: 
|   SSLv2 supported
|   ciphers: 
|     SSL2_DES_192_EDE3_CBC_WITH_MD5
|     SSL2_IDEA_128_CBC_WITH_MD5
|     SSL2_RC2_CBC_128_CBC_WITH_MD5
|     SSL2_RC4_128_WITH_MD5
|     SSL2_RC4_64_WITH_MD5
|     SSL2_DES_64_CBC_WITH_MD5
|     SSL2_RC2_CBC_128_CBC_WITH_MD5
|_    SSL2_RC4_128_EXPORT40_WITH_MD5
3306/tcp open  mysql    MySQL 4.1.7-standard
| mysql-info: Protocol: 10
| Version: 4.1.7-standard
| Thread ID: 8
| Some Capabilities: Connect with DB, Compress, Secure Connection
| Status: Autocommit
|_Salt: ]\68V)gL(~d\}$8.z?k{
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running (JUST GUESSING): QEMU (90%)
OS CPE: cpe:/o:qemu:qemu
Aggressive OS guesses: QEMU user mode network gateway (90%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops

TRACEROUTE (using port 80/tcp)
HOP RTT     ADDRESS
1   ...
2   1.82 ms 192.168.11.7

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

かなり詳しい情報が取得できました。

OS は Unix で、Apache や OpenSSL が使用されていることとバージョンが分かります。Trace メソッドが有効になっていることも分かります。MySQL のバージョンも分かりますね。

このようにして、Nmap でポートの状況の確認を行うことができます。

もし、不要なポートが空いていることが分かったら、サービスを止め、ポートを塞ぎましょう。

まとめ

Nmap を使えば、簡単にポートスキャンを行うことができ、サーバー設定の不備を発見できることが分かりました。是非、有効に活用しましょう。

但し、自分の管理下にないサーバーに対してポートスキャンを行うことは、攻撃をしかけていると受け取られても仕方がないので、決して行わないようにしてください。

参考サイト


スポンサーリンク





カテゴリー:ツール

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA