본문으로 건너뛰기
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

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

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-huge232026년 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-huge232026년 7월 11일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ShulkwiSEC/bb-huge232026년 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-huge232026년 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-huge232026년 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-huge232026년 7월 11일 업데이트

ShulkwiSEC의 스킬 모두 보기

이 스킬의 문제 신고