お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-02-10 18:38:13

bordercollie
メンバ
From: Tokyo
登録日: 2008-05-01

RCPTコマンドを用いたuser enumerationの回避

rcpt toを用いたuser emurationの回避方法


皆さんのお力をお借りしたく、お願いします。

smtpのコマンドでRCPTというコマンドがあるようですが、これがユーザー列挙に利用されてしまうようです。

http://pentestmonkey.net/tools/smtp-user-enum/

これをpostfixのsmtpサーバで回避したいのですが、どのようにすれば回避できるのか
分からず、困っております。

=== 以下、環境です。===
OS:Ubuntu 8.10 (Linux 2.6.27-11-generic)
smtpサーバ:postfix 2.5.5-1

=== 以下、実行例です。 ============================================

$ telnet test 25
Trying 10.1.1.1...
Connected to test.
Escape character is '^]'.
220 host ESMTP Postfix (Ubuntu)

helo localhost
250 host

MAIL FROM:[email protected]
250 2.1.0 Ok

RCPT TO:root
250 2.1.5 Ok

RCPT TO:unknownuser 
550 5.1.1 <unknownuser>: Recipient address rejected: User unknown in local recipient table ← ユーザーが存在しないという事で推測されちゃうよ!!!
=======================================================  総当たりされたら全部ユーザー列挙されちゃうよ!!!

対策としてはRCPT TOでローカルユーザーが存在しなかった場合でも、「250 OK」を返せばいいのかなと思ったりしてます。

すみませんが、宜しくお願いします。

オフライン

 

#2 2009-02-10 19:20:59

hito
管理者
登録日: 2007-03-18

Re: RCPTコマンドを用いたuser enumerationの回避

・rcptコマンドの実行
・意味分からんホストからのrcptコマンド(以前にSMTPセッション)

のいずれかをスロットリングしてあげるのが基本ですが、

  存在するかもしれないメールアドレスにメールを送ってみる

でもエラーメールが返ってくるわけです。

ここからenum的にguessできますし、そもそもメールアドレスにユーザー名が書かれているということは、きちんとセキュリティモデルとして掌握されていますか? されたいことの本質はいったい何でしょうか?

言い換えると、

  ユーザー名をenumされたら危ないという考え方そのものが、かなり無意味

なのですが、どうしても設定されたい理由はありますか?

オフライン

 

Board footer

Powered by FluxBB