特別講座<PortScan編>


■Port Scanとは?

 ハイポートに隠してあるプロキシーサーバのポート番号や、 セキュリティ上問題のあるデーモンやテストスクリプトなどをリポートするすること。そして、それを調べるプログラムをポートスキャナー(スキャナ)と呼ぶ。攻撃を受けるとネットワークの負荷が増大したり、 root権限を奪取され、結果としてのホストを攻撃するための踏み台として使われる恐れがある。

 対策としてはセキュリティ上問題となるようなデーモンを立ち上げない、テストスクリプトを削除する。 ルータを正しく設定してネットワークの負荷を押さえるのも大事でしょう。 syslogd経由でロギングしても気づかないことが多い、IP Filterでロギングする。

 

 

■スキャナの仕組み

 以下を調べることが可能です。

 

■スキャンした結果から推測できること

 どのポート番号が開いているかによって、OSをある程度判定できます。以下の表を参考にしてみてください。

開いているポート番号

推測できるOS

139
135

WindowsNT

139のみ

Windows95/98

ポートマッパ(111)
BarkleyRサービス(512-514)
NFS(2049)
3277X以上の大きな数字のポート

Unix
Solaris(RPCサービスが3277Xで実行している場合)

■ポートスキャン・テクニック

 厳密なIPインプリメントでは、リスニングの状態にかかわらず、全てのポートをスキャンしてもRSTの返送を制限するように構成する。これにより、Attackerが以下のようなスキャン・テクニックを実行しても、その結果は信頼できないものとなる。

スキャン・テクニック

解説

TCP接続スキャン

標的ポートに接続し、完全な3ウェイハンドシェーク(SYN,SYN/ACK,ACK)を実行。
標的システムに容易にばれる。

TCP SYNスキャン

完全なTCP接続をしないので、ハーフオープンスキャンまたはステルススキャンと呼ばれています。代わりに、SYNパケットを標的のポートに送信する。

  • 標的ポートからSYN/ACKを受信←そのポートは、リスン状態。
  • 標的ポートからRST/ACKを受信←そのポートは、非リスン状態(リスンしてない)。

TCP FINスキャン

標的に、FINパケットを送信する。標的ホストは、RFC793(http://www.ietf.org/rfc/rfc0793.txt)に基づき、クローズした全てのポートにRSTを送り返さなければならない。
このテクニックは、通常、UnixベースのTCP/IPスタックにしか通用しません。

TCPクリスマスツリースキャン

標的ポートに、FIN,URG,PUSHパケットを送信。
TCP FINスキャン同様、標的ホストはクローズした全てのポートについてRSTを送り返さなければならない。

TCP Nullスキャン

全てのフラグを”0”(オフ)にする。
TCP FINスキャン同様、標的ホストはクローズした全てのポートについてRSTを送り返さなければならない。

UDPスキャン

標的ポートにUDPパケットを送信。標的ポートが”ICMP port unreachable”というメッセージで応答した場合、ポートはクローズされている。
ちなみに、パケットフィルタリングを施したデバイスに対するUDPスキャンは、比較的時間がかかる。ネット経由でUDPスキャンする時には、その結果はあまり信頼できない。

 ちなみに、TCP接続には、次の3ウェイのハンドシェイクが必要(詳しくは、基礎TCP/IP講座も参照せよ)。以下の図は、TCPの3ウェイシェイクを表している(つもり)・・・。

クライアント


クライアントからのSYN送信

サーバ


サーバからのSYN/ACK送信


クライアントからのACK送信

 

■サーバ側のLOG(特別講座<log編>も参照してみるといいかもしれません)

 ポートスキャンはサーバー上でロギング可能である。というか、デフォルト上で、ログをされる状態になっている。(以下は、port scan←written by carcino氏から転載)

 

----- text -----

Jun 29 04:04:12 def last message repeated 6 times

Jun 29 04:05:13 def last message repeated 6 times

Jun 29 04:06:14 def last message repeated 6 times

 

 肝心なサーバーのログはどうだろうか。見てみよう。(番号は付加)

 

1. Jun 29 06:12:29 def wu.ftpd[13452]: connect from 192.168.10.1

2. Jun 29 06:12:29 def in.telnetd[13453]: connect from 192.168.10.1

3. Jun 29 06:12:29 def telnetd[13453]: ttloop: peer died: Connection refused

4. Jun 29 06:12:29 def sendmail[13454]: connect from 192.168.10.1

5. Jun 29 06:12:29 def sendmail[13454]: NOQUEUE: Null connection from [192.168.10.1 ]

6. Jun 29 06:12:30 def in.pop3d[13455]: connect from 192.168.10.1

7. Jun 29 06:12:32 def ftpd[13452]: FTP session closed

 

 どうだろう・・・とたんに荒れ狂った海のようにログが押し寄せる。しかも、皮肉なことにしっかりとIPまでログられているのである。これでは、サーバーサイドのadminはIPからISPを割り出し、ユーザー宛に警告文を送るかもしれない。ついには、ISPから接続を拒否されてしまう結果になりうる。(あまりないと思うが・・・)

 

 さて、賢明な人はこう思うだろう。「普通のログと何が違うのか?」これが、明らかに違うのだ。

  まずは、ログ1を見てみよう。これは、IP 192.168.10.1 から wu.ftpd に対するリクエストである。その次にあるべき、こういったログがない。

 

Jun 29 06:25:53 def ftpd[13465]: USER guest

Jun 29 06:25:53 def ftpd[13465]: PASS password

Jun 29 06:25:53 def ftpd[13465]: FTP LOGIN FROM 192.168.10.1 [192.168.10.1], guest

 

 そうだ。実際にコネクトしておきながら、ユーザー名を入力していないのである。そのため、ログ7で、time outになり、 close することになる。大抵の場合は、コネクトとログインは連続して行われるため、そのすぐ下か、数行後にこのログインのログがこなければおかしいわけだ。これは、ログ2,4,6にも共通していえることだ。

----- text end -----

 

■可能性のあるデーモン・テストスクリプト

●一般的に問題となる可能性になるデーモン

Finger・TELNET・IMAP・POP・HTTP・NFS・DNS・X・named・statd

 

●一般的に問題となる可能性になるテストスクリプトなど

/cgi-bin/phf

/cgi-bin/test-cgi

/cgi-bin/nph-test-cgi

/cgi-bin/campas

/cgi-bin/htmlscript

/_vti_pvt/service.pwd

/~someuser/cool-logs/mlog.html

 

■Toolの種類(TOOLZも参照)

ポートスキャナーの名前
(言語)

制作プラットホーム
対象プラットホーム
動作プラットホーム

スキャナの種類

特徴

コメント

nmap



Unix

ステルススキャナ

Nessus
(C)

Linux
Unix、その他多数
Linux

TCPポートスキャナ

Nessusの作者は、フランスのパリに住む18歳のRenaud Deraisonでした。簡単にモジュールを追加できるため、拡張性が高い。

スキャンが完了すると、情報をグラフィッカルまたはrawフォーマットで閲覧できます。

NSS
(Perl)

Unix
Unix
Unix

TCPポートスキャナ

速度が速い。

root権限が必要。

HakTek



Win

GUIで手軽にスキャン・メールボムなどができる。

ポートの範囲を大きくすると、ばぐりやすい。デフォルトで、microsoft.comに設定してあるのがユニーク。

Strobe
(C)

Unix
Unix
Unix

TCPポートスキャナ

高速・軽い。

ポートスキャンだけで特定のホールを検出したりしない。

SATAN
(C、perl)

Unix
Unix
Unix

TCPポートスキャナ

弱点をスキャンするとチュートリアルが表示される!しかし、重い。また、Linuxで使用するときはいくつかの修正が必要。

ユーザフレンドリー。有名なTOOLです。

Ballista

Unix、WinNT
Unix、WinNT
Unix

弱点発見に適している。

Jakal
(C)

Unix
Unix

TCPステルススキャナ

ファイヤーウォールの向こう側もスキャンする。

IdentTCPscan

Unix
Unix
Unix

TCPポートスキャナ

TCPポートプロセスの全オーナーをUIDで特定する。あるTCPポートプロセスのオーナーを取り出す機能有り。非常に高速。

ほとんどのCコンパイラで問題無くコンパイル可能らしい。

Ogre
(不明)

Win
WinNT
Win95、WinNT

TCPポートスキャナおよびNetBIOSスキャナ

NetBIOS統計情報の収集。

WSS
(C)

WinNT
Unix、WinNT
WinNT4.0

TCPポートスキャナおよびNetBIOSスキャナ

ISS
(C)

Unix、WinNT
Unix、WinNT
Unix、WinNT

TCPポートスキャナ

SAFESuite
(C)

Unix、WinNT
Unix、WinNT

TCPポートスキャナ

イントラネットスキャナとWebスキャナとファイヤウォールスキャナから構成されている。弱点をスキャンするとチュートリアルが表示される!

GUI環境。ただし、相手サーバにLOGが残る。それは、/var/adm/messagesというファイルに作成される。

CONNECT
(bin/shスクリプト)

TFTPサーバのサブネットをスキャンするのが目的。

FSPScan

FSPサーバ用のスキャナ。

XSCAN

サブネットまたはホストをスキャンして、X Windowサーバの弱点を探す。これだけでは、他のスキャナと変わらないが、XSCANは追加機能があります。弱いターゲットを発見すると、直ちに端末からのキー入力の記録を開始するのです。

Network Toolbox



Win95

SiteScan

小型で高速なポートスキャナ。オープンポートを特定し、良く知られたWebのホールのいくつかを発見。

Chesapeake
(Java)



Win95、WinNT、Solaris

YAPS



Win95

nbtscan
(Perl)



Unix

PortScanner
(Java)

TCP PortScanner
(Perl5)



UnixのHTMLインターフェース

PortFlash



Win95

39.95ドルのシェアウェア。

Ostronet



Win

FingerやWhoisやNslookupも可能。

SimpleStealth

ステルススキャナ

BackSectionのUNYUN氏作成。

OS判定なども可能。Shadow Penguin Securityで入手可能。

 

■ポートスキャン対策

 自分のサーバへのポートスキャンの実行を防ぐのは困難である。よって、不要なサービスを無効にするのがよいでしょう。Unixならば/etc/inetd.confでいらないサービスをコメントアウトまたは削除し、WinNTならば[コントロールパネル]>[サービス]でサービスを無効にします。

 


■参考文献


戻る

独自ドメインの取得をするなら 海外旅行保険の加入はコチラ! 海外旅行保険の加入はコチラ!
[PR] | RMT葬式 費用高崎浦安大井町新越谷中国SEO対策消費者金融車 買取テンプレート沖縄旅行免許合宿二輪引越しプレゼントゴルフ会員権留学レーシックマッサージFXアフィリエイトFXホームページ制作デイトレード海外現地情報ハワイ旅行タイバンコクハワイ レンタカーベスト ハワイ ホテル レーツバリ島Hawaii hotelsHawaii Activitiesbhhrハワイホテルテキスト広告
【運営会社「パラダイムシフト」サービス】 ハワイ現地オプショナルツアーリラックマ) - ビジネスクラス航空券 - 格安航空券(1) - 格安航空券(2) - 海外ホテル - 韓国旅行 - タイムシェア - ホテル 予約
無料ホームページ - 携帯ホームページ - 無料ホームページ作成 - レンタルサーバー - ブログ - ヴィラ - ハワイ コンドミニアム - バリ島 ホテル - プーケット ホテル - タイムセル - 口コミ - 格安国際電話 - ホノルルマラソン - サイトパトロール - 誹謗中傷 - 宿泊料金比較 - 口コミ