freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

PrintNightmare打域控漏洞的一次艰难利用
2024-09-10 00:38:23

一、前言

PrintNightmare这个打域控的漏洞利用中遇到很多坑,从dll加载失败,再到权限校验失败一步一步debug深入分析解决。虽然坑多,但是毕竟能够打域。

二、本地测试

通过使用管理员账号测试远程加载dll发现失败了,但是确实发现系统上dll上传了

0

于是再将dll指向本地,发现了如下报错。

1

三、为什么加载dll失败了

然后使用Promonitor进行监控,到底怎么报了其他程序占用dll文件,从而导致文件无法被加载的问题。

问题就出现在这个调用栈,

2

于是windbg进行直接附加

通过u命令反汇编对应的字节码,寻找到上一个call,bp下断点。

u 0x7ffdee15092b-10 0x7ffdee15092b+10

3

打断点捕获到MoveFileExW函数在移动C:\Windows\System32\spool\drivers\x64\3\x643.dll,

4

https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-movefileexw

然后rax返回0,表示失败了。

5

通过查询资料得知,MoveFileExW移动文件的的要求:

一个文件在打开时使用了 FILE_SHARE_DELETE 标志,MoveFileExW 函数可以移动或重命名该文件,即使文件已经被另一个进程打开。

四、spoolsv.exe如何加载dll的?

通过procmonitor发现在前面确实已经对C:\Windows\System32\spool\drivers\x64\3\x643.dll进行了CreateFile了,而且重复CreateFile,我们来看下是如何打开文件的?

6

还是同样直接下断点打开

发现CreateFile第三个参数的值为1,也就是dwShareMode为1,是以共享读方式FILE_SHARE_REA

# 漏洞 # 渗透测试 # 系统安全 # 内网渗透 # 漏洞分析
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者