RtlAdjustPrivilege() 提权函数

RtlAdjustPrivilege(SE_DEBUG_NAME,1,0,NULL);

这玩意是在 NTDLL.DLL 里的一个不为人知的函数,MS没有公开,原因就是这玩意实在是太NB了,以至于不需要任何其他函数的帮助,仅凭这一个函数就可以获得进程ACL的任意权限!

先来看看这个函数的定义(Winehq给出):
NTSTATUS RtlAdjustPrivilege
(
ULONG Privilege,
BOOLEAN Enable,
BOOLEAN CurrentThread,
PBOOLEAN Enabled
)

参数的含义:
Privilege [In] Privilege index to change.
// 所需要的权限名称,可以到 MSDN 查找关于 Process Token & Privilege 内容可以查到

Enable [In] If TRUE, then enable the privilege otherwise disable.
// 如果为True 就是打开相应权限,如果为False 则是关闭相应权限

CurrentThread [In] If TRUE, then enable in calling thread, otherwise process.
// 如果为True 则仅提升当前线程权限,否则提升整个进程的权限

Enabled [Out] Whether privilege was previously enabled or disabled.

权限ID对应表
1.SeCreateTokenPrivilege 0x2
2.SeAssignPrimaryTokenPrivilege 0x3
3.SeLockMemoryPrivilege 0x4
4.SeIncreaseQuotaPrivilege 0x5
5.SeUnsolicitedInputPrivilege 0x0
6.SeMachineAccountPrivilege 0x6
7.SeTcbPrivilege 0x7
8.SeSecurityPrivilege 0x8
9.SeTakeOwnershipPrivilege 0x9
10.SeLoadDriverPrivilege 0xa
11.SeSystemProfilePrivilege 0xb
12.SeSystemtimePrivilege 0xc
13.SeProfileSingleProcessPrivilege 0xd
14.SeIncreaseBasePriorityPrivilege 0xe
15.SeCreatePagefilePrivilege 0xf
16.SeCreatePermanentPrivilege 0x10
17.SeBackupPrivilege 0x11
18.SeRestorePrivilege 0x12
19.SeShutdownPrivilege 0x13
20.SeDebugPrivilege 0x14
21.SeAuditPrivilege 0x15
22.SeSystemEnvironmentPrivilege 0x16
23.SeChangeNotifyPrivilege 0x17
24.SeRemoteShutdownPrivilege 0x18
25.SeUndockPrivilege 0x19
26.SeSyncAgentPrivilege 0x1a
27.SeEnableDelegationPrivilege 0x1b
28.SeManageVolumePrivilege 0x1c
29.SeImpersonatePrivilege 0x1d
30.SeCreateGlobalPrivilege 0x1e
31.SeTrustedCredManAccessPrivilege 0x1f
32.SeRelabelPrivilege 0x20
33.SeIncreaseWorkingSetPrivilege 0x21
34.SeTimeZonePrivilege 0x22
35.SeCreateSymbolicLinkPrivilege 0x23

  • 使用重点

 

HMODULE hDll = ::LoadLibrary("ntdll.dll");
typedef int (* type_RtlAdjustPrivilege)(int, bool, bool, int*);
type_RtlAdjustPrivilege RtlAdjustPrivilege = (type_RtlAdjustPrivilege)GetProcAddress(hDll, "RtlAdjustPrivilege");
RtlAdjustPrivilege(SE_SHUTDOWN_PRIVILEGE, true, true, &nEn);
  • 瞬间关机代码VC++

 

#include <windows.h>const unsigned int SE_SHUTDOWN_PRIVILEGE = 0x13;int main()
{
HMODULE hDll = ::LoadLibrary("ntdll.dll");
typedef int (* type_RtlAdjustPrivilege)(int, bool, bool, int*);
typedef int (* type_ZwShutdownSystem)(int);
type_RtlAdjustPrivilege RtlAdjustPrivilege = (type_RtlAdjustPrivilege)GetProcAddress(hDll, "RtlAdjustPrivilege");
type_ZwShutdownSystem ZwShutdownSystem = (type_ZwShutdownSystem)GetProcAddress(hDll, "ZwShutdownSystem");
int nEn = 0;
int nResult = RtlAdjustPrivilege(SE_SHUTDOWN_PRIVILEGE, true, true, &nEn);
if(nResult == 0x0c000007c)
{
nResult = RtlAdjustPrivilege(SE_SHUTDOWN_PRIVILEGE, true, false, &nEn);
}
nResult = ZwShutdownSystem(2);
FreeLibrary(hDll);
return 0;}

关于返回值也需要特别说明下: 实验了下 提权成功了 但是返回值还是NULL 如果这个时候验证返回值将不准确了 所以成功与否还是只能看后边的打开进程是否成功



作者:HAPPYers
链接:https://www.jianshu.com/p/0ab0349aa9ce
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380899.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

求两个数字的乘积,如果大于0,说明两个数字同号,如果小于0,说明两个数字异号,如果等于0,说明其中一个是0

学了java基础东西&#xff0c;就写了这个编程&#xff0c;求两个数字的乘积&#xff0c;如果大于0&#xff0c;说明两个数字同号&#xff0c;如果小于0&#xff0c;说明两个数字异号&#xff0c;如果等于0&#xff0c;说明其中一个是0 首先程序要求我们输入两个数字&#xff0c…

mysql gtid 开启失败_mysql开启GTID跳过错误的方法【转】

1、数据库版本MySQL> select version()-> ;-------------------------------------------| version() |-------------------------------------------| 5.7.17 |------------------------------------…

处理机流水线------经典五段流水线

文章是在我遇到这部分问题时查找的所有感觉挺好的内容的整合&#xff08;全部是转载的&#xff09; 流水线基础理论就不加了&#xff0c;最新的处理器流水线处理的机制也没有&#xff08;一般以用不到&#xff09;&#xff0c;想了解去随便找个芯片厂商官网下个手册自己查。 这…

mysql 复制用户_MySQL修改复制用户及密码

在生产环境中有时候需要修改复制用户账户的密码&#xff0c;比如密码遗失&#xff0c;或者由于多个不同的复制用户想统一为单独一个复制账户。对于这些操作应尽可能慎重以避免操作不同导致主从不一致而需要进行修复。本文描述了修改复制账户密码以及变更复制账户。 1、更改复制…

MUL,IMUL指令溢出

MUL 用途&#xff1a; 该指令完成两个无符号值的乘法运算。   语法结构/举例   mul regB|memB   mul bl   mul regW|memW   mul [aword]   仅80386有&#xff1a;   mul regDW|memDW mul ebx   示范代码   DATASEG   multiplicand dw 1024   multiplier …

求1+2+......+100的和

如何求12…100的和&#xff1f;有很多方法&#xff0c;这里我介绍用三种循环方法去求12…100的和 方法一&#xff1a;for循环&#xff1a; 代码如下&#xff1a; /**1. 求12......100的和2. 方法1&#xff1a;for循环*/ public class Demo2 {public static void main(String[…

台湾游戏企业抢滩大陆 研发成竞争核心

近日&#xff0c;台湾游戏企业进驻大陆设立研发机构、产品同大陆企业联合运营、大陆企业的产品进入台湾联运&#xff0c;以及最新的政策新闻&#xff0c;都将大陆和台湾这对本是同根的产业兄弟推上了风口浪尖。 在正在举行的“第二届中国优秀游戏制作人评选大赛”上&#xff0c…

phpstud如何安装mysql新版_MySQL_图解MySQL数据库的安装和操作,一、MySQL下载与安装 1、 - phpStudy...

图解MySQL数据库的安装和操作一、MySQL下载与安装1、下载介绍MySQL相信大家一定听说过&#xff0c;如果不知道它是干什么的&#xff0c;可以去google一下。MySQL的大本营&#xff1a;http://www.mysql.com/MySQL的下载地址&#xff1a;http://dev.mysql.com/downloads/ 因为要从…

erlang小技巧

.列表操作 lists:foreach(fun(X) -> io:format("E~p~n",[X]) end, [1,2,3]). lists:duplicate(10, 16#f). % [15,15,15,15,15,15,15,15,15,15] "abc-123" -> "abc" no_vsn(Name) -> lists:takewhile(fun($-)->false;(_)-> true …

mysql 插入中文 ERROR 1366 (HY000): Incorrect string value: '\xE7\x8E\x9E\x97' for column

1、出现这个问题&#xff0c;是因为我们的字符编码设置出现了问题&#xff0c;用cmd打开命令终端&#xff0c;查看我们的数据库设置&#xff1a; 2、输入命令use crm&#xff08;crm是我创建的数据库,大家在修改时换成自己的数据库名即可&#xff09; 再输入&#xff1a;show …

handlersocket mysql_Mysql插件之HandlerSocket的安装、配置、使用

HandlerSocket简介HandlerSocket是针对Mysql的一个NoSQL插件&#xff0c;它作为一个守护进程工作在mysqld进程里面,接收tcp连接&#xff0c;并处理来自客户端的请求。HandlerSocket不支持SQL查询&#xff0c;作为替代&#xff0c;它支持表的简单的CRUD操作。由于下面的原因&…

【转】TeeChart的用法

/// <summary> /// 获得数据集 /// </summary> /// <param name"sqlStr">传递查询语句</param> /// <returns>返回数据集</returns> public static DataSet GetDataSet(string sqlStr) { string conns…

java,jdk安装,配置环境变量,window10系统

1、找到我们要安装的jdk软件&#xff0c;软件下载我就不介绍了&#xff0c;jdk下载连接地址 然后安装&#xff0c;一直点下一步就可以了&#xff0c;这里不建议跟换软件目录&#xff0c;毕竟第一次用&#xff0c;出了什么错就不好弄了&#xff0c;注&#xff1a;记得软件的安装…

solr mysql数据注入_(solr系列:四)将mysql数据库中的数据导入到solr中

在前面的博文中&#xff0c;已完成了在tomcat中对solr的部署&#xff0c;为solr添加了一个自定义的core,并且引入了ik分词器。那么该如何将本地的mysql的数据导入到solr中呢&#xff1f;准备工作&#xff1a;1、mysql数据源&#xff1a;myuser库中的user表(8条数据)/*Navicat M…

40种Javascript中常用的使用小技巧【转】

1. οncοntextmenu"window.event.returnValuefalse" 将彻底屏蔽鼠标右键< table border οncοntextmenureturn(false)>< td>no< /table> 可用于Table 2. < body onselectstart"return false"> 取消选取、防止复制 3. οnpaste&q…

超链接去下划线

在a标签里加上 style"text-decoration: none

Silverlight学习笔记(三):创建第一个Silverlight应用程序

在开始创建程序之前&#xff0c;还是要提一下关于Silverlight开发环境搭建的问题。如果使用VS2010&#xff0c;这可以搭建Silverlight4的开发环境。我推荐大家看这篇由大牛jv9撰写的【轻松建立Silverlight 4开发环境】。 我使用的是VS2008&#xff0c;所以要搭建的是Silverlig…

按钮旁边加一个提示_地铁站的那些“红色按钮”,你知道是干啥用的吗?乱按可能被拘留...

地铁紧急停车按钮图片来自网络位置&#xff1a;站台两侧墙壁上&#xff0c;靠近列车车头、车尾两侧。外观&#xff1a;上锁的红色四方小盒子&#xff0c;按钮为红色&#xff0c;旁边写有“紧急停车按钮”等字样。使用&#xff1a;紧急时刻击碎中间玻璃&#xff0c;按压按钮。红…

java中的局部变量、成员变量、类变量

局部变量&#xff1a;在方法、构造函数或者语句块中定义的变量被称为局部变量。 特点&#xff1a;变量的声明和初始化都是在方法中&#xff0c;方法结束后&#xff0c;变量就会自动销毁。 例&#xff1a;下面代码块的s2 成员变量&#xff1a;成员变量是定义在类中&#xff0c;…

根据F12在页面中调整div的大小

我们先随便写一个div大小&#xff0c;然后在chrome浏览器打开&#xff0c;显示效果&#xff1a; #logo{border: 1px solid black;width: 1300px;height: 50px;} .top{border: blue solid 1px;width: 420px;height: 50px;float: left;}<div id"logo"><div c…