记一次mssql权限提升

记一次mssql权限提升

这次权限提升的目标机器是一台内网的windows,互联网边界的windows权限已经拿到,在代理搭建好后,使用扫描器扫描内网,发现这台windows存在Mssql弱口令。

mssqlpass

使用数据库工具进行连接后,尝试执行系统命令查看权限:

mssqlpass

发现权限非管理员权限,无法进行添加用户等操作。

尝试写入一句话木马,但是落地就被查杀,免杀大马又太大,不太方便写入,只好另寻他法。

在进行信息搜集时,发现目标主机为Windows Server2008,开启了tomcat的服务,可以访问其控制台界面。

此时的思路便是利用数据库权限读取tomcat的配置文件,获取到控制台账号密码后,利用tomcat部署含有webshell文件的war包,从而拿到webshell权限,然后再尝试提升管理员权限。

读取配置文件

由于目标机器文件系统复杂,且tomcat未安装在默认路径,采用逐个硬盘搜索的方法来找网站根目录。

访问tomcat页面,选取一个web文件,依据其文件名在硬盘中进行搜索,最后搜索到其根目录。

然后在根目录下查找tomcat的tomcat-users.xml配置文件,因为账户密码一般是在这个文件中进行配置。

tomcatusers

上传含有webshell的war包

获取到tomcat账户后,登录tomcat后台:

war

发现可以直接通过war包部署项目,于是尝试构造war包。

按照网上的教程,直接将webshell文件打包,发现部署后,无法访问,然后从昊总那里白嫖了一个免杀webshell-war包,部署后能够成功访问,拿到webshell权限。

从下图这里选择war包并部署:

war

部署后在app管理界面可以看到新增了一个项目:

war

于是想搞清楚直接将webshell打包后部署为什么无法访问,尝试将免杀war包解包,发现其中还有一些配置文件:

war

猜测可能是因为缺少了配置文件,导致部署后无法访问,当然也可能是由于木马落地被查杀。

对jsp文件打包的方法有两种,可以直接将想要打包的文件压缩成zip格式,然后将后缀修改为war或者使用以下命令:

1
2
jar -cvf test.war ./      
# 将当前文件夹下所有文件压缩打包成test.war文件

获取webshell权限后提权

我直接上传了一个大马,这次运气非常好,tomcat的执行权限是管理员权限,也就无需再次提权。

如果不是管理员权限,则需要尝试使用内核提权漏洞进行提权。由于互联网边界的windows型号和这台windows相同,而且所打补丁也相同,适用于互联网边界windows的内核提权漏洞ms15-051,经过测试,在这台机器上也适用。

提升至管理员权限后,使用cmd命令新增一个隐藏管理员账户,然后使用代理将3389端口反向代理出来或者直接使用互联网边界windows进行远程连接,以方便进行进一步攻击。