Lucene search

K
nmapPatrik KarlssonNMAP:CUPS-INFO.NSE
HistoryApr 17, 2012 - 7:37 p.m.

cups-info NSE Script

2012-04-1719:37:22
Patrik Karlsson
nmap.org
148

9.8 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

10 High

CVSS2

Access Vector

NETWORK

Access Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:L/Au:N/C:C/I:C/A:C

0.973 High

EPSS

Percentile

99.8%

Lists printers managed by the CUPS printing service.

Script Arguments

slaxml.debug

See the documentation for the slaxml library.

http.host, http.max-body-size, http.max-cache-size, http.max-pipeline, http.pipeline, http.truncated-ok, http.useragent

See the documentation for the http library.

smbdomain, smbhash, smbnoguest, smbpassword, smbtype, smbusername

See the documentation for the smbauth library.

Example Usage

nmap -p 631 <ip> --script cups-info

Script Output

PORT    STATE SERVICE
631/tcp open  ipp
| cups-info:
|   Generic-PostScript-Printer
|     DNS-SD Name: Lexmark S300-S400 Series @ ubu1110
|     Location:
|     Model: Local Raw Printer
|     State: Processing
|     Queue: 0 print jobs
|   Lexmark-S300-S400-Series
|     DNS-SD Name: Lexmark S300-S400 Series @ ubu1110
|     Location:
|     Model: Local Raw Printer
|     State: Stopped
|     Queue: 0 print jobs
|   PDF
|     DNS-SD Name: PDF @ ubu1110
|     Location:
|     Model: Generic CUPS-PDF Printer
|     State: Idle
|_    Queue: 0 print jobs

Requires


local ipp = require "ipp"
local shortport = require "shortport"
local stdnse = require "stdnse"
local string = require "string"
local table = require "table"

description = [[
Lists printers managed by the CUPS printing service.
]]

---
-- @usage
-- nmap -p 631 <ip> --script cups-info
--
-- @output
-- PORT    STATE SERVICE
-- 631/tcp open  ipp
-- | cups-info:
-- |   Generic-PostScript-Printer
-- |     DNS-SD Name: Lexmark S300-S400 Series @ ubu1110
-- |     Location:
-- |     Model: Local Raw Printer
-- |     State: Processing
-- |     Queue: 0 print jobs
-- |   Lexmark-S300-S400-Series
-- |     DNS-SD Name: Lexmark S300-S400 Series @ ubu1110
-- |     Location:
-- |     Model: Local Raw Printer
-- |     State: Stopped
-- |     Queue: 0 print jobs
-- |   PDF
-- |     DNS-SD Name: PDF @ ubu1110
-- |     Location:
-- |     Model: Generic CUPS-PDF Printer
-- |     State: Idle
-- |_    Queue: 0 print jobs
--

author = "Patrik Karlsson"
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
categories = {"safe", "discovery"}


portrule = shortport.port_or_service(631, "ipp", "tcp", "open")

local verbose_states = {
        [ipp.IPP.PrinterState.IPP_PRINTER_IDLE] = "Idle",
        [ipp.IPP.PrinterState.IPP_PRINTER_PROCESSING] = "Processing",
        [ipp.IPP.PrinterState.IPP_PRINTER_STOPPED] = "Stopped",
      }

action = function(host, port)

  local helper = ipp.Helper:new(host, port)
  if ( not(helper:connect()) ) then
    return stdnse.format_output(false, "Failed to connect to server")
  end

  local status, printers = helper:getPrinters()
  if ( not(status) ) then
    return
  end

  local output = {}
  for _, printer in ipairs(printers) do
    table.insert(output, {
      name = printer.name,
      ("DNS-SD Name: %s"):format(printer.dns_sd_name or ""),
      ("Location: %s"):format(printer.location or ""),
      ("Model: %s"):format(printer.model or ""),
      ("State: %s"):format(verbose_states[printer.state] or ""),
      ("Queue: %s print jobs"):format(tonumber(printer.queue_count) or 0),
    } )
  end

  if ( 0 ~= #output ) then
    return stdnse.format_output(true, output)
  end
end

9.8 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

10 High

CVSS2

Access Vector

NETWORK

Access Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:L/Au:N/C:C/I:C/A:C

0.973 High

EPSS

Percentile

99.8%

Related for NMAP:CUPS-INFO.NSE