首页
社区
课程
招聘
[旧帖] [求助]提高权限函数哪里错了 0.00雪花
发表于: 2012-3-24 17:45 1551

[旧帖] [求助]提高权限函数哪里错了 0.00雪花

2012-3-24 17:45
1551
我建了个工程,打算用来注入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);
}

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
一般来说提升到 DEBUG 权限就 OK 了,下面是我以前摆弄的提权到 DEBUG 的代码
bool AdjustProcessTokenPrivilege()
{
     LUID luidTmp;
     HANDLE hToken;
     TOKEN_PRIVILEGES tkp;

     if(!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
     {
         OutputDebugString("AdjustProcessTokenPrivilege OpenProcessToken Failed ! \n");
  
         return false;
     }
  
     if(!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &luidTmp))
     {
         OutputDebugString("AdjustProcessTokenPrivilege LookupPrivilegeValue Failed ! \n");
  
         CloseHandle(hToken);
  
         return FALSE;
     }
  
     tkp.PrivilegeCount = 1;
     tkp.Privileges[0].Luid = luidTmp;
     tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  
     if(!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(tkp), NULL, NULL))
     {
         OutputDebugString("AdjustProcessTokenPrivilege AdjustTokenPrivileges Failed ! \n");
  
         CloseHandle(hToken);
  
         return FALSE;
     }
     return true;
}
2012-3-24 21:44
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼上的提高权限函数,我覆盖了貌似不行。郁闷。

我的是Win7的系统,不知道这个安全权限是否有些不同呢。

dll注入方面,两个主要的函数,提高权限函数、注入dll函数,我都把之前的给删了,用论坛看到的覆盖了,可是不行。有点小郁闷。
2012-3-25 10:55
0
游客
登录 | 注册 方可回帖
返回
//