我建了个工程,打算用来注入dll,但是在注入的时候调用CreateRemoteThread发现错误码5,既是拒绝访问。应该是权限问题。权限不熟,所以就网上找了几个,但是都不行,很是好奇。求高手指教下,下面的提高权限函数错在哪里了。我是用exe注入dll,不是用dll再注入dll。
BOOL UpLevel(void)
{
BOOL fOk = FALSE;
HANDLE hToken;
DWORD errorCode = GetLastError();
TCHAR code[123];
if (OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS , &hToken))
{
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount = 1;
LookupPrivilegeValue(NULL, SE_ASSIGNPRIMARYTOKEN_NAME, &tp.Privileges[0].Luid);
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, NULL);
wsprintf(code,TEXT("%d"),errorCode);
MessageBox(NULL,code,NULL,MB_OK);
//这里错误码为0,操作成功
//如果我把下面重复块(原作者这样写的)删掉,Creat那边还是5错误,拒绝访问。
tp.PrivilegeCount = 1;
LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid);
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, NULL);
wsprintf(code,TEXT("%d"),errorCode);
MessageBox(NULL,code,NULL,MB_OK);
//这里错误码为1300,无法提升权限。
fOk = (GetLastError() == ERROR_SUCCESS);
CloseHandle(hToken);
}
return(fOk);
}
[课程]Linux pwn 探索篇!