CVE-2023-22809复现(Rot5pider安全团队)
由于Sudo中的sudoedit对处理用户提供的环境变量(如SUDO_EDITOR、VISUAL和EDITOR)中传递的额外参数存在缺陷。当用户指定的编辑器包含绕过sudoers策略的 " --" 参数时,拥有sudoedit访问权限的本地攻击者可通过将任意条目附加到要处理的文件列表中,最终在目标系统上实现权限提升。除外,该漏洞还影响部分QNAP操作系统:QTS、QuTS hero、QuTScloud、QVP(QVR Pro设备)。
首先我们先修改/etc/soduers配置文件,这个也是关键
具体格式就是: xxx ALL=(ALL:ALL) sudoedit /etc/xxx 其中第一个xxx是你要进行提权的普通用户的用户名,第二是etc下的一个随意文件(这里具体哪些能行哪些不能行,我也不知道,我测试的vim和xml都可以执行,多试试)
EDITOR='vim -- /path/to/extra/file'
vim -- /path/to/extra/file -- /path/from/policy
在环境中注入额外的双破折号时,这种行为会导致混乱用于查找编辑器的变量(这个地方看不懂可以去研究一些源码,我们这里只讲利用)
我们就可以在普通用户命令行里面通过指定vim编辑器打开/etc/passwd文件,将root用户修改成我们自己
如果想要修护可以将受影响的环境变量添加到env_delete拒绝列表中。或者更新版本
env_delete+="SUDO_EDITOR VISUAL EDITOR"Cmnd_Alias
SUDOEDIT = sudoedit /etc/custom/service.confuser
#在复现过程中,遇到了编辑器的版本问题,vim 8.0 没办法使用那条攻击命令报错是说vim不能使用--参数,但是换了一个环境的ubuntu下的vim8.1就可以执行,具体问题不是很清楚,可以多试试。想要完整利用这个漏洞需要两步,我们登录普通用户以后需要使用一个脚本向/etc/sudoers 里面写入我们上面说的,写入以后才能进行攻击。脚本在github上有,使用者可以根据具体需求进行修改(链接:GitHub - n3m1dotsys/CVE-2023-22809-sudoedit-privesc: A script to automate privilege escalation with CVE-2023-22809 vulnerability)