【技术分享】使用PetitPotam代替Printerbug

VSole2021-08-13 16:03:18

前言

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

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

原理

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

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

细节

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并未对外开放

在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的环境,默认在网络安全:可匿名访问的命名管道中有三个netlogonsamrlsarpc。因此在这个环境下是可以匿名触发的

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


利用

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

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

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

2、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"

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

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

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

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

3、结合Net-ntlmV1进行利用

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

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

4、结合命名管道的模拟

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

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

 

引用

[MS-EFSR]: Encrypting File System Remote (EFSRPC) Protocol–PetitPotam

pipe
本作品采用《CC 协议》,转载必须注明作者和本文链接
Colonial Pipeline勒索软件攻击过去一年,该事件是近年来影响最大的网络攻击案例之一,名为DarkSide的威胁行为者使用一个被泄露的VPN口令来访问美国最大的管道运营商的内部系统。在攻击期间,当黑客开始加密该组织的数据时,Colonial Pipeline做出回应,将其系统离线以阻止威胁的传播,暂时停止了管道运营并最终支付了440万美元的赎金。
Web 托管公司 IONOS 的 Max Kellermann 在多次收到客户投诉日志服务器上的日志文件损坏之后展开了调查,发现 Linux 内核存在一个高危漏洞,与数年前曝出的 DirtyCow 提权漏洞类似,但更容易利用。他将该漏洞命名为 dirty pipe。dirty pipe 存在于 Linux 5.8 之后的版本中,是未初始化变量导致的,它允许任何人向任意文件写入数据,即使文件是 O_
Microsoft发布安全公告,官方已于2022年4月15日修复了一个存在于Azure Data Factory和Azure Synapse pipelines中的远程命令执行漏洞。漏洞编号:CVE-2022-29972,漏洞威胁等级:严重
数据库注入提权总结
2022-08-10 15:52:54
首先,不能直接将该函数注入子查询中,因为 Oracle 不支持堆叠查询 。其次,只有数据库管理员才能使用 DBMS_LOCK 包。在 Oracle PL/SQL 中有一种更好的办法,可以使用下面的指令以内联方式注入延迟:dbms_pipe.receive_messageDBMS_PIPE.RECEIVE_MESSAGE() 函数将为从 RDS 管道返回的数据等待 10 秒。
近期,包括Colonial Pipeline和JBS Foods在内的大型关键基础设施和企业均遭遇了勒索软件攻击,黑客接管了这些组织的计算机系统并要求支付高额赎金来解密数据。虽然拜登政府敦促企业认真对待勒索软件威胁并更新其系统来保护自己,但是这些攻击几乎每天都威胁着我们所有人。
在本文中,我们从技术角度为读者深入分析勒索软件Darkside。
针对中东地区电信服务提供商的网络攻击是利用名为 HTTPSnoop 和 PipeSnoop 的新型恶意软件实施的,这些恶意软件允许网络犯罪分子远程控制这些感染了这种恶意软件的设备。
5月7日,美国最大燃油运输管道商Colonial Pipeline公司因受勒索软件攻击,被迫临时关闭其美国东部沿海各州供油的关键燃油网络。为遏制威胁,公司已主动切断部分网络连接,暂停所有管道运营。为解除对燃料运输的各种限制,保障石油产品的公路运输,美国政府首次因网络攻击宣布18个州进入紧急状态。此次网络攻击是美国历史上针对公共事业的最大攻击之一,暴露美国能源安全行业的网络安全脆弱性,凸显了保护关键
从“太阳风”(SolarWinds)供应链攻击事件到克罗尼尔(Colonial Pipeline)网络勒索攻击事件,都使美国拜登政府以网络安全事件调查与处置为牵引,逐步健全相关安全机构,出台一系列安全政策。
VSole
网络安全专家