一、前言
PrintNightmare这个打域控的漏洞利用中遇到很多坑,从dll加载失败,再到权限校验失败一步一步debug深入分析解决。虽然坑多,但是毕竟能够打域。
二、本地测试
通过使用管理员账号测试远程加载dll发现失败了,但是确实发现系统上dll上传了
于是再将dll指向本地,发现了如下报错。
三、为什么加载dll失败了
然后使用Promonitor进行监控,到底怎么报了其他程序占用dll文件,从而导致文件无法被加载的问题。
问题就出现在这个调用栈,
于是windbg进行直接附加
通过u命令反汇编对应的字节码,寻找到上一个call,bp下断点。
u 0x7ffdee15092b-10 0x7ffdee15092b+10
打断点捕获到MoveFileExW函数在移动C:\Windows\System32\spool\drivers\x64\3\x643.dll,
https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-movefileexw
然后rax返回0,表示失败了。
通过查询资料得知,MoveFileExW移动文件的的要求:
一个文件在打开时使用了 FILE_SHARE_DELETE 标志,MoveFileExW 函数可以移动或重命名该文件,即使文件已经被另一个进程打开。
四、spoolsv.exe如何加载dll的?
通过procmonitor发现在前面确实已经对C:\Windows\System32\spool\drivers\x64\3\x643.dll进行了CreateFile了,而且重复CreateFile,我们来看下是如何打开文件的?
还是同样直接下断点打开
发现CreateFile第三个参数的值为1,也就是dwShareMode为1,是以共享读方式FILE_SHARE_REA
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)