【发布时间】:2010-12-05 20:15:08
【问题描述】:
成功调用 LogonUser 和 ImpersonateLoggedOnUser 后,我的进程似乎没有以新用户身份运行...
system("whoami");
打印出来: 克里斯-PC\克里斯
什么时候应该: 克里斯-PC\LimitedGuy
有什么我没有调用的函数吗?
我的代码:
if(argc == 6) // impersonate
{
printf("[~] Logging in as %ws\\\\%ws..\n", argv[3], argv[4]);
if(!LogonUser(argv[4], argv[3], argv[5], LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &logonToken))
{
printf("[!] Failed to login as %ws. Error Code: %X\n", argv[4], GetLastError());
return 1;
}
if(!ImpersonateLoggedOnUser(logonToken))
{
printf("[!] ImpersonateLoggedOnUser failed with error code: %X\n", GetLastError());
return 1;
}
LoadUserProfile(logonToken, &plinfo);
system("whoami");
printf("[~] Login successful!\n");
}
【问题讨论】:
标签: c++ winapi login impersonation