加载到spoolsv.exe中的PrintConfig.dll在调用GetUserNameA()时报告未特权的用户名
我正在研究Task Scheduler的与Windows RPC相关的新漏洞。
我已经使用非特权用户(user1
)用我自己的方式覆盖了PrintConfig.dll,并通过开始打印作业(XPS)从spoolsv.exe加载了它。
现在,尽管spoolsv.exe作为SYSTEM进程运行,但我从PrintConfig.dll调用了GetUserNameA()函数,该函数报告了user1
的用户名。
检查文档,显示:
如果当前线程正在模拟另一个客户端,则GetUserName 函数返回线程所在的客户端的用户名 冒充。
因此,我想spoolsv.exe在执行打印作业时冒充user1
?
但是,如果确实如此,为什么我可以从此DLL中创建新用户并使其成为本地管理员?
谢谢!