mcpField
E
email-security

email-security

github.com/uphiagoセキュリティ1.3k42 回インストール8 週間前に更新
リポジトリ

email-security について

ドメインの DMARC、SPF、DKIM レコードを調べ、メールなりすましのリスクを評価するセキュリティテストスキルです。DNS 確認、SMTP リレーのテスト、メールヘッダーによる結果の検証方法を説明します。

主な機能

  1. 01DMARC、SPF、DKIM レコードの確認
  2. 02メール認証設定の解釈
  3. 03SMTP リレーの可用性テスト
  4. 04関連するメールヘッダーの説明
  5. 05DNS とセレクターの注意点

活用シーン

  1. 01偵察時のメールセキュリティ確認
  2. 02ドメインのメールなりすましリスク評価
  3. 03SMTP リレーがテスト接続を受け付けるか確認
  4. 04メールヘッダーで認証結果を検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/uphiago/recon-skills --skill email-security

インストール後、Claude Code で/email-securityを入力して読み込まれたか確認します。

詳細

メールセキュリティ — DMARC、SPF、DKIM

使用するタイミング

  • パッシブ偵察中(フェーズ 1)
  • 初期の DNS 列挙後
  • DMARC の p=none は、ドメインが完全に偽装される可能性があることを意味します
  • フィッシングやビジネスメール詐欺のリスクを特定するうえで重要です

DMARC/SPF/DKIM の確認コマンド

# SPF
dig +short TXT $target | grep "v=spf1"

# DMARC
dig +short TXT _dmarc.$target

# DKIM (common selector: google)
dig +short TXT google._domainkey.$target

# MX
dig +short MX $target

結果の解釈

設定意味リスク
v=spf1 ~all (softfail)SPF はブロックを示唆しますが、強制しません偽装メールが届く可能性があります
v=spf1 ?all (neutral)SPF は何もしません完全に制限がありません
v=spf1 include:amazonses.com ~allSES はドメインを送信元としてメールを送信できますどの AWS SES アカウントからも偽装できます
v=DMARC1; p=noneDMARC は無効です偽装に対する保護がありません
v=DMARC1; p=quarantine失敗したメールはスパムに振り分けられます部分的な保護です
v=DMARC1; p=reject失敗したメールは拒否されます完全な保護です
DKIM missing暗号署名がありませんメールは偽造される可能性があります

SMTP によるメールの偽装

# Test SMTP relay
timeout 3 bash -c 'exec 3<>/dev/tcp/TARGET/25; head -1 <&3'

# Send spoofed email via open relay (swaks)
swaks --to [email protected] --from [email protected]   --server TARGET --body "Spoofed email"

セキュリティレベルを示すヘッダー

ヘッダー値意味
Authentication-Resultsspf=passSPF に合格しました
Authentication-Resultsspf=failSPF に失敗しました
Authentication-Resultsdmarc=passDMARC に合格しました
Authentication-Resultsdmarc=failDMARC に失敗しました
Authentication-Resultsdkim=passDKIM に合格しました
Received-SPFPass送信者は許可されています
Received-SPFSoftfail送信者は完全には許可されていません
Received-SPFFail送信者は許可されていません
ARC-Authentication-Results認証チェーン

AWS SES の偽装(SPF に amazonses.com が含まれている場合)

v=spf1 include:amazonses.com ~all の場合:

  1. AWS アカウントを作成します
  2. 独自のドメイン(検証済み)で SES を設定します
  3. From: [email protected] を指定してメールを送信します
  4. SPF は合格します(include:amazonses.com があるため)
  5. DMARC は p=none なので、プロバイダーは通常どおりメールを配信します

実際の事例

実際の事例(重大):政党 — 両方のドメイン(DOMAIN_PLACEHOLDER_A、DOMAIN_PLACEHOLDER_B)で DMARC が p=none でした。SPF に include:amazonses.com が含まれていたため(どの SES アカウントからもそのドメインを送信元として送信可能)、メールを完全に偽装できました。

注意点

問題解決策
SPF のルックアップ制限DNS では SPF の include に対するルックアップは 10 回までです
DKIM セレクターが不明google、selector1、selector2、2022、2023 など、一般的なセレクターを試してください
DMARC レポートrua=mailto: により、認証結果が第三者に漏れる可能性があります

検証

# Verify email spoofing is possible
# Send test email and check headers:
dig +short TXT _dmarc.target.com
# If p=none -> confirmed spoofable

コメント