在修改访问令牌的文章中写到过用AdjustPrivilege开启特权
最近在看某项目的时候看到了这个函数,只需要这个函数就可以开启特权,学习下
下面是这个函数的结构
1 | NTSTATUS RtlAdjustPrivilege |
这个函数在ntdll.dll这个动态链接库,直接通过GetProcAddress得到函数地址
1 |
|
这样就可以直接开启DEBUG权限,会方便很多
权限ID
1 | SeCreateTokenPrivilege 0x2 |
某个进程有提权的toekn,可是没开启,可以通过远程注入shellcode开启特权
RtlAdjustPrivilege调用简单,shellcode也可以很简洁
还是先写一下汇编
1 | .DATA |
这里最后有个小坑点,call rbx后面应该会ret了,但是这个函数执行会覆盖掉函数的返回地址,ret就不知道到什么地方去了,进程就炸了
所以先把返回地址保存到rbp,最后直接jmp rbp就可以
1 | #include<Windows.h> |
现在是没开启DEBUG特权的,注入后打开
现在就打开了