マシンのサービスを探る「ポートスキャン」

 では,具体的にポートスキャンについて解説していくが,その前にポート番号について簡単に理解しておく必要がある。

 インターネットに接続されたコンピュータに,グローバルIPアドレスが割り振られているのは前述した通りだ。グローバルIPアドレスでコンピュータを特定することができるが,そこで動いているサービスは不明だ。

 1台のコンピュータでWebサーバとFTPサーバなど,複数のサービスを提供している場合,グローバルIPアドレスだけでは,どのサービスを要求されているか判別することができない。そこでポート番号を用いてサービスを識別する。一般的なポート番号(Well Known Port)としてHTTPは80番,TELNETは23番,FTPは21番,SMTPは25番,POP3は110番などがある。ポート番号は「1〜65535」までの値で指定される。利用されているWell Known Portなどについては,IANA(Internet Assigned Numbers Authority)のWebサイトを参照してほしい。

 たとえばWebサイトの閲覧であれば,

Webサーバに対してポート80番での接続を要求

Webサーバはポート80番への要求を確認し
その要求に答えてデータを返す

受け取ったデータをブラウザで表示

といった流れになる。Webサーバの場合はブラウザが応答を処理しているので分かりにくいかもしれないが,原理は「メールの安全性を考える(その1) 」で解説した「TELNET接続でメールの送受信を行う」の方法と同じだ。サーバ側はサービスを行っているポートを開け,いつ要求が来ても答えられるようになっているわけだ。ここが狙い目となる。つまりクラッカーはそのコンピュータがどのサービスを提供し,どのポートを開けているかをチェックするために,ポートスキャンを行うのだ。もちろん前述したようにOSの特定など,そのほかの情報収集にも役に立つ。

 では実際にポートスキャンを行った結果を見てみることにする。対象のOSは「Windows98 Second Edition」(ファイル共有機能を設定)で,ポートスキャンは,Linux上で動作する代表的なポートスキャナである「nmap v2.53」を使用した。TCP/UDPスキャン,そしてフィンガープリンティングによるOSの推定を行った(リスト1)。

リスト1■nmapによるポートスキャン

# nmap -sT -sU -O 192.168.1.4

Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Interesting ports on (192.168.1.4):
(The 3079 ports scanned but not shown below are in state: closed)
Port State Service
137/udp open netbios-ns
138/udp open netbios-dgm
139/tcp open netbios-ssn

TCP Sequence Prediction: Class=trivial time dependency
Difficulty=1 (Trivial joke)
Remote operating system guess: Windows NT4 / Win95 / Win98

Nmap run completed -- 1 IP address (1 host up) scanned in 9 seconds

 黄色の文字になっているところが,スキャンの結果分かったことである。つまり,開いているポートは

137/udp−netbios-ns
138/udp−netbios-dgm
139/tcp−netbios-ssn

推定されるOSは

WindowsNT4.0/Windows95/Windows98

 ということが分かる。開いているポートの種類から「ファイルおよびプリンタ共有」(NetBIOS)のサービスが開いていることが分かり,OSもWindows系のOSであることが推定された。あとは侵入を試みるということになるだろう。この場合ファイル共有に設定したフォルダにパスワード設定がなければ,特殊なツールを使用せずとも侵入できることになる。

One Point
NetBIOSの問題とは?
 Windowsでは,ファイルやプリンタを共有するために「NetBEUI」というプロトコルが利用されている。NetBEUIはNetBIOSを発展させたもので,Windowsなどで小規模なLANを利用する場合には便利だが,ルータを越えて利用できないなど,大規模なネットワークには向かない。そこで「NetBIOS over TCP/IP」(NBT)というプロトコルが策定されて,特定のLANとLANをWAN経由でも利用できるようになった。しかし,これがWindowsでは逆にセキュリティホールとなってしまうのだ。
 インターネットはWANと異なり,世界中の誰でもが自由にアクセスできるネットワークだ。そこでNBTを利用したアクセスを行っていると,NetBIOSの仕様上,ユーザーの認証が行われないため,クラッカーのマシンがターゲットユーサーのマシンになりすます(スプーフィング)ことができてしまう。このためクラッキングの原因となるわけだ。

PREV 3/5 NEXT