C:\>ftp
ftp>open ftp.sample.com …ftp.sample.comに接続
Connected to ftp.sample.com. …ftpコマンドのリダイレクト
220 Microsoft FTP Service …IISから返ってきた標準バナー
220 Test site. (ftp.sample.com) …FTPサイトのプロパティで設定したバナー
User (example.hoge.com:(none)): …ユーザー名入力メッセージ(カッコ内はFTP接続を要求したマシン名)
このやりとりで注目すべきポイントは、ユーザーがログインする以前にIISから標準FTPバナー・メッセージとして「220 Microsoft FTP Service」という文字列が返信されていることだ。攻撃者はハッキングのための情報収集段階でOSの種類の判別(OSフィンガー・プリント採取と呼ばれる)を行う。サーバに接続した段階、つまりログインのための認証要求よりも前の段階で、FTPサーバがWindowsで稼働していること、IISのFTPサーバ機能を利用していることが攻撃者に知られてしまう。それにより、WindowsやIISに特化した攻撃手段を使われる危険性が高まり、セキュリティ的に望ましくない。正規ユーザーからのFTP接続に支障が出ない方法を使い、攻撃の足掛かりとなる情報を無条件に表示している標準FTPバナーを早急に止めるべきだろう。
C:\>telnet
Microsoft Telnet>open ftp.sample.com 21 …21番ポート(FTPのコントロール用ポート)を指定してftp.sample.comに接続
220 Microsoft FTP Service …IISから返ってきた標準バナー
220 Test site. (ftp.sample.com) …FTPサイトのプロパティで設定したバナー
USER hogehoge …ユーザー名「hogehoge」を「USER」コマンドでサーバに送信
331 Password required for hogehoge. …サーバからのパスワードを要求するメッセージ
PASS password …ユーザー「hogehoge」に対応するパスワード「password」を「PASS」コマンドで送信
230 User hogehoge logged in. …ユーザー「hogehoge」のログイン成功メッセージ
SYST …FTPサーバの環境情報を「SYST」コマンドで要求
215 Windows_NT …システム・タイプがWindows OSであることを示すメッセージ
C:\Inetpub\AdminScripts>cscript adsutil.vbs enum msftpsvc …enum(列挙)オプションでFTPサービスを指定
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. …(中略)…
[/msftpsvc/1] …「既定のFTPサイト」に割り当てられた識別子
[/msftpsvc/1786339847] …目的のサイトに割り当てられた識別子
[/msftpsvc/Info] …デフォルトでFTPサービスが所有する管理情報用の識別子
C:\Inetpub\AdminScripts>cscript adsutil.vbs set msftpsvc/1786339847/SuppressDefaultFTPBanner 1 …先ほど確認した識別子のサイトに対し、Mbschema.xmlで追加したプロパティを有効「1」に設定
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
ftp>open ftp.sample.com …ftp.sample.comに接続
Connected to ftp.sample.com. …ftpコマンドのリダイレクト
220 Test site. (ftp.sample.com) …FTPサイトのプロパティで管理者が設定したバナー
User (example.hoge.com:(none)): …ユーザー名入力メッセージ(カッコ内はFTP接続を要求したマシン名)