
Honeypot PoC per il rilevamento di tentativi di exploit contro CVE-2024-47177
Questo progetto implementa un honeypot per catturare i tentativi di sfruttamento delle vulnerabilità nel CUPS (Common UNIX Printing System). In particolare, è progettato per monitorare i tentativi di sfruttamento legati a CVE-2024-47177. Questa vulnerabilità consente l'esecuzione remota di comandi tramite il parametro FoomaticRIPCommandLine nei file PPD. Se a questo parametro viene passato un valore dannoso, può essere eseguito come un comando controllato dall'utente, portando potenzialmente a gravi violazioni della sicurezza.
CUPS è un sistema di stampa open source basato su standard, ampiamente utilizzato su vari sistemi operativi simili a UNIX. Il pacchetto cups-filters fornisce backend, filtri e utilità essenziali per CUPS 2.x su sistemi non Mac OS. Il difetto critico sfruttato in CVE-2024-47177 è la gestione impropria di FoomaticRIPCommandLine, che può essere sfruttata in combinazione con altri bug logici, come quelli descritti in CVE-2024-47176, per eseguire comandi arbitrari sul sistema host.
Questo honeypot è progettato per registrare i tentativi di sfruttamento monitorando le richieste di lavoro di stampa in arrivo e ispezionandole alla ricerca di attributi sospetti, concentrandosi in particolare su printer-privacy-policy-uri che può contenere comandi.
Questo progetto è ispirato alla divulgazione iniziale di EvilSocket, che evidenzia i rischi per la sicurezza associati a CUPS e fornisce una panoramica completa delle tecniche di sfruttamento coinvolte.
Per eseguire questo honeypot, assicurati di avere installate le seguenti dipendenze:
cups e subprocess (incluse nelle installazioni Python standard)Scarica ed esegui il file install.sh:
curl -sSL https://raw.githubusercontent.com/referefref/cupspot-2024-47177/refs/heads/main/install.sh | bash
Per eseguire l'honeypot, esegui il seguente comando:
python3 cupspot.py <LOCAL_HOST> [TARGET_HOST]
#<LOCAL_HOST>: L'indirizzo locale su cui l'honeypot ascolterà le richieste di stampa in arrivo.
#[TARGET_HOST]: (Opzionale) L'indirizzo IP di un host di destinazione a cui verranno inviati i pacchetti di broadcast.
#Se omesso, l'honeypot funzionerà in modalità passiva.
Esegui l'honeypot e invia pacchetti a un target specifico:
python3 cupspot.py 127.0.0.1 192.168.1.100
Oppure eseguilo in modalità passiva:
python3 cupspot.py 127.0.0.1