大概一个多月前学习了提权的知识,当时一直不知道提权到底具体是为了干什么。只是模糊的知道提高权限,获得别的进程的一些东西。后来慢慢的学习的多了,知道了一个叫做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的更多相关文章

  1. iOS冰与火之歌(番外篇) - 基于PEGASUS(Trident三叉戟)的OS X 10.11.6本地提权

    iOS冰与火之歌(番外篇) 基于PEGASUS(Trident三叉戟)的OS X 10.11.6本地提权 蒸米@阿里移动安全 0x00 序 这段时间最火的漏洞当属阿联酋的人权活动人士被apt攻击所使用 ...

  2. CVE-2016-1240 Tomcat 服务本地提权漏洞

    catalogue . 漏洞背景 . 影响范围 . 漏洞原理 . 漏洞PoC . 修复方案 1. 漏洞背景 Tomcat是个运行在Apache上的应用服务器,支持运行Servlet/JSP应用程序的容 ...

  3. linux一句话轻松提权

    linux命令:‍ [b@fuckks~]$ printf "install uprobes /bin/sh" > exploit.conf; MODPROBE_OPTI** ...

  4. Android提权漏洞CVE-2014-7920&CVE-2014-7921分析

    没羽@阿里移动安全,更多安全类技术干货,请访问阿里聚安全博客 这是Android mediaserver的提权漏洞,利用CVE-2014-7920和CVE-2014-7921实现提权,从0权限提到me ...

  5. 用MSF进行提权

    在WEB渗透中当我们拿到webshell了,我们可以试试用MSF(metasploit)来进行提权,在MSF里meterpreter很强大的! 我们先用msfvenom生成一个EXE的木马后门. ms ...

  6. Linux提权(1)-基础版~

    利用Linux内核漏洞提权 VulnOS version 2是VulHub上的一个Linux提权练习,当打开虚拟机后,可以看到 获取到低权限SHELL后我们通常做下面几件事 1.检测操作系统的发行版本 ...

  7. <<< 入侵网站类提权注入教程

    ---------------------------------------入侵类教程-------------------------------------------------------- ...

  8. MYSQL提权方法

    cve-2016-6662 MYSQL提权分析 MySQL <= 5.7.15 远程代码执行/ 提权 (0day) 5.6.33 5.5.52 Mysql分支的版本也受影响,包括: MariaD ...

  9. MYSQL提权总结

    最近在测试一个项目,遇到了MYSQL数据库,想尽办法提权,最终都没有成功,很是郁闷,可能是自己很久没有研究过提权导致的吧,总结一下MYSQL提权的各种姿势吧,权当复习了.关于mysql提权的方法也就那 ...

随机推荐

  1. (转)如何进行Monkey Test

    如何进行Monkey Test   目录 一 简介 二 测试准备 三 基本命令格式 四 测试Log获取 五 Monkey命令参数介绍 六 保存monkey log以及手机log到sdcard(新增) ...

  2. IntelliJ IDEA 的 20 个代码自动完成的特性

    http://www.oschina.net/question/12_70799 在这篇文章中,我想向您展示 IntelliJ IDEA 中最棒的 20 个代码自动完成的特性,可让 Java 编码变得 ...

  3. LINUX中如何查看某个进程打开的网络链接有多少

    使用lsof命令,比如查看sshd这个程序的网络连接使用命令 lsof -i | grep ^sshd

  4. 微信Android客户端架构演进之路

    这是一个典型的Android应用在从小到大的成长过程中的“踩坑”与“填坑”的历史.互联网的变化速度如此之快,1年的时间里,可以发生翻天覆地的变化.今天在这里,重新和大家回顾微信客户端架构的演进过程,以 ...

  5. tomcat集群

    apache整合tomcat部署集群 http://www.cnblogs.com/God-froest/p/apache_tomcat.html 今天看到"基于apache的tomcat负 ...

  6. eclipse简单使用

    1.10个快捷键: 1. ctrl+shift+r:打开资源       Control-Shift-T: 打开类型(Open type) Control-Shift-F: CodeàJavaàPre ...

  7. Sphinx的配置和使用

    项目中用到了,昨天老大又给讲了讲,我感觉这玩意真是强大.想把一些功能以很小的代价做好,第三方的工具是必须要掌握的. 1. 我的开发环境在Windows上,下载了sphinx-2.2.6-release ...

  8. java读取文件内容

    获取文件内容 picurl = "http://www.baidu.com/data.txt"; URL urlfile = new URL(picurl); BufferedRe ...

  9. 【学】React的学习之旅7-官方例子总结

    如果在标签里有注释,除了使用/**/之外,如果写在子标签中,外面还需要用{}包起来,指明这段是javascript代码,否则这段注释会直接显示在页面上,例如 render:function (){ r ...

  10. git学习:多人协作,标签管理

    多人协作: 查看远程库的信息, git remote 推送分支到远程库 git push origin master/dev 注意:master是主分支,时刻需要与远程同步 dev是开发分支,也需要与 ...