本项目实现了一个蜜罐,用于捕获针对 CUPS(通用 UNIX 打印系统)漏洞的利用尝试。具体来说,它旨在监控与 CVE-2024-47177 相关的利用尝试。该漏洞允许通过 PPD 文件中的 FoomaticRIPCommandLine 参数执行远程命令。如果给此参数传递恶意值,它可能被当作用户控制的命令执行,从而导致严重的安全漏洞。
CUPS 是一个基于标准、开源的打印系统,广泛应用于各种类 UNIX 操作系统。cups-filters 包为非 Mac OS 系统上的 CUPS 2.x 提供关键的后端、过滤器和实用程序。CVE-2024-47177 所利用的关键缺陷是对 FoomaticRIPCommandLine 处理不当,该漏洞可与其他逻辑错误(例如 CVE-2024-47176 中描述的错误)结合,在主机系统上执行任意命令。
该蜜罐旨在通过监控传入的打印作业请求并检查其中是否存在可疑属性(特别关注可能包含命令的 printer-privacy-policy-uri)来记录利用尝试。
本项目的灵感来源于 EvilSocket 的首次披露,该披露强调了与 CUPS 相关的安全风险,并提供了所涉及的利用技术的全面概述。
要运行此蜜罐,请确保已安装以下依赖项:
cups 和 subprocess Python 库(包含在标准 Python 安装中)下载并运行 install.sh 文件:
curl -sSL https://raw.githubusercontent.com/referefref/cupspot-2024-47177/refs/heads/main/install.sh | bash
要运行蜜罐,请执行以下命令:
python3 cupspot.py <LOCAL_HOST> [TARGET_HOST]
#<LOCAL_HOST>: The local address where the honeypot will listen for incoming print requests.
#[TARGET_HOST]: (Optional) The IP address of a target host to which browsing packets will be sent.
#If omitted, the honeypot will run in passive mode.
运行蜜罐并向特定目标发送数据包:
python3 cupspot.py 127.0.0.1 192.168.1.100
或以被动模式运行:
python3 cupspot.py 127.0.0.1