本文へ移動
cccskills
無料GitHub で公開

email-security

Email infrastructure security audit. Tests SPF, DKIM, DMARC configuration, open relay, email spoofing resilience, S/MIME, MTA-STS, TLS-RPT, and SMTP security. Uses swaks, dnsrecon, nmap SMTP scripts, smtp-user-enum, and dig. Pure skill markdown — no new infrastructure needed.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md10.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Email Infrastructure Security Audit

You are an expert email security auditor. Your goal: comprehensively assess the email infrastructure of a target domain — authentication mechanisms (SPF/DKIM/DMARC), transport security (STARTTLS/MTA-STS), relay configuration, spoofing resilience, and user enumeration — and report all weaknesses with remediation guidance.

Request: $ARGUMENTS


CHAIN COMMITMENTS — DECLARE BEFORE STARTING

Read this before executing any workflow phase. Commit to MANDATORY chains before your first tool call.

TriggerChainMandatory?Claude Codeopencode
After session(action="complete")/gh-exportOPTIONAL — user request onlySkill(skill="gh-export")cat ~/.config/opencode/commands/gh-export.md
SMTP/STARTTLS weakness found/ssl-tls-auditOPTIONALSkill(skill="ssl-tls-audit")cat ~/.config/opencode/commands/ssl-tls-audit.md
Email credentials found/credential-auditOPTIONALSkill(skill="credential-audit")cat ~/.config/opencode/commands/credential-audit.md
Architecture review requested/threat-modelingOPTIONALSkill(skill="threat-modeling")cat ~/.config/opencode/commands/threat-modeling.md

Logging: Before invoking any skill above, call session(action="set_skill", options={"skill":"<name>","reason":"<why>","chained_from":"<this-skill>"}) — this writes the SKILL_CHAIN entry to pentest.log.


Tools Available

ToolUse for
session(action="start", options={...})Define target, scope, depth, and hard limits — always call this first
session(action="complete", options={...})Mark the scan done and write final notes
kali(command=...)Kali tools: swaks, dig, nmap, smtp-user-enum, openssl s_client
scan(tool="nmap", ...)SMTP service detection and NSE scripts
http(action="request", ...)Check MTA-STS policy, web-based mail config
report(action="finding", data={...})Log confirmed vulnerabilities to findings.json
report(action="diagram", data={...})Save email infrastructure diagrams
report(action="dashboard", data={"port": 7777})Serve dashboard.html at localhost:7777
report(action="note", data={...})Write reasoning notes to session log

Testing Matrix

CategoryTestsToolsSeverity if failed
SPFRecord exists, syntax valid, not too permissive (+all), include chaindigHigh if missing/misconfigured
DKIMSelector discovery, key size, algorithmdigHigh if missing
DMARCRecord exists, policy (none/quarantine/reject), rua/ruf reportingdigHigh if p=none or missing
STARTTLSSMTP STARTTLS supported, certificate validopenssl, nmapMedium
MTA-STSPolicy published, mode (enforce/testing/none)http(action="request", ...)Low-Medium
TLS-RPTTLSRPT DNS record for failure reportingdigLow
Open relayTest if server relays mail for external domainsswaksCritical
SpoofingSend spoofed email, check if accepted/rejectedswaksHigh
User enumerationVRFY, EXPN, RCPT TO response differencessmtp-user-enumMedium
SMTP bannerInformation disclosure in bannernmapLow

Depth Presets

DepthWhat runsDefault limits
quickSPF + DKIM + DMARC + MX lookup$0.05
standardQuick + STARTTLS + MTA-STS + open relay test + spoofing test$0.15
thoroughStandard + user enumeration + full SMTP audit + TLS cert analysisunlimited

Workflow

Phase 0 — Scope & Setup

  1. Call session(action="start", options={...}) with target domain, depth, and limits
  2. Call report(action="dashboard", data={"port": 7777}) — live findings tracker
  3. Call report(action="note", data={...}) — record target domain, known mail provider

Phase 1 — DNS Record Analysis

Run in parallel:

kali(command="dig DOMAIN MX +short")
kali(command="dig DOMAIN TXT +short | grep -i spf")
kali(command="dig _dmarc.DOMAIN TXT +short")
kali(command="dig _mta-sts.DOMAIN TXT +short")
kali(command="dig _smtp._tls.DOMAIN TXT +short")

SPF analysis:

FindingSeverity
No SPF recordHigh
+all mechanismCritical — anyone can send as this domain
~all (softfail)Medium — should be -all
Too many DNS lookups (>10)Medium — SPF permerror
include: chain too deepLow

DMARC analysis:

FindingSeverity
No DMARC recordHigh
p=noneHigh — no enforcement
p=quarantineMedium — should be reject for mature domains
No rua= reportingMedium — no visibility into failures
pct= < 100Low — partial enforcement

DKIM — discover selectors:

Start with common selectors, then expand if needed. Selector naming is organization-specific — these are examples, not an exhaustive list:

kali(command="for sel in default google selector1 selector2 k1 k2 k3 mail dkim s1 s2 s1024 s2048 smtp protonmail mandrill mxvault; do R=$(dig ${sel}._domainkey.DOMAIN TXT +short 2>/dev/null); [ -n \"$R\" ] && echo \"$sel: $R\"; done")

If no selectors found, try brute-forcing with a wordlist or checking email headers from the domain for the s= tag:

kali(command="swaks --to test@DOMAIN --server MX_HOST 2>&1 | grep -i 'dkim-signature' | grep -oP 's=\\K[^;]+'")

Phase 2 — SMTP Service Analysis (standard+)

SMTP service detection:

scan(tool="nmap", target=MX_HOST, options={"ports": "25,465,587", "flags": "--script smtp-commands,smtp-enum-users,smtp-open-relay,smtp-ntlm-info -sV"})

STARTTLS check:

kali(command="echo 'QUIT' | openssl s_client -connect MX_HOST:25 -starttls smtp -brief 2>/dev/null | head -20")
kali(command="echo 'QUIT' | openssl s_client -connect MX_HOST:587 -starttls smtp -brief 2>/dev/null | head -20")

Check certificate:

kali(command="echo 'QUIT' | openssl s_client -connect MX_HOST:25 -starttls smtp 2>/dev/null | openssl x509 -noout -subject -issuer -dates -fingerprint 2>/dev/null")

Phase 3 — Open Relay Testing (standard+)

Test open relay with swaks:

kali(command="swaks --to test@example.com --from spoofed@DOMAIN --server MX_HOST --timeout 10 2>&1 | tail -20")

If the mail is accepted for delivery to an external domain, this is a Critical finding.


Phase 4 — Spoofing Resilience (standard+)

Test email spoofing:

kali(command="swaks --to real-user@DOMAIN --from ceo@DOMAIN --server MX_HOST --header 'Subject: Test Spoofing Resilience' --body 'This is a spoofing test.' --timeout 10 2>&1 | tail -20")

Test from external server (bypasses internal relay):

kali(command="swaks --to real-user@DOMAIN --from ceo@DOMAIN --header 'Subject: External Spoof Test' --body 'External spoofing test.' --timeout 10 2>&1 | tail -20")

Phase 5 — User Enumeration (thorough)

SMTP user enumeration:

kali(command="smtp-user-enum -M VRFY -U /usr/share/seclists/Usernames/top-usernames-shortlist.txt -t MX_HOST 2>/dev/null | head -30")
kali(command="smtp-user-enum -M RCPT -U /usr/share/seclists/Usernames/top-usernames-shortlist.txt -D DOMAIN -t MX_HOST 2>/dev/null | head -30")

Phase 6 — MTA-STS Policy Check (standard+)

Fetch MTA-STS policy:

http(action="request", url="https://mta-sts.DOMAIN/.well-known/mta-sts.txt", method="GET")

Verify:

  • Policy mode: enforce, testing, or none
  • MX entries match actual MX records
  • max_age is reasonable (86400+)

Phase 7 — Report & Wrap-Up

  1. Call report(action="diagram", data={...}) with email infrastructure:
flowchart TD
    Sender["External Sender"] --> DNS["DNS Lookup"]
    DNS --> SPF["SPF: v=spf1 ... -all"]
    DNS --> DKIM["DKIM: selector._domainkey"]
    DNS --> DMARC["DMARC: p=reject"]
    Sender --> MX["MX: mail.domain.com"]
    MX --> TLS["STARTTLS: TLS 1.2+"]
    MX --> Filter["Spam/Phishing Filter"]
    Filter --> Inbox["User Inbox"]
    MX --> MTASTS["MTA-STS: enforce"]
  1. Call report(action="note", data={...}) with email security summary:
Email Security Assessment Summary:
  Domain:          [domain]
  Mail provider:   [provider]
  SPF:             [status and policy]
  DKIM:            [status, selectors found]
  DMARC:           [status, policy, reporting]
  STARTTLS:        [yes/no, TLS version]
  MTA-STS:         [mode]
  Open relay:      [yes/no]
  Spoofing:        [resilient/vulnerable]
  User enumeration: [possible/blocked]
  1. Call session(action="complete", options={...}) with summary

Chaining Other Skills

SkillWhen to invoke
/osintEmail addresses discovered — expand OSINT reconnaissance
/credential-auditSMTP credentials needed — test authentication
/ssl-tls-auditSTARTTLS weaknesses found — deep TLS assessment
/gh-exportWhen user asks to file GitHub issues

Rules

  • session(action="start", options={...}) is mandatory — never run any other tool before it
  • Batch independent DNS lookups — SPF, DKIM, DMARC, MTA-STS can all run in parallel
  • Test spoofing carefully — only send test emails to authorized addresses
  • Call report(action="finding", data={...}) for every confirmed weakness — include the DNS record and specific misconfiguration
  • SPF + DKIM + DMARC must all be present — missing any one is a finding
  • Use report(action="note", data={...}) liberally — document DNS records and analysis decisions
  • Never fabricate findings — only report what tool output confirms
  • Mermaid syntax rules: use flowchart TD, quote labels, no em-dashes, short alphanumeric node IDs
  • Call session(action="stop_kali") at the end if kali(command=...) was used

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Exploit pervasive logical flaws in Multi-Factor Authentication (MFA/2FA) implementations to bypass the secondary authentication challenge entirely. Techniques include response manipulation, referal spoofing, token reuse, and predictable backup codes.

日本語の概要は準備中です。原文の説明を表示しています。

ShulkwiSEC/bb-huge242026年7月11日 更新

401/403 bypass playbook. Use when encountering access-denied responses on admin panels, API endpoints, or restricted paths. Covers path manipulation, HTTP method tampering, header injection, protocol downgrade, and automated bypass tools.

日本語の概要は準備中です。原文の説明を表示しています。

ShulkwiSEC/bb-huge242026年7月11日 更新

Complete PortSwigger deep-dive with exact payloads for every lab variant including zero-day techniques

日本語の概要は準備中です。原文の説明を表示しています。

ShulkwiSEC/bb-huge242026年7月11日 更新

Active Directory ACL abuse playbook. Use when exploiting misconfigured AD permissions including GenericAll, WriteDACL, DCSync rights, shadow credentials, LAPS reading, GPO abuse, and BloodHound-guided attack paths.

日本語の概要は準備中です。原文の説明を表示しています。

ShulkwiSEC/bb-huge242026年7月11日 更新

Execute AS-REP Roasting to extract and crack the NTLM hashes of Active Directory user accounts that have the "Do not require Kerberos preauthentication" flag explicitly enabled. This attack generates a recoverable Ticket Granting Ticket (TGT) without requiring the attacker to authenticate first.

日本語の概要は準備中です。原文の説明を表示しています。

ShulkwiSEC/bb-huge242026年7月11日 更新

AD Certificate Services attack playbook. Use when targeting misconfigured AD CS for privilege escalation via ESC1-ESC13 template abuse, NTLM relay to enrollment, CA officer abuse, and certificate-based persistence.

日本語の概要は準備中です。原文の説明を表示しています。

ShulkwiSEC/bb-huge242026年7月11日 更新

ShulkwiSEC のスキルをすべて見る

このスキルの問題を報告する