diff options
Diffstat (limited to 'scripts/bjnp-discover.nse')
-rw-r--r-- | scripts/bjnp-discover.nse | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/scripts/bjnp-discover.nse b/scripts/bjnp-discover.nse new file mode 100644 index 0000000..2547fa0 --- /dev/null +++ b/scripts/bjnp-discover.nse @@ -0,0 +1,50 @@ +description = [[ +Retrieves printer or scanner information from a remote device supporting the +BJNP protocol. The protocol is known to be supported by network based Canon +devices. +]] + +--- +-- @usage +-- sudo nmap -sU -p 8611,8612 --script bjnp-discover <ip> +-- +-- @output +-- PORT STATE SERVICE +-- 8611/udp open canon-bjnp1 +-- | bjnp-discover: +-- | Manufacturer: Canon +-- | Model: MG5200 series +-- | Description: Canon MG5200 series +-- | Firmware version: 1.050 +-- |_ Command: BJL,BJRaster3,BSCCe,NCCe,IVEC,IVECPLI +-- 8612/udp open canon-bjnp2 +-- | bjnp-discover: +-- | Manufacturer: Canon +-- | Model: MG5200 series +-- | Description: Canon MG5200 series +-- |_ Command: MultiPass 2.1,IVEC +-- + +categories = {"safe", "discovery"} +author = "Patrik Karlsson" + +local bjnp = require("bjnp") +local shortport = require("shortport") +local stdnse = require("stdnse") + +portrule = shortport.portnumber({8611, 8612}, "udp") + +action = function(host, port) + local helper = bjnp.Helper:new(host, port) + if ( not(helper:connect()) ) then + return stdnse.format_output(false, "Failed to connect to server") + end + local status, attrs + if ( port.number == 8611 ) then + status, attrs = helper:getPrinterIdentity() + else + status, attrs = helper:getScannerIdentity() + end + helper:close() + return stdnse.format_output(true, attrs) +end |