使用PetitPotam代替Printerbug - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

使用PetitPotam代替Printerbug

中安网星 行业 2021-08-06 15:46:02
283473
收藏

导语:上帝关了一扇门, 必定会再为你打开另一扇窗

0x00 前言

Printerbug使得拥有控制域用户/计算机的攻击者可以指定域内的一台服务器,并使其对攻击者选择的目标进行身份验证。虽然不是一个微软承认的漏洞,但是跟Net-ntlmV1,非约束委派,NTLM_Relay,命名管道模拟这些手法的结合可以用来域内提权,本地提权,跨域等等利用。

遗憾的是,在PrintNightmare爆发之后,很多企业会选择关闭spoolss服务,使得Printerbug失效。在Printerbug逐渐失效的今天,PetitPotam来了,他也可以指定域内的一台服务器,并使其对攻击者选择的目标进行身份验证。而且在低版本(16以下)的情况底下,可以匿名触发。image-20210723133443732

image-20210723133443732.png

0x01 原理

MS-EFSR里面有个函数EfsRpcOpenFileRaw(Opnum 0)

long EfsRpcOpenFileRaw(
   [in] handle_t binding_h,
   [out] PEXIMPORT_CONTEXT_HANDLE* hContext,
   [in, string] wchar_t* FileName,
   [in] long Flags
 );

他的作用是打开服务器上的加密对象以进行备份或还原,服务器上的加密对象由FileName 参数指定,FileName的类型是UncPath。

当指定格式为\\IP\C$的时候,lsass.exe服务就会去访问\\IP\pipe\srvsrv

image-20210723122630735image-20210723122630735.png

指定域内的一台服务器,并使其对攻击者选择的目标(通过修改FileName里面的IP参数)进行身份验证。

0x02 细节

1、通过lsarpc 触发

官方文档里面,MS-EFSR的调用有\pipe\lsarpc和\pipe\efsrpc两种方法,其中

· \pipe\lsarpc的服务器接口必须是UUID [c681d488-d850-11d0-8c52-00c04fd90f7e]

· \pipe\efsrpc的服务器接口必须是UUID [df1941c5-fe89-4e79-bf10-463657acf44d]

在我本地测试发现\pipe\efsrpc并未对外开放

image-20210723134956319.png

image-20210723135023436.png

在PetitPotam的Poc里面有一句注释possible aussi via efsrpc (en changeant d'UUID) mais ce named pipe est moins universel et plus rare que lsarpc ;),翻译过来就是

也可以通过EFSRPC(通过更改UUID),但这种命名管道的通用性不如lsarpc,而且比LSARPC更罕见

所以PetitPotam直接是采用lsarpc的方式触发。

2、低版本可以匿名触发

在08和12的环境,默认在网络安全:可匿名访问的命名管道中有三个netlogon、samr、lsarpc。因此在这个环境下是可以匿名触发的

image-20210723142948143image-20210723142940134image-20210723142948143.png

image-20210723142940134.png

遗憾的是在16以上这个默认就是空了,需要至少一个域内凭据。

image-20210723143020713.pngimage-20210723143020713

0x03 利用

这篇文章的主题是使用PetitPotam代替Printerbug,因此这个利用同时也是Printerbug的利用。这里顺便梳理复习下Printerbug的利用。

1、结合 CVE-2019-1040,NTLM_Relay到LDAP

详情见CVE-2019-1040,这里我们可以将触发源从Printerbug换成PetitPotam

image-20210723160126391.png

image-202107231601263912、Relay到HTTP

不同于LDAP是协商签名的,发起的协议如果是smb就需要修改Flag位,到HTTP的NTLM认证是不签名的。前段时间比较火的ADCS刚好是http接口,又接受ntlm认证,我们可以利用PetitPotam把域控机器用户relay到ADCS里面申请一个域控证书,再用这个证书进行kerberos认证。注意这里如果是域控要指定模板为DomainController

python3 ntlmrelayx.py -t https://192.168.12.201/Certsrv/certfnsh.asp -smb2support --adcs --template "DomainController"

image-20210723152955333image-20210723152955333.png

2、结合非约束委派的利用

当一台机器机配置了非约束委派之后,任何用户通过网络认证访问这台主机,配置的非约束委派的机器都能拿到这个用户的TGT票据。

当我们拿到了一台非约束委派的机器,只要诱导别人来访问这台机器就可以拿到那个用户的TGT,在这之前我们一般用printerbug来触发,在这里我们可以用PetitPotamlai来触发。

image-20210723153914598.pngimage-20210723153914598

image-20210723153925554image-20210723153925554.png

域内默认所有域控都是非约束委派,因此这种利用还可用于跨域。

3、结合Net-ntlmV1进行利用

很多企业由于历史原因,会导致LAN身份验证级别配置不当,攻击者可以将Net-Ntlm降级为V1

image-20210723152901777.pngimage-20210723152901777

我们在Responder里面把Challeng设置为1122334455667788,就可以将Net-ntlm V1解密为ntlm hash

image-20210723154448945image-20210723154448945.png

image-20210723154533643.pngimage-20210723154545936.png

4、结合命名管道的模拟

在这之前,我们利用了printerbug放出了pipePotato漏洞。详情见pipePotato:一种新型的通用提权漏洞

在PetitPotam出来的时候,发现这个RPC也会有之前pipePotato的问题。

image-20210723151229066.png

image-20210723151241934image-20210723153814603image-20210723151241934.png

image-20210723153814603.png

0x04 引用


如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务