Linux sudo 提权之软链接攻击
软链接提权的原理
低权限用户能够以 root 用户的权限执行某个脚本,该脚本中又使用到了诸如 chown
等命令修改文件的权限,且该文件又能够被低权限的用户所修改。因此低权限的用户可以删除该文件,然后创建一个同名的文件,但是这个文件是指向一个高权用户才能修改的文件,例如 /etc/passwd
。这样在低权用户在执行命令的时候就能够修改 /etc/passwd
这个文件的权限了,这样就相当于低权限用户能够越权操作了。
实验验证
- 在
Linux
上创建一个低权限用户testuser
,然后创建一个文件sudotest
,该文件的属主是testuser
。
- 创建一个脚本文件
test.sh
,该脚本的属主是testuser2
,testuser
有权限执行该脚本。 配置sudo
免密切换执行,使得testuser
能够免密切换到root
执行test.sh
。
- 使用
root
用户在/etc
目录下创建文件zsudotest
,然后切换到testuser
用户,删除sudotest
文件,然后创建一个软链接指向/etc/zsudotest
。
- 执行脚本,可以看到脚本执行完成之后,本来是高权用户的文件
/etc/zsudotest
的属主被修改为了低权用户。
问题规避
针对这种提权的问题,我们可以有如下的方式来减少提权的风险:
- 对于
chown
命令,我们使用的时候可以使用参数-h
,这样的话只会修改软链接这个文件的权限,不会修改链接到的文件的权限。 - 如果还有其它的高危命令,比如
rm
,mv
这些命令,最好是能够切换到文件对应的用户,然后再执行操作
作者:javadaydayup
出处:https://www.cnblogs.com/javadaydayup/p/16246792.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验