系统安全实验——环境变量漏洞提权

文章讲述了通过ssh连接靶机,使用suid权限的flag程序,结合环境变量劫持ps命令实现提权到root用户的流程。关键在于找到一个已有suid权限的可执行文件,并修改PATH环境变量,以执行自定义的恶意程序。
摘要由CSDN通过智能技术生成

题目要求

ssh访问靶机IP,用户名test,密码123

利用system函数对PATH环境的作用,编写一个可执行程序,并对此程序赋予suid权限,这样在执行程序的过程中让PATH环境变量优先遍历我们伪造的命令,从而进行提权,从普通用户变为root用户

flag在/root目录下

资料搜集

找到两篇关于suid结合环境变量漏洞提权的文章:

http://t.csdn.cn/PAtRm

http://t.csdn.cn/NJED4

跟着他的步骤做了一遍但是执行已赋予suid权限的可执行文件发现,我的身份还是普通用户。

 因为我在赋权限的时候是以靶机普通用户的身份,估计不行。

了解原理

阅读一些文献后,得知环境变量漏洞提权原理:

执行命令时shell会先从PATH中检查是否是系统内部命令,如果不是再查是否属于应用程序。

那么如果我们在环境变量中写一个自己定义的环境变量,劫持已有的命令,达到提权目的。

实验步骤

原本想自己写程序来劫持等等,但由于我现在只是普通用户,没法真正给可执行文件赋suid权限。

在查看整个系统中suid权限的文件时,发现了突破点: 

其他都可以忽略,实验环境里本来就有一个/home/test/flag是suid权限啊!为何不直接利用它提权!

执行一下flag看看:

 这个输出怎么如此熟悉?

不就是ps命令嘛!

现在一切都清楚了。flag可执行文件执行的就是ps命令,那我就可以用写一个提权的恶意程序,再环境变量劫持ps命令,就可以获得root权限了呀!

按照以下命令操作:

记得要在垃圾桶里执行flag,开启一个shell。

最后whoami发现我已经是root啦! 

以root权限查看我们心心念念的flag.txt

 得到flag!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值