能力值:
( LV2,RANK:10 )
|
-
-
2 楼
用服务拉起前台进程就好了嘛, 很多过uac就这样做的,常规方式
CreateProcessAsUser
是对的,
最后于 2018-11-12 15:07
被MaMy编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
用服务启动进程不行么?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
MaMy
用服务拉起前台进程就好了嘛,很多过uac就这样做的,常规方式
CreateProcessAsUser
是对的,
不行啊,拉起来后进程是起来了,但是界面无法出来,我们前台是个托盘程序,这样拉起后点击没反应,应该是被UAC卡住了
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
thisisroot
用服务启动进程不行么?
通过CreateProcessAsUser启动,进程倒是能起来,但是界面弹不出来啊
|
能力值:
( LV9,RANK:280 )
|
-
-
6 楼
前台别要这么高权限不就好了 高权限操作让后台进程做
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
hzqst
前台别要这么高权限不就好了
高权限操作让后台进程做
但是SYSTEM用户进程拉起的就是高权限的,所以我也像上面通过获取explorer进程令牌方式启动和explorer权限一样的前台程序,但是失败了。现在主要是启动方式,要么会被禁掉,要么界面弹不出来。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
下一个奇迹
但是SYSTEM用户进程拉起的就是高权限的,所以我也像上面通过获取explorer进程令牌方式启动和explorer权限一样的前台程序,但是失败了。现在主要是启动方式,要么会被禁掉,要么界面弹不出来。
啧,高权限的进程是可以以低权限启动进程的,浏览器不就是最好的例子么
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
下一个奇迹
通过CreateProcessAsUser启动,进程倒是能起来,但是界面弹不出来啊
晚上回家不忘记的话,发你个代码- -好多年前写的了
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
Thead
啧,高权限的进程是可以以低权限启动进程的,浏览器不就是最好的例子么
我就试过在服务里通过获取explorer令牌以低权限启动,但是一直报错
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
Process Hacker有个以指定账户运行程序的功能,那应该是你想要的
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
穿透Session 0 隔离
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
1.获取explorer的token
获取用户token,再复制; 2.复制token后直接CreateEnvironmentBlock即可,普通用户权限无需SetTokenInformation;
获取admin权限的话: 1.GetCurrentProcess; 2.OpenProcessToken; 3.DuplicateTokenEx,注意要用
MAXIMUM_ALLOWED
权限去复制
; 4.SetTokenInformation; 5.CreateProcessAsUser,注意需要指定可交互的窗口站"WinSta0\Default";
最后于 2019-4-3 14:06
被wx_空气编辑
,原因:
|
能力值:
( LV12,RANK:760 )
|
-
-
15 楼
提权其实可以不弹框,只要有cpuz就好
|
能力值:
( LV6,RANK:80 )
|
-
-
16 楼
get!
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
本人使用以下代码来获取 explorer 的 token:
BOOL WINAPI GetShellProcessToken(HANDLE *phToken)
{
HWND hwndShell = GetShellWindow();
BOOL bResult = IsWindow(hwndShell);
if (bResult)
{
DWORD dwProcessId = 0;
GetWindowThreadProcessId(hwndShell, &dwProcessId);
if (dwProcessId > 0)
{
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwProcessId);
if (hProcess != nullptr)
{
bResult = OpenProcessToken(hProcess, TOKEN_QUERY, phToken);
CloseHandle(hProcess);
}
}
}
return bResult;
}
|
|
|