HTB-CAP_WP

news/2025/4/1 16:13:35/文章来源:https://www.cnblogs.com/Licivo/p/18800486

2025/2/15

ssh登录

从流量快照中获取到靶机的账户密码
![[2953239856a923259e0d30f46800a986.png]]
进行ssh登录

提权

登陆后是nathan用户,权限低,想办法进行提权
这里使用 LinPEAS 工具 [[LinPEAS]]
尝试在靶机上下载l linpeas.sh 文件,靶机无法访问GitHub,由于用的本地的虚拟机作为攻击机所以也无法访问到
因为ssh连接上了,通过scp进行文件传输
![[43bd6539ab756bf41131539c1118b9cb.png]]

scp linpeas.sh nathan@10.10.10.245:/tmp/linpeas.sh

成功上传 Linpeas.sh
在靶机允许该文件,使用指令 ./linpeas.sh 报错权限不足
使用 bash linpeas.sh 即可允许
![[0cdc650cdf3be4127e3263f11200e4bf.png]]
运行结果
![[2d2d10782c50898bf68ea2cde88983cc.png]]

发现靶机上/usr/bin/python3.8 被赋予了 cap_setuid 和 cap_net_bind_service 能力(非默认配置)。

  • cap_setuid+ep 表示该能力是 生效的(Effective) 和 允许的(Permitted)
  • CAP_SETUID 允许 Python 进程直接修改自身的用户 ID(UID),无需依赖 SUID 位
  • 通过 Python 脚本调用 os.setuid(0),将进程的 UID 切换为 0(root),然后启动一个 root shell。
    编写脚本提权:
import os# 1. 利用 CAP_SETUID 将当前进程的 UID 设置为 0(root)
os.setuid(0)# 2. 启动一个 root shell
os.system("/bin/bash")

![[2c793f1dbb865893444c3882ccc74ac6.png]]
至此权限从nathan提升至root

细节说明

  1. 为什么不需要 SUID 位?
    SUID 位的作用是让程序运行时以文件所有者的权限执行(如 /bin/passwd)。而 CAP_SETUID 直接赋予了进程修改 UID 的权限,绕过了对 SUID 位的依赖。

  2. CAP_SETUID是什么
    在 Linux 安全机制中,CAP 是 Capabilities(能力) 的缩写。CAP表示这是一个能力,SETUID表示该能力的具体功能。这样允许进程自由修改用户 ID(UID),包括将当前进程的 UID 设置为 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/908084.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apple Final Cut Pro 11.1 - 专业后期制作 (视频剪辑)

Apple Final Cut Pro 11.1 - 专业后期制作 (视频剪辑)Apple Final Cut Pro 11.1 - 专业后期制作 (视频剪辑) Final Cut Pro 11.1.0 + Compressor 4.10.0 + Motion 5.10.0 请访问原文链接:https://sysin.org/blog/apple-final-cut-pro/ 查看最新版。原创作品,转载请保留出处。…

Adobe Photoshop 2025 v26.5 (macOS, Windows) - 照片和设计软件

Adobe Photoshop 2025 v26.5 (macOS, Windows) - 照片和设计软件Adobe Photoshop 2025 v26.5 (macOS, Windows) - 照片和设计软件 Acrobat、After Effects、Animate、Audition、Bridge、Character Animator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、Lightroo…

VMware Aria Operations 8.18.3 新增功能简介

VMware Aria Operations 8.18.3 新增功能简介VMware Aria Operations 8.18.3 - 多云 IT 运维管理 通过统一的高性能平台,实现跨私有云、混合云和多云环境的 IT 运维管理。 请访问原文链接:https://sysin.org/blog/vmware-aria-operations/ 查看最新版。原创作品,转载请保留出…

CCF的GESP等级考试与CSP-J/S竞赛

CCF的GESP等级考试与CSP-J/S竞赛介绍一、GESP介绍 GESP 即 CCF 编程能力等级认证,由中国计算机学会发起并主办,是为青少年计算机编程学习者提供能力验证的线下平台. 其目的是提升青少年计算机和编程教育培训水平,推广和普及青少年计算机和编程教育,选拔优秀人才. 它的适用年…

【计算机网络】网络排错思路总结

明人不说暗话,这篇文章我们来聊一个非常有用,同时也是程序员必备的技能,那就是网络排错思路大总结。 有了这个技能,如果以后发生领导、妹子电脑上不了网的情况,你上去就是一顿操作,稳稳的~~注意:一般一台电脑有多个网卡。一个是PCI网卡是用于插网线的, 另一个是WireLes…

【计算机网络】CDN内容分发网络

背景本来是为了深入了解 CDN 的,结果发现前置知识:IP、域名、DNS 都还不算特别熟,所以先写了他们 现在终于来聊一聊 CDN 啦 本文素材均出自:https://www.bilibili.com/video/BV12T4y1P7Fh,动画仍然满分如何打开一个网站 前面说过了浏览器访问域名 DNS 负责解析域名,找到域…

关于electron如何获取dropAndDrag的文件全路径

问题 当托放文件到窗口时,React应用无法获取文件的全路径,因为新版本去掉了“path”属性。那么如何在托放文件时,获取全路径呢? 参考链接 https://www.electronjs.org/docs/latest/api/web-utils 使用webUtils 如下图,preload.js里面把webUtils.getPathForFile暴露给渲染进…

Vue中 this.$emit() 方法详解, 帮助子组件向父组件传递事件

this.$emit()是 Vue.js 中一个很有用的方法,可以帮助子组件向父组件传递事件前言 在Vue中,this.$emit()方法用于触发自定义事件。它是Vue实例的一个方法,可以在组件内部使用。 使用 this.$emit() 方法,可以向父组件发送自定义事件,并传递数据给父组件。父组件可以通过监听这…

Unity 运用新输入方法进行移动 (input System)

首先在包管理器中添加 input System重启后进入编辑项目中 找到玩家-配置 将Api兼容级别 改成 .NET Framework 活动输出处理改成 输入系统包(新)创建瓦片地图矩形 添加调色板 为瓦片地图添加Tilemap Collider 2D组件以及Composite Collider 2D(会自动添加Rigidbody 2d组件)组…

C#之Bitmap

SetPixel和GetPixel private void btnC_Click(object sender, RoutedEventArgs e) {OpenFileDialog dia = new OpenFileDialog();dia.Filter = "图像文件|*.png;*.bmp;*.jpg|所有文件|*.*";dia.Multiselect = false;if (dia.ShowDialog() == true){var fileName=dia.…

DVWA靶场 - Command Injection

Low 代码审计: 从源码中可以看出,代码只是执行了一个ping 命令,并没有对后面的参数做限制因此我们可以分别使用 ;、 |、||、&、&&进行注入;,命令行可以使用whoami、ipconfig/ifconfig、ls/dir 等Medium 代码审计: 对比代码发现,;和&& 被加入了黑名…