現役ペンテスト技術者が選ぶ 使えるセキュリティツール(16) 「SMTP Relay Scanner」
このコーナーでは、現役のペネトレーションテスト技術者が、使えるセキュ
リティツールを、ペンテストの現場の視点から紹介します。
特集
特集
リティツールを、ペンテストの現場の視点から紹介します。
・名称:SMTP Relay Scanner
・配布制限:
・商用版の有無:無
・類似ツール:-
・公式 URL:http://www.cirt.dk/
・対応OS:Windows系OS、Linux系OS(Perlが動作する環境)
・分野:不正中継調査
・コマンド一覧:
(1) 基本項目と概要
メールを送信するために使用するSMTPは、基本的に認証機能がない。更に、メールが行き場を失わないために中継するといった性善説の下、メールは無条件に転送するといったことが昔は行われていた。
しかし、現在では、本来のシステムの使用者以外が身元を隠ぺいし、SPAM(迷惑メール)やウイルスの配布のためなど悪用目的で他人のメールサーバを中継に使用されるという危険性があるため、様々な方法でこの不正中継を行わせない設定を行うことが常識となっている。しかし、設定ミスなどの理由から不正中継可能なメールサーバが多数存在しているのが現状である。
今回は、不正中継に対する制限が行われているかどうかを確認するためのツール「SMTP Relay Scanner」を紹介する。
(2) コマンドサンプル
ダウンロードしてきたファイル(zip)を展開し、「-?」を引数にして実行すると表示される情報を見れば分かるのだがこのツールは不正中継のチェックをする対象の情報が記述された設定ファイルを読み込む(-loadオプション)ことで実行される。
C:console-toolselayscanner>RelayScanner.pl -?
****************************************
****************************************
** CIRT.DK SMTP Relay Scanner **
** Version 1.7 **
****************************************
********(c)2005 by Dennis Rand**********
****************************************
ooOOooOOooOOooOOooOOooOOooOOooOOOOooOOooOOooOOooOOooOOooOOooOOoo
Parameters
-load < Config filename >
-delay < Microseconds between testcases > Default: 2000000 = 2 sec.
-timeout < Timeout connection to SMTP > Default: 10 seconds
したがって、実行前には、設定ファイルに編集を加える必要がある。設定ファイルのテンプレートは、ツール本体と同じフォルダ内に存在する「host_info.txt」を利用するとよいだろう。
テンプレートの設定項目を見ていこう。設定箇所は以下の5つである。
1.CustomerEmailServer
不正中継のテストを行う対象のサーバのアドレスを記述。
2.CustomerEmail
不正中継のテストを行う対象サーバのドメインに存在する(であろう)メールアドレスを指定。
3.TesterEmail
不正中継が成功した際にメールが届けられるアドレスを指定。
4.CustomerDomain
不正中継のテストを行う対象のサーバのドメインを指定
5.Port
不正中継のテストを行う対象のSMTPサーバが使用しているポート番号を指定
「Netsecurity」のサーバ(mail.netsecurity.ne.jp)上にポート25番を使用するSMTPが稼動していると仮定して私の所属する会社から検査を行う場合の設定ファイルは以下の通りとなる。
設定ファイル:
https://www.netsecurity.ne.jp/images/article/smtp_relay_scanner1.jpg
実行する際のオプションとしては、メーラーの指定やタイムアウトの設定などがあるが今回は割愛させていただき、最低限のオプションのみを紹介させていただく。
-unique
重複するパターンを割愛し、ユニークなもののみを試行する。ちなみに、このオプションを指定しないと10000を超えるパターンを試行することになる。
-noupdate
このオプションを指定しないと不正中継のチェックフェーズに入る前に不正中継のパターンのアップデートを行う。アップデートを行うと少々時間がかかってしまうので最新であれば行う必要はないので指定するとよいだろう。
上記のオプションを踏まえて下記のように実行すると不正中継のチェックが開始される。
RelayScanner.pl -l host_info.txt -unique -noupdate
以下は、不正中継が許可されているサーバに対して「SMTP Relay Scanner」を実行したログの抜粋である。
[X] Checking for updates - NO CHECK
[X] Loading scanner - DONE
[X] Checking for service - DONE
[X] Checking for SMTP service - DONE
[X] Total testcases to run - 160
[X] Delay between tests - 2 seconds
[X] Relay scan started - Thu Dec 27 20:05:12 2007
[X] Relay Checking in progress: => 30/160
[X] Scanning Finished - Thu Dec 27 20:11:14 2007
ooOOooOOooOOooOOooOOooOOooOOooOOooOOooOOooOOooOOoo
Successfully attempts: 30
Failed attempts: 130
Total attempts: 160
ooOOooOOooOOooOOooOOooOOooOOooOOooOOooOOooOOooOOoo
出力結果の「Successfully attempts」が「0(ゼロ)」以外であれば検査対象のサーバがメールの中継を受け付けたことを意味する。設定ファイルの「TesterEmail」にメールが届いているはずである。
また、実行後の結果は標準出力だけでなく、HTML形式で「SMTP_Relay_Scanner_[検査ドメイン名].html」という命名規則で保存される。
https://www.netsecurity.ne.jp/images/article/relayscanner-result.PNG
どのような、パターンが成功したのかという詳細な情報を見ることが可能である。
(3) 使用例とTIPS、検査者の視点から
冒頭では述べなかったが、不正中継の温床にされてしまうと以下のような問題が発生する…
【執筆:NTTデータ・セキュリティ株式会社 辻 伸弘】
──
※ この記事は Scan購読会員向け記事をダイジェスト掲載しました
購読会員登録案内 http://www.ns-research.jp/cgi-bin/ct/p.cgi?w02_ssw
《ScanNetSecurity》