Administrator提权到System
/在Windows中,用户一般分为3大类,即普通用户User、管理员Administrator和系统用户System。System和Administrator的权限并不是包含的,两者之间各有不同的地方,因而有时候即使有管理员Administrator的权限还是无法利用需要System用户才能使用的进程等,所以就需要提权了。
为了方便在Windows命令行中查看当前用户,可以使用whoami命令,但是需要先将whoami.exe程序放置在C盘中的system32目录中。对于该程序可以在Kali Linux中获得,具体路径为:
1 | /usr/share/windows-binaries/ |
0x01 通过at命令实现提权
这种方法在Windows XP、2003等系统可行,win7之后该命令被删除。
查看at命令的参数:
1 | at /? |
找到有/interactive参数,即以交互的方式执行命令,可以看到该命令的执行结果,否则命令在后台执行而看不到。
在指定时间运行at命令中参数cmd命令(xx:xx表示几时几分,如10:12):
1 | at xx:xx /interactive cmd |
此时从任务管理器可看出cmd命令的用户名是System,接着在该启动的cmd窗口中启动的程序都是以System用户名启动的。但是除了System启动的进程之外,界面还是Administrator用户,为了更方便一些,可以用以下方法实现将界面的操作都转化为用户System的:在System的命令行输入taskmgr命令来用System用户打开任务管理器,将其中Administrator用户的explorer进程终止掉,此时可发现界面背景等都没了,再在任务管理器中的<文件>选项中新建explorer进程,此时的界面就是System用户的界面了。
0x02 通过sc命令来创建服务(服务都通过System账号操作)
在命令行输入:
1 | sc Create syscmd binPath= ”cmd /k start” type= own type= interact |
这样就创建了名为syscmd、类型为交互的、功能为打开新的cmd窗口的服务。需要注意的一点是,在后面的三个参数中等号的后面必须加一个空格,否则无法正常创建服务。可在Run中输入services.msc来查看该服务。
接着需要在命令行输入以下命令启动服务:
1 | sc start syscmd |
也可以通过界面来启动该服务即可。
图示中已创建了该服务因而显示创建失败。
0x03 通过SysInternal Suite工具实现提权
从网站下载相应的套件即Suite。将其中的PsExec工具放入system32目录中,在命令行中输入PsExec命令来确定参数i交互和s用System用户,输入该命令即可:
1 | PsExec -i -s cmd |
0x04 几个命令
另外一些小知识,关于命令行中用户名的几个命令:
修改相应的用户的密码:
1 | net user <用户名> * |
查看所有的用户:
1 | net user |
查看当前账号的基本情况:
1 | net user <用户名> |