cumakurt/mailt
GitHub: cumakurt/mailt
MailT 是一个邮件生态系统攻击面评估框架,通过侦察、绕过、利用、证明、报告五阶段流程全面评估目标邮件域名的安全性。
Stars: 11 | Forks: 3
# MailT — 邮件生态系统攻击面框架
**开发者:[Cuma KURT](https://www.linkedin.com/in/cuma-kurt-34414917/)** — cumakurt@gmail.com
**GitHub:** [https://github.com/cumakurt/mailt](https://github.com/cumakurt/mailt)
针对目标邮件域名的邮件安全性和攻击性评估:**侦察 → 绕过 → 利用 → 证明 → 报告**。支持 DNS(MX、SPF、DKIM、DMARC、BIMI)、**RBL/DNSBL 黑名单检查**(SMTP IP 信誉)、SMTP/TLS、POP3、IMAP、Webmail 发现,以及可选的漏洞利用/PoC 模块。CVSS v3.1 和 MITRE ATT&CK 映射。

## 环境要求
- Python 3.10+
- [dnspython](https://www.dnspython.org/)(参见 `requirements.txt`)
MailT 在运行前会检查 `dnspython` 是否可用;如果缺失,则打印警告并退出。
## 安装
```
python3 -m venv .venv
.venv/bin/activate
pip install -r requirements.txt
```
如果 `python3 mailt.py --help` 显示空白屏幕,请使用无缓冲输出:`python3 -u mailt.py --help`。

## 用法
```
# 显示帮助
python3 mailt.py --help
# 完整扫描(安全模式):DNS + SMTP + 邮件生态系统(POP3/IMAP/Webmail 发现)
python3 mailt.py --target example.com
# 详细输出
python3 mailt.py --target example.com --verbose
# 攻击模式(exploit/PoC):需要同时启用两个标志
python3 mailt.py --target example.com --attack-mode --i-understand-the-risks
```
**注意:** 如果不同时提供 `--attack-mode` 和 `--i-understand-the-risks`,则不会运行任何暴力破解、认证探测、漏洞利用或注入代码。
## 基于用户的测试(凭证感知)
当提供测试邮箱的电子邮件和密码时,MailT 会运行**凭证感知**测试,以评估账户被入侵时的风险:SMTP AUTH、POP3、IMAP 上的凭证复用;TLS/明文认证风险;已认证的发件人/显示名称 PoC。仅在**授权**的测试账户上使用。
```
# 凭据感知:相同的电子邮件/密码在 SMTP AUTH、POP3、IMAP 上进行测试
python3 mailt.py --target example.com --email testuser@example.com --password "testpass"
```
**注意:** `--email` 和 `--password` 必须同时提供。不读取邮件内容;不进行数据外泄;不进行持久性更改。PoC 邮件(已认证欺骗)仅发送到测试账户本身。
## 输出和报告
```
# 输出目录(默认:reports/)
python3 mailt.py --target example.com --output-dir /tmp/reports
python3 mailt.py --target example.com -o ./out
# 报告格式:html(默认)、json、markdown 或全部
python3 mailt.py --target example.com --format json
python3 mailt.py --target example.com --format all
# 静默模式:仅输出最终摘要
python3 mailt.py --target example.com --quiet
# 记录到文件
python3 mailt.py --target example.com --log-file mailt.log
```
## 超时和配置
```
# 全局扫描超时(秒)
python3 mailt.py --target example.com --timeout 300
# DNS 和 SMTP 超时
python3 mailt.py --target example.com --dns-timeout 5 --smtp-timeout 10
# 配置文件(JSON);CLI 覆盖配置和环境变量
python3 mailt.py --target example.com --config mailt.json
```
## 配置(环境变量和配置文件)
环境变量(可选):`MAILT_VERBOSE`、`MAILT_OUTPUT_DIR`、`MAILT_FORMAT`、`MAILT_QUIET`、`MAILT_LOG_FILE`、`MAILT_TIMEOUT`、`MAILT_DNS_TIMEOUT`、`MAILT_SMTP_TIMEOUT`。配置文件(JSON)键:`verbose`、`output_dir`、`format`、`quiet`、`log_file`、`timeout`、`dns_timeout`、`smtp_timeout`。优先级:CLI > 配置文件 > 环境变量。
## 手动指定服务器主机(覆盖 MX 发现)
```
# 手动指定 SMTP 服务器(主机名或 IP)
python3 mailt.py --target example.com --smtp mail.example.com
# 手动指定 POP3 和 IMAP 服务器
python3 mailt.py --target example.com --pop3 pop.example.com --imap imap.example.com
# 将 SMTP、POP3 和 IMAP 设置为同一主机(如果指定了 --smtp/--pop3/--imap,则 --all 将被覆盖)
python3 mailt.py --target example.com --all 192.168.1.10
```
## 退出码
- **0** — 扫描成功完成(无步骤错误)。
- **1** — 验证或依赖项错误(例如无效的 `--target`、缺少 dnspython)。
- **2** — 扫描失败(一个或多个步骤失败或超时)。
## 运行模式
### 安全模式(默认)
- **发现:** MX、SPF、DKIM、DMARC、BIMI、PTR;**RBL/DNSBL 黑名单检查**(SMTP IP 针对 Spamhaus、Spamcop、SORBS、Barracuda、CBL、PSBL、UCEPROTECT 等进行测试);SMTP/POP3/IMAP 端口和 Webmail 指纹。
- **配置分析:** SPF 绕过/子域名、TLS 证书、Banner、网关检测。
- **被动检查:** 开放中继探测(仅响应码)、Catch-all、STARTTLS、TLS 版本/密码套件。
- **邮件生态系统:** 协议面(25/465/587、110/995、143/993)、POP3/IMAP 安全性(明文 vs TLS)、Webmail 指纹和安全性(HTTPS、Cookie、CSP)、账户接管链关联、DoS/资源分析(NOOP/IDLE)。
不涉及凭证、邮件投递或滥用。
### 攻击模式(显式选择)
仅当同时设置 `--attack-mode` 和 `--i-understand-the-risks` 时:
- **漏洞利用/PoC 模块:** 开放中继(外部→外部、RFC 测试域名)、SPF/DMARC 欺骗、显示名称欺骗、AUTH 暴力破解模拟(3-5 次虚拟尝试)、内部信任 PoC、SMTP 走私 PoC、跨协议凭证复用。
- **受控认证探测:** POP3/IMAP 使用虚拟用户名/密码进行 3-5 次尝试;速率限制和锁定检测。
- **Webmail:** 有限的登录尝试以检查错误消息差异和速率限制。
仅使用 RFC 测试域名(例如 `example.net`、`example.org`)和测试邮箱(`mailt-poc@example.org`)。不涉及真实收件人、垃圾邮件或恶意软件。
## 输出
报告写入 `reports/`(或 `--output-dir`)。格式:`--format html|json|markdown|all`。每个报告文件名包含 UTC 时间戳(`YYYYMMDD_HHMMSS`),因此连续扫描不会覆盖同一文件。

- **HTML 报告:** `mailt_report__.html` — 执行摘要、范围、扫描结果(DNS/SMTP 数据)、邮件生态系统、**RBL/DNSBL 黑名单结果**(按 IP、按 RBL 状态和信誉评分)、DKIM 选择器、SPF 绕过、开放中继摘要、发现项、风险矩阵、MITRE ATT&CK、行动计划。
- **JSON 报告:** `mailt_report__.json` — 发现项、摘要、DNS/SMTP 摘要、**rbl_check**(完整 RBL 结果);适用于 CI/自动化。
- **Markdown 报告:** `mailt_report__.md` — 人类可读摘要、**RBL/DNSBL 结果**表格和发现项表格。
如果某个步骤失败(例如 DNS 超时),扫描将继续;错误会被记录并报告。使用退出码 2 在脚本中检测扫描失败。
## 进度输出
- 开始时显示总步骤数和编号列表(除非使用 `--quiet`)。
- 每个步骤:`[当前/总数] 步骤名称(已用秒)— X% 完成,剩余 N 步`
- 使用 `--verbose` 时:每个步骤后显示简短结果(例如 `通过:2 条 MX 记录`,`smtp_25、pop3_110 开放`)。
- 最终摘要:总时间和步骤数。使用 `--quiet` 时:仅显示一行完成消息。
## RBL / DNSBL 黑名单检查
**默认启用。** SMTP IP 地址(来自 MX 记录,以及如果提供的 `--smtp` 或 `--all`)使用**纯被动 DNS**(无第三方 API 或 Web 爬取)针对全局 DNS 黑名单(RBL/DNSBL)进行测试。
- **测试的 IP:** 所有 MX 主机名解析为 IPv4/IPv6;如果设置了 `--smtp` 或 `--all`,则包含该主机。每个唯一 IP 针对每个 RBL 区域进行查询。
- **RBL 区域:** Spamhaus ZEN、Spamcop、SORBS、Barracuda、CBL、PSBL、UCEPROTECT L1、Spamhaus SBL/XBL(`dns_checks/rbl_check.py` 中的模块化列表)。
- **每个黑名单结果:** 每个 IP 在每个区域中获得结果:已列出 / 未列出 / 超时 / 超时和 DNS 故障被安全处理(无误报)。
- **信誉评分:** 每个 IP 的评分为 0.0(良好)到 1.0(不良),基于列出该 IP 的 RBL 比例。在报告的 **RBL/DNSBL 黑名单结果**部分中报告。
- **信息安全解读:** 当 IP 被列入时提出发现项(信誉滥用、被入侵中继风险);注明与投递失败和接收方 DMARC/SPF 接受的关联。
## 项目结构
```
mailt/
├── mailt.py # Entry point (CLI: --target, --output-dir, --format, --quiet, etc.)
├── core/ # Scanner, context, utils, progress, config, attack_mode
├── dns_checks/ # DNS checks: MX, SPF, DKIM, DMARC, BIMI, SPF bypass, RBL/DNSBL (used by scanner)
├── smtp/ # SMTP enum, STARTTLS, TLS, open relay, gateway detection
│ ├── mail_service_discovery # SMTP/POP3/IMAP/Webmail port + banner
│ ├── pop3_security # POP3/POP3S (SAFE + ATTACK auth probe)
│ ├── imap_security # IMAP/IMAPS (SAFE + ATTACK login probe)
│ ├── webmail_fingerprint # Webmail product/version
│ ├── webmail_security # HTTPS, cookies, CSP; ATTACK: login probe
│ ├── cross_protocol_attack # ATTACK: credential reuse across SMTP/POP3/IMAP
│ ├── mail_account_takeover_chain # Chained risk (POP3/IMAP/webmail)
│ ├── mail_dos_analysis # NOOP/IDLE; ATTACK: low-freq slow probe
│ └── *_exploit.py / *_poc.py # ATTACK MODE only
├── analysis/ # Findings, CVSS, MITRE
├── reporting/ # HTML, JSON, Markdown reports
├── data/ # mitre_attack.json, cvss_metrics.json
├── img/ # Screenshots and images (1.png, 2.png, 3.png)
├── requirements.txt
└── LICENSE
```
## 红线(绝不执行)
- 不发送真实垃圾邮件。
- 不使用真实收件人地址。
- 不涉及恶意软件或凭证转储。
- 不对目标系统进行持久性更改。
仅在您**授权**测试的域名上使用。
## 作者
**Cuma KURT**
- 电子邮件:cumakurt@gmail.com
- LinkedIn:[linkedin.com/in/cuma-kurt-34414917](https://www.linkedin.com/in/cuma-kurt-34414917/)
- GitHub:[github.com/cumakurt/mailt](https://github.com/cumakurt/mailt)
## GitHub
仓库:[github.com/cumakurt/mailt](https://github.com/cumakurt/mailt)
```
git clone https://github.com/cumakurt/mailt.git
cd mailt
python3 -m venv .venv && .venv/bin/activate
pip install -r requirements.txt
python3 mailt.py --help
```
## 许可证
本项目采用 **GNU 通用公共许可证 v3.0 或更高版本(GPL-3.0-or-later)** 授权。完整文本请参阅 [LICENSE](LICENSE)。
请负责任地仅在授权的渗透测试和安全评估范围内使用。
标签:BIMI, CVSS, DKIM, DMARC, DNSBL, DNS安全, IMAP, IP 地址批量处理, MITREATT&CK, MX记录, PoC, POP3, Python安全工具, RBL, SMTP, SPF, TLS, Webmail发现, 二进制发布, 凭据重用风险, 安全评估框架, 密码管理, 开源工具, 插件系统, 攻击面框架, 暴力破解, 认证测试, 邮件协议审计, 邮件安全, 邮件服务器安全, 邮件渗透测试框架, 邮件生态, 邮件系统评估, 防御工具, 防御绕过, 黑名单检查