gpt4 book ai didi

security - Win32 : bypassing UAC using user/password

转载 作者:行者123 更新时间:2023-12-01 09:35:14 26 4
gpt4 key购买 nike

我正在寻找一种在不出现 UAC 弹出窗口的情况下提升线程或进程执行权限的方法。运行该进程的用户是管理员用户,我可以使用他的用户名和密码。

我需要这样做以执行一些管理工作,例如重新启动服务并将文件写入系统目录。我的应用程序是远程运行的,没有交互式用户来确认 UAC 对话框。禁用 UAC 不是一种选择。

我尝试过同时使用 LogonUser()ImpersonateLoggedOnUser()CreateProcessAsUser()DuplicateTokenEx() 更好的部分或两天,但无法找出正确的组合,如果有可能的话。


我试过的具体是这样的:

HANDLE token = 0;
LogonUserA(user, NULL, pass, LOGON32_LOGON_NETWORK_CLEARTEXT, LOGON32_PROVIDER_DEFAULT, &token);
HANDLE impToken = 0;
DuplicateToken(token, SecurityImpersonation, &impToken);
ImpersonateLoggedOnUser(impToken);
CreateFileA("C:\\windows\\blabla.dll", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

最后一次调用失败,GetLastError()=1346,“没有提供所需的模拟级别,或者提供的模拟级别无效。”

我做错了什么?
注意 - 这是在 Win2008 R2 上运行的

最佳答案

尝试登录这个或那个用户将无济于事。问题不在于用户,而在于您要求管理员权限的上下文。即使是管理员也必须确认 UAC 提示。

如果您提出的问题是可能的,那将完全击败 UAC 概念。只要 session 是交互式的(并且在 Win7 上,该程序不是来自 Windows 候选列表,例如服务小程序),您就无法绕过提示。

正如其他人所说,通常的解决方案是编写一个服务并让您的交互式应用程序使用标准 IPC 机制(例如命名管道)与该服务对话。但请注意在两端创建 IPC 对象时所需的安全描述符:用户上下文在服务和交互式应用程序中是不同的。

关于security - Win32 : bypassing UAC using user/password,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9298083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com