【网络安全】域渗透之完全绕开安全组件

223 阅读5分钟

Summary

实战与靶机环境差别很大,内网的微软ATP组件、Fortinet 与CS(CrowdStrike)的Falcon安全组件过于强大,很多工具都是根本无法使用的,免杀后会有各种问题.尤其是CS,不愧为北美最强EDR。

本地免去了隐蔽隧道联通外网搭建的过程,简单了一些,因为微软漏洞一直有专门的TSG打补丁,所以单独靠CVE难比登天。本文就这段时间的行动与思考做一个记录,Rspect!

Information collection

首先是常规的一些用户权限,域内环境等信息获取。测试账户是User Domain.

主机信息获取
systeminfo #在这里就遇到了问题,按理说域内主机打的KB都会记录在里面,但是我发现里面仅有5个补丁,说明windwos补丁是由DC与安全组件统一去打,并不会记录在域内的用户主机上.
tasklist #看到防护组件是falcon与Defender ATP,当然这属于多次一举,事先已经得到这些信息。
角色网络域信息
ipconfig /all #看到主机名与IP地址信息,DNS后显示域名xxx.org存在,确定Domain name.
net view /domain #直接报错。
net time /domain #显示出了domain,再通过nslookup查到IP地址,确认此账户的DC name。
用户信息
whoami /all # 查看一下权限,确认能不呢启动windows系统进程,powershell等。
net group "Domain Admins" /all #查询域管理员账户,这个比较关键,为后面DESync做铺垫
net group "Enterprise Admins" /domain #查询管理员用户组
net group "Domain Controllers" /domain #查询域控制器,查到光中国就55个域,着实是大公司了。
SPN查询服务信息
setspn -q */* | findstr "xxx" #查询服务信息,主要啊是去搜了LDAP,共享主机和管道的开启状态。

PotitPetam初探

查资料发现PotitPetam是Printerbug在被大范围修复后的又一攻击渠道,最开始利用EfsRpcOpenFileRaw函数对其他主机做身份验证,微软虽然在后面的补丁中尝试修复问题,但是新出现的EfsRpc函数仍可以利用,需要用它来获取NTLM-Hash,简单看了下原理,似懂非懂。此次的攻击由于ADCS限制,不管是Relay还是约束委派都无法直接利用,且会被falcon监控到。所以尝试使用一种凭证降级的攻击利用方法,先获取凭证再说。整个Attack Pocess就像Web中的MITM(中间人攻击),必须在域内的一台主机中开启监听网卡,然后通过MS-EFSR向靶机发送验证来获取关键的DC凭证,所以必须知道一台域内通过NTLM认证可连接的DC主机,并且可以通过lsarpc或者其他pipe联通。不然无法进行PotitPetam,而且由于最新的DC管理默认NTLMv2认证,所以需要进行降级,去掉ssp。

【相关学习文档】

1、网络安全学习路线
2、电子书籍(白帽子)
3、安全大厂内部视频
4、100份src文档
5、常见安全面试题
6、ctf大赛经典题目解析
7、全套工具包
8、应急响应笔记

Step1:

攻击机就选定为这台测试机,客户机使用本机计算机,他们虽然在不同的子域内,但是彼此是相互可以联通的,DC1为本地机的域1,DC2为本地机的DNS备选域2。以防不测。在测试机进行PotitPetam。首先查看本地Lan Manage身份管理,它会决定和客户端与DC的身份验证形式,默认是未定义的,如果是NTLMv2验证形式,在后续抓取口令的时候就需要进行降级处理;其次查看匿名访问的命名管道,默认是空的,如果要使用的话必须得有一个凭据,还好有

Step2:

这儿利用PetitPotam的方式还是蛮多,gihub有现成的脚本,也可以调用EFSRPC函数去做连接,如果测试环境没有开lsarpc的话还是直接调用函数吧,域用户与域管IP,如图:

通过EfRPEncryptFileSrv() EFSRPC/lsarpc smb管道,like:

>> request = EfsRpcEncryptFileSrv()
>> request['FileName'] = '\\%s\path\test.txt\x00' %listener
#request['Flag'] = 0
#request.dump()

Step3:

在另一台DC3中做responder监听,ROOT权限才可开启,如果没有root权限的话,需要使用别的工具了。可以看到已经成功抓取了NTLMv1-ssp的域管凭证,如图:

Step4:

接下来就是NTLM降级与取消ssp处理了,有两种方便的方法,一种是直接在responder中修改challeng的值为1122334455667788,另一种是使用在线网站或工具解密NTLM Cracking.like:

Step5:

到这儿就已经拥有了DC中一个用户的凭证哈希,可以将Hash拖出来跑hashcat或者彩虹表了,不过一般DC的密码都是强密码,16位强密码破解起来难度极大,就算做了字典表也得跑很久,所以这儿再使用NTLM Relay的方式尝试。

Step6:

DCSync,使用Impacket套件中的secretdump.py去横向移动获取更多的域管理员和域用户的Hash值,将之前获取到的DC凭证带入,加上域用户名:

Step7:

PTH,哈希传递我们使用Impacket中的smbclient.py,这是一个共享smb管道,将DC管理员(权限最高)的哈希值与用户名放入,执行成功,就可以增删改查文件了。如图:

使用提权工具提权其他DC的其他非管理员用户,查看使用过smb的用户,替换哈希,提升权限,这里利用incognito2尝试了一台域内测试机,抱着试试看的态度VS改了一下特征值,神奇的是竟然没有产生告警,有点奇怪。

到这儿任务已经完成,存在PetitPotam问题。且可以成功利用获取DC信息,且整个过程绕过安全组件。