1
시스템 ("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"를 입력해도 실패합니다. 거기에 어쨌든 내가 시작한 프로세스가 원하는 보안 속성을 취하도록 강요합니까? –
방금 CreateProcessWithLogonW를 사용하여 빠른 테스트를 시도했는데 예상대로 작동했습니다. whoami는 원래 사용자가 아닌 프로세스가 시작된 계정의 사용자 이름을 제공했습니다. 가능성은 낮지 만 환경 블록이나 그 라인을 따르는 것과 관련이있을 수 있습니다. 어쩌면 CreateProcessAsUser 코드를 게시 할 수 있습니다. –