提权GrantPrivilege
大概一个多月前学习了提权的知识,当时一直不知道提权到底具体是为了干什么。只是模糊的知道提高权限,获得别的进程的一些东西。后来慢慢的学习的多了,知道了一个叫做ReadProcessMemory的函数,第一次看是因为已经提完权限了,这个函数实现的比较完美,后来想了想,把提权注释后,发现ReadProcessMemory实现不成功了。。。查看了MSDN发现了Remarks:Any process that has a handle with PROCESS_VM_READ access can call the function.(仍记得我用的是"SeDugPrivilege",这个权限貌似还是Ring3层最高的)。然后明白了提权的意义,两个进程空间互不相连,想要通过自家进程空间打开目标进程空间,并且获取内容的话,必须提高权限(相当于拿到了钥匙)。
提权大概分为3个步骤:
1.获得目标进程句柄(戏称“令牌”)。
2.获取权限(用“SeDugPrivelege"权限)。
3.将获得的权限注入你获得的”令牌“中。
if (GrantPriviledge(L"SeDebugPrivilege") == FALSE); BOOL GrantPriviledge(IN const WCHAR* PriviledgeName)
{
TOKEN_PRIVILEGES TokenPrivileges;
TOKEN_PRIVILEGES OldPrivileges; HANDLE ProcessHandle = GetCurrentProcess();
HANDLE TokenHandle = NULL;
LUID Luid; //获得令牌
if (OpenProcessToken(ProcessHandle, TOKEN_ALL_ACCESS, &TokenHandle) == FALSE)
{
CloseHandle(ProcessHandle);
CloseHandle(TokenHandle);
TokenHandle = NULL;
return FALSE;
} //获取Debug权限
if (LookupPrivilegeValue(NULL, PriviledgeName, &Luid) == FALSE)
{
CloseHandle(ProcessHandle);
CloseHandle(TokenHandle);
TokenHandle = NULL;
ProcessHandle = NULL;
return FALSE;
} TokenPrivileges.PrivilegeCount = ;
TokenPrivileges.Privileges[].Attributes = SE_PRIVILEGE_ENABLED;
TokenPrivileges.Privileges[].Luid = Luid; if (AdjustTokenPrivileges(TokenHandle, FALSE, &TokenPrivileges,
sizeof(TOKEN_PRIVILEGES), NULL, NULL) == FALSE)
{
CloseHandle(ProcessHandle);
CloseHandle(TokenHandle);
TokenHandle = NULL;
ProcessHandle = NULL;
return FALSE;
} CloseHandle(TokenHandle);
CloseHandle(ProcessHandle);
ProcessHandle = NULL;
TokenHandle = NULL;
return TRUE;
}
提权GrantPrivilege的更多相关文章
- iOS冰与火之歌(番外篇) - 基于PEGASUS(Trident三叉戟)的OS X 10.11.6本地提权
iOS冰与火之歌(番外篇) 基于PEGASUS(Trident三叉戟)的OS X 10.11.6本地提权 蒸米@阿里移动安全 0x00 序 这段时间最火的漏洞当属阿联酋的人权活动人士被apt攻击所使用 ...
- CVE-2016-1240 Tomcat 服务本地提权漏洞
catalogue . 漏洞背景 . 影响范围 . 漏洞原理 . 漏洞PoC . 修复方案 1. 漏洞背景 Tomcat是个运行在Apache上的应用服务器,支持运行Servlet/JSP应用程序的容 ...
- linux一句话轻松提权
linux命令: [b@fuckks~]$ printf "install uprobes /bin/sh" > exploit.conf; MODPROBE_OPTI** ...
- Android提权漏洞CVE-2014-7920&CVE-2014-7921分析
没羽@阿里移动安全,更多安全类技术干货,请访问阿里聚安全博客 这是Android mediaserver的提权漏洞,利用CVE-2014-7920和CVE-2014-7921实现提权,从0权限提到me ...
- 用MSF进行提权
在WEB渗透中当我们拿到webshell了,我们可以试试用MSF(metasploit)来进行提权,在MSF里meterpreter很强大的! 我们先用msfvenom生成一个EXE的木马后门. ms ...
- Linux提权(1)-基础版~
利用Linux内核漏洞提权 VulnOS version 2是VulHub上的一个Linux提权练习,当打开虚拟机后,可以看到 获取到低权限SHELL后我们通常做下面几件事 1.检测操作系统的发行版本 ...
- <<< 入侵网站类提权注入教程
---------------------------------------入侵类教程-------------------------------------------------------- ...
- MYSQL提权方法
cve-2016-6662 MYSQL提权分析 MySQL <= 5.7.15 远程代码执行/ 提权 (0day) 5.6.33 5.5.52 Mysql分支的版本也受影响,包括: MariaD ...
- MYSQL提权总结
最近在测试一个项目,遇到了MYSQL数据库,想尽办法提权,最终都没有成功,很是郁闷,可能是自己很久没有研究过提权导致的吧,总结一下MYSQL提权的各种姿势吧,权当复习了.关于mysql提权的方法也就那 ...
随机推荐
- WIN7 WIN8 WIN10你们的WmiPrvSE.exe系统占用资源厉害吗?
大家一起来做个实验吧.把你的支付宝安全控件和支付宝数字证书两个东东都卸掉.试试看电脑是否年轻几岁? 出处:百度贴吧原帖
- XMLHttpRequest
XMLHttpRequest对象的方法 abort() 取消当前所发出的请求 getAllResponseHeaders() 取得所有的HTTP头信息 getResponseHeader() 取得一个 ...
- canvas关于getImageData跨域问题解决方法
一.问题:在使用html5的canvas是,当用到getImageData方法获取图片信息时,会碰到跨域无法获取的情况,代码如下: document.getElementById("pic& ...
- mybatis 中sql语句传递多个参数
Available parameters are [2, 1, 0, param1, param2, param3] <select id="loginByTeacher" ...
- Java基础--Java语言介绍
Java是一种半编译半解释的语言.1.编译阶段使用指令:javac这个阶段,Java编译器(也就是JVM:java虚拟机,后称JVM),首先把你的代码加载完成,然后开始检查语法.此后会产生.class ...
- iOS10 权限配置
升到iOS10之后,需要设置权限的有: 麦克风权限:Privacy - Microphone Usage Description 是否允许此App使用你的麦克风? 相机权限: Privacy - Ca ...
- HTML 代码复用实践 (静态页面公共部分提取复用)
原文:HTML 代码复用实践 上面的链接里面安装配置步骤已经非常详细,这里主要记录我操作过程中遇到的几个问题 gulp-file-include 的使用 按上面的步骤安装之后,node_mod ...
- c++智能指针实现方式1
#include<iostream> using namespace std; // 定义仅由HasPtr类使用的U_Ptr类,用于封装使用计数和相关指针 // 这个类的所有成员都是pri ...
- 非阻塞socket调用connect, epoll和select检查连接情况示例
转自http://www.cnblogs.com/yuxingfirst/archive/2013/03/08/2950281.html 我们知道,linux下socket编程有常见的几个系统调用: ...
- Eclipse svn插件包
SVN插件下载地址及更新地址,你根据需要选择你需要的版本.现在最新是1.8.x Links for 1.8.x Release: Eclipse update site URL: http://sub ...