From 0d47952611198ef6b1163f366dc03922d20b1475 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 09:42:04 +0200 Subject: Adding upstream version 7.94+git20230807.3be01efb1+dfsg. Signed-off-by: Daniel Baumann --- scripts/rsync-list-modules.nse | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 scripts/rsync-list-modules.nse (limited to 'scripts/rsync-list-modules.nse') diff --git a/scripts/rsync-list-modules.nse b/scripts/rsync-list-modules.nse new file mode 100644 index 0000000..0fb1e2a --- /dev/null +++ b/scripts/rsync-list-modules.nse @@ -0,0 +1,48 @@ +local rsync = require "rsync" +local shortport = require "shortport" +local stdnse = require "stdnse" + +description = [[ +Lists modules available for rsync (remote file sync) synchronization. +]] + +--- +-- @usage +-- nmap -p 873 --script rsync-list-modules +-- +-- @output +-- PORT STATE SERVICE +-- 873/tcp open rsync +-- | rsync-list-modules: +-- | www www directory +-- | log log directory +-- |_ etc etc directory +-- + + +author = "Patrik Karlsson" +license = "Same as Nmap--See https://nmap.org/book/man-legal.html" +categories = {"discovery", "safe"} + +portrule = shortport.port_or_service(873, "rsync", "tcp") + +local function fail (err) return stdnse.format_output(false, err) end + +action = function(host, port) + local helper = rsync.Helper:new(host, port, { module = "" }) + if ( not(helper) ) then + return fail("Failed to create rsync.Helper") + end + + local status, err = helper:connect() + if ( not(status) ) then + return fail("Failed to connect to rsync server") + end + + local modules = {} + status, modules = helper:listModules() + if ( not(status) ) then + return fail("Failed to retrieve a list of modules") + end + return stdnse.format_output(true, modules) +end -- cgit v1.2.3