资讯专栏INFORMATION COLUMN

Linux SUID提权&劫持环境变量提权

Alan / 2992人阅读

摘要:但是,在使用命令时如果加上特殊权限位,就可让普通用户临时获得程序所有者的身份,把变更的密码信息写入到文件中。当用户在终端运行任何命令时,它向发出请求,在环境变量的帮助下搜索可执行文件以响应用户执行的命令。

Linux SUID提权

SUID是一种特殊的文件属性,它允许用户执行的文件已该文件的拥有者的身份运行,比如一个具有SUID属性的文件的拥有者是root用户,就可以root权限运行

SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。例如,所有用户都可以执行passwd命令来修改自己的用户密码,而用户密码保存在/etc/shadow文件中。仔细查看这个文件就会发现它的默认权限是000,也就是说除了root管理员以外,所有用户都没有查看或编辑该文件的权限。但是,在使用passwd命令时如果加上SUID特殊权限位,就可让普通用户临时获得程序所有者的身份,把变更的密码信息写入到shadow文件中。这很像我们在古装剧中见到的手持尚方宝剑的钦差大臣,他手持的尚方宝剑代表的是皇上的权威,因此可以惩戒贪官,但这并不意味着他永久成为了皇上。因此这只是一种有条件的、临时的特殊权限授权方法

Demo

在linux靶机中的/tmp(随便选的)目录创建一个名为 test.c 的文件,文件内容如下

#include #include int main(){setuid(0);//run as rootsystem("id");system("cat /etc/shadow");}

其中setuid 规定了其运行用户,以root权限进行编译和权限设置

编译输出文件

gcc test.c -o test-exp

设置文件的suid位

chmod 4775 test-exp

可以看到他的颜色是红色的,而且权限中多了s位

使用以下命令可以查看根目录下所有带有suid属性的文件

find / -perm -u=s -type f 2>/dev/null

在以获得靶机www-data权限的shell中执行

找到test-exp,切换目录执行

发现test-exp成功以root权限执行

在实例利用时,就需要找具有suid属性且执行危险函数的文件,劫持环境变量提权

劫持环境变量提权

在test-exp中存在system函数,而system函数继承环境变量,可以通过替换环境变量可以达到执行任意命令

在 tmp 目录(随便目录都可以)下创建一个文件

# echo "/bin/bash" > cat && chmod 777 cat# cat cat/bin/bash

查看当前环境变量

# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games$PATH是Linux和类Unix操作系统中的环境变量,它指定了存储所有可执行程序的bin和sbin目录。当用户在终端运行任何命令时,它向shell发出请求,在环境变量的帮助下搜索可执行文件以响应用户执行的命令。超级用户通常还具有/sbin和/usr /sbin条目,以便轻松执行系统管理命令

把当前tmp目录增加到环境变量

export PATH=.:$PATH注意这是一个临时的环境变量,terminal关闭后就失效了

设置了PATH 执行cat的时候会优先从当前目录下查找程序。所以cat命令会被劫持,就可以执行任意命令

因为在test-exp中存在system("cat /etc/shadow");,使用cat命令,因为cat命令被劫持成了/bin/bash,就变成了system("/bin/bash /etc/shadow),这个文件又是SUID文件以root权限执行,就直接切换至了root用户

其他骚思路

https://xz.aliyun.com/t/2767

太牛了,这是CTF候选题啊

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123872.html

相关文章

  • 网络安全-常见面试题(Web、渗透测试、密码学、Linux等)

    摘要:攻击者可能会窃取或修改此类保护不力的数据,以实施信用卡欺诈身份盗用或其他犯罪活动。跨站脚本攻击漏洞的防御策略前端过滤字符,后端白名单例如,只允许固定的标签,设置,防止被读取。 目录 WEB安全 OWASP Top 10(2017) Injection - 注入攻击 Broken Authen...

    Caizhenhao 评论0 收藏0
  • Vulnhub靶场渗透-mrRobot

    摘要:前言靶机攻击机网络模式直接开始信息收集漏洞挖掘扫到的东西比较多,逐个看了一下,在里找到第一个,还发现一个字典其次还找到的登录页可以看看里的字典内容,拿这个字典去爆破登录页因为需要的时间比较长,就不再跑一边截图了,账号,密 ...

    Scliang 评论0 收藏0
  • 渗透测试常见面试题总结

    摘要:渗透攻击渗透攻击是指有攻击者或渗透测试者利用一个系统应用或服务中的安全漏洞,所进行的攻击行为。是指在渗透攻击时作为攻击载荷运行的一组机器指令。 域 将网络中多台计算机逻辑上组织到一起,进行集中管理,这种区别于工作组的逻辑环境叫做域,域是组织与存储资源的核心管理单元,在域中,至少有一台域控制器...

    不知名网友 评论0 收藏0
  • vulnhub DC8 靶场练习

    摘要:前言这次练习的靶机是平台下的系列靶机第台,下载地址为。指定有注入漏洞的参数。指定要查询的数据库列出所有表名发现有一个叫的表,账号和密码应该存在这个表中,查询一下该表中的数据。 ...

    陈江龙 评论0 收藏0
  • Android提权漏洞CVE-2014-7920&CVE-2014-7921分析

    摘要:作者没羽阿里移动安全,更多技术干货,请访问阿里聚安全博客这是的提权漏洞,利用和实现提权,从权限提到权限,其中影响及以后的版本,影响及以后的版本。由指令特性可知,函数的反汇编中,通过传入指针,即对象,函数执行完后,返回值通过传回。 作者:没羽@阿里移动安全,更多技术干货,请访问阿里聚安全博客 这是Android mediaserver的提权漏洞,利用CVE-2014-7920和CVE-2...

    APICloud 评论0 收藏0

发表评论

0条评论

Alan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<