【HTB系列】靶机Querier的渗透测试

时间:2024-01-28 16:24:53

出品|MS08067实验室(www.ms08067.com)

本文作者:大方子(Ms08067实验室核心成员)

总结与反思:
1.收集信息要全面
2.用snmp-check检查snmp目标是否开启服务
3.smbmap尝试匿名用户anonymous来枚举目标的共享资源,可能会枚举成功
4.使用smbclient连接到smb进行命令操作
5.使用ole来分析宏
6.使用mssqlclient.py来连接MSSQL
7.mssqlclient.py开启Windows Authentication参数来,保证正常登录
8.使用mssqlclient.py开启cmd_shell
9.利用Responder窃取服务器的凭证
10.利用 | 、less 、+关键词 快速查找内容
11.使用hashcat破解NetNTLMv2密码
12.使用john破解NetNTLMv2密码
13.利用mssql来执行cmd命令
14.使用PowerShell攻击框架里的Invoke-PowerShellTcp.ps1脚本反弹shell
15.使用powershell远程下载反弹shell脚本执行
16.使用 rlwrap 来解决shell中输出不正常问题(删除,方向键是字符问题)
17.使用cmd远程下载提权信息收集脚本PowerUp.ps1
18.使用smbmap(TheNETBIOS connection with the remote host timedout)的时候需要通过-d添加域的名字
19.利用域内获取的账号密码尝试使用psexec进行命令执行
【前提smb服务开启,并且有权进行读写】
20. 利用GPP漏洞得到管理员密码

靶机信息

KALI地址:10.10.12.115
先用Nmap进行信息收集

扫描结果如下:

可以看到目标机器存在MSSQL,SMB服务
我们在检查下snmp服务是否存在

发现snmp服务不存在
那么我们现在根据nmap的结果来进行测试。
我们用smbmap来尝试枚举下目标的资源,发现访问被禁止

那么我们尝试下匿名的用户去访问,发现资源被枚举出来了

这里的Reports不是系统自带的,所以我们对Reports进行信息挖掘

那么我们用smbclient来访问Reports目录,并执行命令操作

发现目录里面有一个 excel文件,我们把他下载回来

“xls是2003版本下的文件,不管有没有宏程序的话都是xls文件。
2007做了区分,XLSM文件XLSX文件都是excel2007文件,但前者是含有宏启用,Excel中默认情况下不自动启用宏。

Excel不会执行宏XLSX文件,即使它们包含宏代码,因此含有宏的文件可以保存为xlsm文件”

这个“Currency Volume Report.xlsm”是存在宏的,这里我们用下OLE工具套件来分析office宏
用apt安装ole套件

然后我们用olevba去分析我们刚刚下载来的XLSM文件

我们可以发现里面的MSSQL连接字符串

然后我们使用mssqlclient.py进行登录,如果你没这个py脚本可以从下面的项目地址获得项目地址:https://github.com/sdfzy/impacket
把mssqlclient.py拷贝出来

进行登录,发现登录失败

我们需要开启Windows Authentication,才能正常登录

然后我们访问下cmd,发现被禁止

因为我们的权限不够,但是我们可以用Responder对服务器上的凭证进行窃取

关于Responder的原理和窃取可以看这个文章:
https://blog.csdn.net/nzjdsds/article/details/94314995

原理是,通过LLMNR/NBT-NS欺骗攻击,让MSSQL去访问我们伪造的服务,当MSSQL去执行时就会把它自己的凭证发给我们,我们通过破解它的凭证在返回去登录MSSQL,得到高权限

Responder地址:
https://github.com/sdfzy/Responder

我们开启Responder,-I填的是我们连接HTB的网络接口,可以通过ifconfig查

然后我们去MSSQL执行命令

之后我们的Responder就能窃取到凭证

我们把hash内容另存为Querier.NetNTLMv2

然后我们用hashcat去破解下
首先我们查下NetNTLMv2的模式代码是多少

进入后 / + NetNTLM 进行搜索

可以看到NetNTLMv2模式代码为5600
然后我们就可以开始破解

也可以用john来破解NetNTLMv2密码

然后我们用获取到的凭证再次用mssqlclient.py登录

help下

开启cmd功能

来测试查看cmd是否真的开启

命令是正常执行的
我们使用nishang的反弹shell脚本
nishang项目地址:https://github.com/sdfzy/nishang

然后我们编辑下reverse.ps1脚本在底下加上,IP写上你自己的IP,端口写上你nc监听的端口

然后还是老样子用python开启简单HTTP服务,让靶机把我们的reverse.ps1下载并执行

然后我们就得到一个shell,这里我是用了rlwrap来解决shell中(删除键,方向键等)输出不正常问题

然后我们就能得到user的flag

接下来就是开始提权
这里我们使用PowerSploit里面的提权信息收集脚本PowerUp.ps1
项目地址:https://github.com/PowerShellMafia/PowerSploit
一样把脚本拷贝过来,并让靶机下载执行

这里可能需要等几分钟出结果

这里我们看到一个服务滥用

我们尝试利用下

发现john确实加进来了,我们利用smbmap利用下,这里需要增加-d参数写上域的名字

然后发现这个john的权限也不够

我们换一个提权方式

这里还有一组管理员的账号和密码我们再次进行尝试,成功!

提权成功,我们已经拿到system权限了,这里就不演示cat root flag了

这里还有一种是GPP漏洞的利用,原理跟上面是差不多的。
只是需要自己手动破解密码

GPP提权
我们可以通过找到组策略里面的管理员密码并破解出来

Groups.xml

我们仍然需要解密密码,这可以通过以下方式轻松完成gpp-decrypt:

这里看到这里的密码也是我们上面获取到的密码一样
MyUnclesAreMarioAndLuigi!!1!



转载请联系作者并注明出处!

Ms08067安全实验室专注于网络安全知识的普及和培训。团队已出版《Web安全攻防:渗透测试实战指南》,《内网安全攻防:渗透测试实战指南》,《Python安全攻防:渗透测试实战指南》,《Java代码安全审计(入门篇)》等书籍。
团队公众号定期分享关于CTF靶场、内网渗透、APT方面技术干货,从零开始、以实战落地为主,致力于做一个实用的干货分享型公众号。
官方网站:https://www.ms08067.com/

扫描下方二维码加入实验室VIP社区
加入后邀请加入内部VIP群,内部微信群永久有效!