**
HackTheBox-Linux-Chaos-Walkthrough
**
靶机地址:https://www.hackthebox.eu/home/machines/profile/167
靶机难度:中级(5.0/10)
靶机发布日期:2019年4月25日
靶机描述:
Chaos is a “medium” difficulty box which provides an array of challenges to deal with. It requires a fair amount enumeration of the web server as well as enumerating vhosts which leads to a wordpress site which provides a file containing credentials for an IMAP server. The drafts folder contained sensitive information which needed cryptographical knowledge to decipher. The decrypted information leads to a page hosting a vulnerable Latex application which helps to gain a foothold. Password reuse helps to land a shell as a user but in a restricted shell which can be bypassed by abusing a GTFObin. Escaping the shell gives access to the user’s firefox folder containing saved logins which on decrypting gives access to a webadmin console and the root shell.
作者:大余
时间:2020-06-24
请注意:对于所有这些计算机,我是通过平台授权允许情况进行渗透的。我将使用Kali Linux作为解决该HTB的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。
一、信息收集
可以看到靶机的IP是10.10.10.120…
最近nmap扫描HTB端口,速度效率太慢了…吐血…
这里使用了Masscan进行扫描…发现开放了挺多端口…
在利用nmap指定端口进行了扫描…
端口80上运行Apache,端口10000上运行IMAP和POP3服务器的两个实例,以及webmin控制台…
不允许通过服务器的IP地址10.10.10.120访问该站点…必须通过其域名访问该站点…添加hosts
简单爆破了下,发现了wp页面,wordpress页面…
果然…这里提示需要密码才能查看信息…
直接上wpscan…枚举
枚举发现了用户名:human
在passwd框中输入了用户名human成功进入…
获得了ayush用户的密码…这里信息收集告一段落…
nmap可以看到系统正在使用开源IMAP和POP3电子邮件服务器Dovecot在端口143、993和995上运行着…需要利用openssl工具,可以监听该服务下的信息内容…
https://wiki.dovecot.org/TestInstallation
这里有一篇文章专门讲述了该页面的命令解释…作为利用需要简单了解阅读下…
命令:
a LOGIN ayush jiujitsu
b select inbox
c list "" *
d select Drafts
e FETCH 1 BODY[TEXT]
验证用户密码登陆成功–显示出可用邮箱–select与邮箱进行交互–FETCH查看邮箱内容…
发现了两段hash值…都复制到本地看看
可以看到前一段是加密的,通过邮件提醒,另外一段是解密前面一段的密匙…
通过代码可以了解到一些内容:
该filesize变量解释是该变量的长度为16个字节…例如:一个39字节大小的文件将导致filesize变量为0000000000000039
该IV变量用作数据加密的初始化向量…它的值将是第16个字节的文件对象…
该encryptor变量表明在CBC模式下使用了AES加密,解密期间应使用相同的内容…
该with open(outputFile, ‘wb’) as outfile:和下面的显示,两行filesize变量(16个字节)和IV变量(也16字节)被写入到输出文件中(即,enim_msg.txt之前的任何加密的数据)被写入…由于IV在encryptor变量中使用了,因此IV在解密期间也需要使用…
通过以上解释,编写了简单python脚本…
获得了一串base64值…转储后读取,获得了域名地址…
通过前面的base64值转储后的文件提示,这是由Chaos Inc创建的自定义PDF应用程序…
bp拦截测试,发现这是Latexpdf…找下EXP试试
google搜索,挺多的文章…
发现存在注入…试试利用
通过简单shell替换写入…
获得了反向外壳www权限…检查发现除了tar命令外,基本都不能使用,应该是在黑名单或者规则限制中…
由于前面wordpress就发现了ayush用户名和密码…su进入了ayush用户权限外壳中…
但是使用命令还是不行,还在rbash环境下,需要绕过rbash,根据报错提示…
设置正确的PATH环境变量后,正常可以使用了,获得了user_flag信息…
在枚举ayush目录下发现了隐藏文件.mozilla/firefox/bzo7sjt1.default…这是firefox浏览器的配置文件信息…
在读取logins.json后,发现了这是10000端口的浏览器登陆配置文件…
文件还包含encryptedUsername和encryptedPassword…
其中还有key4.db文件,这是密钥数据库文件,主要存放加密密钥和主密码的…
方法1:
利用firefox_decrypt工具读取用户名密码…
命令:sudo git clone https://github.com/unode/firefox_decrypt
我先将整个隐藏文件都拷贝到了本地kali进行操作…这里读取需要密码,密码就是ayush的密码…
通过下载firefox_decrypt,然后直接对整个目录进行了读取,输出了root用户名密码…
然后直接提权root…并获得了root_flag信息…
这里是有先人帮助写好了工具…直接简洁获得了需要的信息…很快速
方法2:
利用firefox原始方法覆盖密匙数据库,直接登陆root…
首先输入firefox -no-remote -ProfileManager,界面会和下图一样,create Pro…创建新的用户数据库…我命名为靶机名字…
然后直接点下一步即可…创建好后会出现该选择框…
命令:sudo cp logins.json key4.db /home/dayu/.mozilla/firefox/0buqx7yf.Chaos/
然后会在firefox本地目录下出现乱码+Chaos的文件夹…进入后是不是很熟悉,和靶机拷出的一样文件信息…
这里需要将靶机上的logins.json和key4.db两个文件拷到新创建的Chaos目录下…进行覆盖
然后输入firefox -no-remote -ProfileManager,选择前面创建好的Chaos,选择双击后会打开新的浏览器页面…
输入域名+10000端口访问即可…
过了一会,会弹出需要输入密码…和前面工具读取信息一样需要输入的密码一致…
输入密码后,会直接跳转到登陆页面…自动输入好了root用户名和密码信息…直接Sign in登陆即可…
登陆进来后直接是root权限了…这里随意发挥操作了,最直接的就是在左下角可以修改当前用户名密码…
这思路是看到一篇文章知道的…非常感觉大佬分享的思路…
这篇靶机也学到很多东西…
HTB真的非常好,每一台靶机都是不同的环境,每个环境虽然个别环节使用的方法一致,但是过程肯定是不一样的,例如都是文件上传,然后上传有的限制了文件名称,有的是环节上需要另类操作,都是卡时间点的地方,加油~~
由于我们已经成功得到root权限查看user和root.txt,因此完成这台中级的靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。
如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。