加载中...
Linux下SUID提权
发表于:2022-05-01 | 分类: web
字数统计: 474 | 阅读时长: 1分钟 | 阅读量:

参考资料

https://baijiahao.baidu.com/s?id=1727594857858909253&wfr=spider&for=pc
https://blog.csdn.net/qq_36119192/article/details/84872644
http://www.hackdig.com/05/hack-351745.htm

什么是SUID

SUID (Set UID)是Linux中的一种特殊权限,其功能为用户运行某个程序时,如果该程序有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件所属的属主。但是SUID权限的设置只针对二进制可执行文件,对于非可执行文件设置SUID没有任何意义。

在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效. 通俗的来讲,假设我们现在有一个可执行文件ls,其属主为root,当我们通过非root用户登录时,如果ls设置了SUID权限,我们可在非root用户下运行该二进制可执行文件,在执行文件时,该进程的权限将为root权限。

利用此特性,我们可通过SUID进行提权。

设置SUID

在了解SUID提权以前 我们简单看一下如何设置SUID权限

chmod u+s filename   设置SUID位
chmod u-s filename   去掉SUID设置

通过root设置的具有SUID权限的二进制可执行文件提权

已知的可用来提权的linux可行性的文件列表如下:

  • nmap
  • vim
  • find
  • bash
  • more
  • less
  • nano
  • cp
  • awk

以下命令可以发现系统上运行的所有SUID可执行文件

#以下命令将尝试查找具有root权限的SUID的文件,不同系统适用于不同的命令,一个一个试
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;
上一篇:
CVE-2021-29447
下一篇:
Struts2漏洞
本文目录
本文目录