您的位置:首页 > 其它

关于本地提权的学习笔记(一):Administrator提权到System

2017-01-19 22:35 555 查看
关于本地提权的学习笔记(一):Administrator提权到System

这篇文章是本人在学习过程中做的小笔记以便日后的查看,有何不足望各位大牛指出~

先说Windows吧,其用户一般分为3大类,即普通用户User、管理员Administrator和系统用户System。System和Administrator的权限并不是包含的,两者之间各有不同的地方,因而有时候即使有管理员Administrator的权限还是无法利用需要System用户才能使用的进程等,所以就需要提权了。

为了方便在Windows命令行中查看当前用户,可以使用whoami命令,但是需要先将whoami.exe程序放置在C盘中的system32目录中。对于该程序可以在Kali Linux中获得,具体路径为:

/usr/share/windows-binaries/


1、通过at命令(在Windows XP、2003等系统可行,win7之后该命令被删除):
查看at命令的参数:

at /?
找到有/interactive参数,即以交互的方式执行命令,可以看到该命令的执行结果,否则命令在后台执行而看不到。

在指定时间运行at命令中参数cmd命令(xx:xx表示几时几分,如10:12):

at xx:xx /interactive cmd


此时从任务管理器可看出cmd命令的用户名是System,接着在该启动的cmd窗口中启动的程序都是以System用户名启动的。但是除了System启动的进程之外,界面还是Administrator用户,为了更方便一些,可以用以下方法实现将界面的操作都转化为用户System的:在System的命令行输入taskmgr命令来用System用户打开任务管理器,将其中Administrator用户的explorer进程终止掉,此时可发现界面背景等都没了,再在任务管理器中的<文件>选项中新建explorer进程,此时的界面就是System用户的界面了。



2、通过sc命令来创建服务(服务都通过System账号操作):
在命令行输入:

sc Create syscmd binPath= ”cmd /k start” type= own type= interact
这样就创建了名为syscmd、类型为交互的、功能为打开新的cmd窗口的服务。需要注意的一点是,在后面的三个参数中等号的后面必须加一个空格,否则无法正常创建服务。可在Run中输入services.msc来查看该服务。
接着需要在命令行输入以下命令启动服务:

sc start syscmd


也可以通过界面来启动该服务即可。



图示中已创建了该服务因而显示创建失败

3、通过SysInternal Suite工具实现提权:
网站下载相应的套件即Suite。将其中的PsExec工具放入system32目录中,在命令行中输入PsExec命令来确定参数i交互和s用System用户,输入该命令即可:

PsExec -i -s cmd




另外一些小知识,关于命令行中用户名的几个命令:

修改相应的用户的密码:

net user <用户名> *


查看所有的用户:

net user


查看当前账号的基本情况:

net user <用户名>


当然方法还有很多种,限于知识面不足就无法一一陈述,有新的收获就会继续做笔记。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: