1
成功調用都LogonUser的和ImpersonateLoggedOnUser它後不會出現我的進程正在運行,爲新的用戶...ImpersonateLoggedOnUser不會出現工作
系統(「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");
}
當我使用CreateProcessAsUser啓動cmd.exe時,它仍然失敗,當我鍵入「whoami」。無論如何強迫啓動的流程承擔我想要的安全屬性? – 2009-10-12 01:56:02
我剛剛嘗試使用CreateProcessWithLogonW進行快速測試,它的工作方式與預期相同 - whoami提供了在不是原始用戶的情況下啓動進程的帳戶的用戶名。儘管看起來不太可能,但它可能與環境塊或某些事情有關。也許你可以發佈你的CreateProcessAsUser代碼。 – 2009-10-13 15:50:40