美文网首页
利用用户账户控制

利用用户账户控制

作者: FallMR | 来源:发表于2017-02-20 21:38 被阅读0次

    手动提升进程的权限:

    首先CreateProcess没有这个选项
    所以我们需要另一个函数:ShellExecuteEx

    先是函数原型:

    ShellExecuteEx(SHELLEXECUTEINFO *pExecInfo);
    

    可以里面只有一个SHELLEXECUTEINFO的结构体
    所以再把结构体放上来:

    typedef struct _SHELLEXECUTEINFO {
        DWORD cbSize;
        ULONG fMask;
        HWND hwnd;
        LPCTSTR lpVerb;
        LPCTSTR lpFile;
        LPCTSTR lpParameters;
        LPCTSTR lpDirectory;
        int nShow;
        HINSTANCE hInstApp;
        LPVOID lpIDList;
        LPCTSTR lpClass;
        HKEY hkeyClass;
        DWORD dwHotKey;
        union {
            HANDLE hIcon;
            HANDLE hMonitor;
        } DUMMYUNIONNAME;
        HANDLE hProcess;
    } SHELLEXECUTEINFO, *LPSHELLEXECUTEINFO;
    

    这里重点在于两个参数:lpVerb和lpFile
    要手动提权的话 前面一个的值一定是runas
    后面一个是可执行文件的路径(注意是PE文件 其他不行的)
    然后就可以看到那个提示的对话框了~

    初始化就直接

    SHELLEXECUTEINFO sei = {sizeof(SHELLEXECUTEINFO)};
    sei.lpVerb = TEXT("runas");
    sei.lpFile = TEXT("cmd.exe");
    sei.nShow = SW_SHOWNORMAL;
    

    相关文章

      网友评论

          本文标题:利用用户账户控制

          本文链接:https://www.haomeiwen.com/subject/mczewttx.html