在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 <用户名>