VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

admin 2022年7月12日08:41:36安全文章评论5 views3825字阅读12分45秒阅读模式
VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

saulGoodman

一个专注于红队攻防研究的公众号

关注

EnuBox_Mattermost


简介

靶机地址:https://www.vulnhub.com/entry/enubox-mattermost,414/
Name:EnuBox:Mattermost
靶机介绍:The Mattermost chatting system may or may not hold sensitive information. Can you find your way in?

信息搜集

拿到靶机 IP 之后上神器 NMAP 对它就是一顿梭哈:

nmap -A -p- -T4 192.168.1.137

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

扫描完成后,发现它开放了 21(ftp)、22(ssh)、80(http)、3389(XRDP远程桌面)、8065(web) 端口。

其中 ftp 可以用匿名用户 anonymous 登陆:

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

由上图所示登陆到它的 ftp 后没有显示任何文件!那么我们还是先来看看 web (80、8065)的目录文件把:

dirb http://192.168.1.137dirb http://192.168.1.137:8065

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

枚举目录出来后先是看了 80 端口的 index.html,它显示的是 403 没有找到,但是页面上的信息提示有一个 README.md的文件:

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

我访问 README.md 发现是 404:

http://192.168.1.137/README.md

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

这个时候先放弃 80 端口,来到 8065 端口看看,它扫描出来是有一个 robots.txt 文件,访问但是空白的:

http://192.168.1.137:8065/robots.txt

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

这个时候我直接访问它的首页发现是一个登陆页面:

http://192.168.1.137:8065/login

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag


tftp下载README.md文件

它使用的 CMS 是 Mattermost ,它是一款易于使用、经过简化且可扩展的团队通信和企业消息传送系统。

尝试若口令无果,Google 上只有它的默认 Mysql 的账号密码,我用来尝试登陆 Web 无果。

思路回到上面,刚刚打开 80 端口的 Web 页面它提示了一个 README.md
文件,是不是作者告诉我们那个是关键点呢?刚好我们有了它的 ftp 匿名用户可以登陆,但是刚刚看过了没有任何文件,正当我一筹莫展的时候我下意识的在 tftp 里尝试能不能把 README.md 下载到本地,没想到真成了!

# 因为我写到这里的时候是第二天了,我重启后靶机的 IP 就变成 192.168.1.138 了!tftp 192.168.1.138# TFTP是一个传输文件的简单协议,它基于UDP协议而实现的。

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

把 README.md 下载到本地打开后发现我们得到了一个账号和密码:

admin:ComplexPassword0!

随后我登陆到了它到后台:

http://192.168.1.138:8065/login

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

来到后台后我大致看了看它的后台消息,翻译过来好像是一些没用的诗句?

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

额。。。先不管它!我又去了 exploit-db 上寻找了有关 Mattermost 的漏洞,但是没有得到我想要的信息:

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

Mattermost-后台获取FTP账号密码

随后我在后台的头像以及能上传的地方尝试看看能不能获取到一枚 webshell,很显然我没成功,我太菜了。

正当我一筹莫展的时候我发现了一个系统控制台找到了一个插件 zoom

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

它默认是 False 关闭的,我把它开启 True 后得到了一枚 URL

http://localhost/JK94vsNKAns6HBkG/AxRt6LwuA7A6N4gk/index.html

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

这个时候我是在 8065 端口打开的 URL 发现没有这个页面:

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

但是用 80 端口的 web 去访问这个页面的时候却得到一段提示:

http://192.168.1.138/JK94vsNKAns6HBkG/AxRt6LwuA7A6N4gk/index.html

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

Hello Admin, FTP credentials help you edit, transfer and delete files from your site. This is why it's important to keep these credentials handy. FTP Credentials: ftpuser / ftppassword Make sure to keep these to yourself.

通过这个提示我有得到一枚账号和密码,是 FTP 的:

ftpuser:ftppassword

随后我便用得到的账号和密码成功登陆到它的 FTP 服务里:

ftp 192.168.1.148

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

获取到SSH的账号密码

登陆进去后发现有一个 examples.desktop 文件,还有一个 users 目录、mattermost 目录下有一个 message 文件,我把他们都下载到本地后查看了一下examples.desktop 文件没发现什么:

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

查看 message 文件发现里面有一段话:

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

这个时候有点懵了,整半天你给我了一句 Welcome!!! ?但是后来把一切结合起来想了想,刚开始是有一个 users 目录,然后是 mattermost 目录下有一个 message 文件,文件内容是 Welcome!!!

柯南:真実はいつも一つ(真相只有一个),mattermost 是一个用户名,而 message 文件内容 Welcome!!! 就是密码!!!按照我这个推理我尝试登陆到它到 SSH 没想到真成了!!!

USERmattermostPASSWelcome!!!ssh mattermost@192.168.1.138

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

玩 CTF 靶机就是要多思考,根据我们得到到信息要去想它为什么会有这个信息?这个信息的线索是干嘛的?我可以用得到的信息做写什么?

毕竟CTF 就是这样不按常理出牌,你得像个黑客,以黑客的思维去思考问题!

登陆到 mattermost 用户后,我习惯性的 sudo -l 发现它没有权限去执行 sudo,需要密码:

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

接着我查看了一下有没有一些文件可以以 SUID 权限去执行:

find / -perm -u=s -type f 2>/dev/null

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

结果发现了刚好有一个文件 secret 文件是可以以 SUID 权限执行的,而且刚好在我所登陆的 mattermost 用户的 家目录下的桌面:

/home/mattermost/Desktop/secret

逆向分析secret文件获取Flag

随后我来到了 mattermost 用户的家目录,里面有一些目录和文件,除了 Desktop 目录里有文件,其他目录都是空的!

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

我先是看了看 README.md 文件,发现里面是一段话,大概意思是你有一个密钥,而且在 30 天后会过期

Hello User,
Your secret key is 48912.
Do not share this key with anyone.
!! NOTE:: This key is not valid after 30 days and has been changed by our internal systems.!! NOTE:: Please contact the support desk to get new secret key.

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

吓的我迫不及待地去运行 secret 文件,运行后它让你输入密码,我用刚刚得到的密码发现出错了:

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

很显然密码以及过期了!这个时候怎么办呢?我先是把 secret 文件使用 nc 传到 KALI

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

之后各种百度各种Google关于逆向的文章,临时拜佛脚!WEB狗表示伤不起,一路硬钢下来的!呜呜呜~~~

经过查看源代码发现了一段代码:

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

undefined8 main(void){  long in_FS_OFFSET;  int local_14;  long local_10;    local_10 = *(long *)(in_FS_OFFSET + 0x28);  local_14 = 0;  puts("Hello Admin, Please enter the secret key:");  __isoc99_scanf(&DAT_00100992,&local_14);  if (local_14 == 0xf447) {    setuid(0);    setgid(0);    system("/bin/bash");  }  else {    printf("Your is either invalid or expiredn.");  }  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {                    /* WARNING: Subroutine does not return */    __stack_chk_fail();  }  return 0;}

拿到源代码之后开始审计,幸好以前学过一点点 C 语言,还是能看懂一点的,具体是要让 local_14 的值等于 0xf447 ,这个时候就成功运行 system 函数,切换到 /bin/bash !0xf447 是十六进制,我把它转化为十进制为:62535

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

最后运行 secret 文件获得 root 权限!

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

最终也是在 /root/Desktop 下拿到 Flag



VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag


VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

原文始发于微信公众号(CTS纵横安全实验室):VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月12日08:41:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  VulnHub通关日记-EnuBox_Mattermost,逆向分析文件获取Flag http://cn-sec.com/archives/873447.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: