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/rsync-list-modules.nse | |
parent | Initial commit. (diff) | |
download | nmap-upstream.tar.xz nmap-upstream.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/rsync-list-modules.nse')
-rw-r--r-- | scripts/rsync-list-modules.nse | 48 |
1 files changed, 48 insertions, 0 deletions
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 <ip> +-- +-- @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 |