- Ubuntu 20.04.4 LTS
- nmap 7.80+dfsg1-2build1
過日、nmap
コマンドでオープンリレーの検査ができることを知った。贔屓にしていた第三者中継チェックwww.rbl.jpが閉鎖した際には途方に暮れたものであるが、コマンドから実施できるならたいへん心強い。
nmapがLuaで記述されたリレー検査スクリプトsmtp-open-relay.nseを解釈・実行する、ということである。スクリプトは/usr/share/nmap/scripts/smtp-open-relay.nseに設置されていた。
コマンドを最もシンプルに記述するとこういう具合である。
$ nmap --script smtp-open-relay.nse -p ポート番号 ホスト
ポート番号やホストを具体的に置き換えて実行してみるとこうである。全部で16の検査を試み、3つパスした模様である。なお、リレーが許可されたenvelope-fromとtoを表示するには、nmapコマンドに-v
オプションを与えて冗長性レベルを上げねばならなかった。
$ nmap -v --script smtp-open-relay.nse -p 25 192.168.0.95 (snip) PORT STATE SERVICE 25/tcp open smtp | smtp-open-relay: Server is an open relay (3/16 tests) | MAIL FROM:<> -> RCPT TO:<relaytest@nmap.scanme.org> | MAIL FROM:<antispam@nmap.scanme.org> -> RCPT TO:<relaytest@nmap.scanme.org> |_ MAIL FROM:<antispam@postfix.guro.internal> -> RCPT TO:<relaytest@nmap.scanme.org>
メールアドレスのローカルパートやドメインパートなどはデフォルトで定められたものが用いられる。これらは--script-args=
で以って引数を指定すれば変更できた。
$ nmap -v --script smtp-open-relay.nse --script-args=smtp-open-relay.from=fromuser,smtp-open-relay.to=touser,smtp-open-relay.domain=example.com,smtp-open-relay.ip=192.168.0.1 -p 25 192.168.0.95 (snip) PORT STATE SERVICE 25/tcp open smtp | smtp-open-relay: Server is an open relay (4/16 tests) | MAIL FROM:<> -> RCPT TO:<touser@example.com> | MAIL FROM:<fromuser@example.com> -> RCPT TO:<touser@example.com> | MAIL FROM:<fromuser@postfix.guro.internal> -> RCPT TO:<touser@example.com> |_ MAIL FROM:<fromuser@[192.168.0.1]> -> RCPT TO:<touser@example.com>