提权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提权的方法也就那 ...
随机推荐
- (转)如何进行Monkey Test
如何进行Monkey Test 目录 一 简介 二 测试准备 三 基本命令格式 四 测试Log获取 五 Monkey命令参数介绍 六 保存monkey log以及手机log到sdcard(新增) ...
- IntelliJ IDEA 的 20 个代码自动完成的特性
http://www.oschina.net/question/12_70799 在这篇文章中,我想向您展示 IntelliJ IDEA 中最棒的 20 个代码自动完成的特性,可让 Java 编码变得 ...
- LINUX中如何查看某个进程打开的网络链接有多少
使用lsof命令,比如查看sshd这个程序的网络连接使用命令 lsof -i | grep ^sshd
- 微信Android客户端架构演进之路
这是一个典型的Android应用在从小到大的成长过程中的“踩坑”与“填坑”的历史.互联网的变化速度如此之快,1年的时间里,可以发生翻天覆地的变化.今天在这里,重新和大家回顾微信客户端架构的演进过程,以 ...
- tomcat集群
apache整合tomcat部署集群 http://www.cnblogs.com/God-froest/p/apache_tomcat.html 今天看到"基于apache的tomcat负 ...
- eclipse简单使用
1.10个快捷键: 1. ctrl+shift+r:打开资源 Control-Shift-T: 打开类型(Open type) Control-Shift-F: CodeàJavaàPre ...
- Sphinx的配置和使用
项目中用到了,昨天老大又给讲了讲,我感觉这玩意真是强大.想把一些功能以很小的代价做好,第三方的工具是必须要掌握的. 1. 我的开发环境在Windows上,下载了sphinx-2.2.6-release ...
- java读取文件内容
获取文件内容 picurl = "http://www.baidu.com/data.txt"; URL urlfile = new URL(picurl); BufferedRe ...
- 【学】React的学习之旅7-官方例子总结
如果在标签里有注释,除了使用/**/之外,如果写在子标签中,外面还需要用{}包起来,指明这段是javascript代码,否则这段注释会直接显示在页面上,例如 render:function (){ r ...
- git学习:多人协作,标签管理
多人协作: 查看远程库的信息, git remote 推送分支到远程库 git push origin master/dev 注意:master是主分支,时刻需要与远程同步 dev是开发分支,也需要与 ...