diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:42:04 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 07:42:04 +0000 |
commit | 0d47952611198ef6b1163f366dc03922d20b1475 (patch) | |
tree | 3d840a3b8c0daef0754707bfb9f5e873b6b1ac13 /scripts/bjnp-discover.nse | |
parent | Initial commit. (diff) | |
download | nmap-0d47952611198ef6b1163f366dc03922d20b1475.tar.xz nmap-0d47952611198ef6b1163f366dc03922d20b1475.zip |
Adding upstream version 7.94+git20230807.3be01efb1+dfsg.upstream/7.94+git20230807.3be01efb1+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
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 |