Shows AFP shares and ACLs. This NSE Script can be used to display AFP shares along with their respective access control lists (ACLs)
Reporter | Title | Published | Views | Family All 199 |
---|---|---|---|---|
Nmap | http-frontpage-login NSE Script | 9 Jun 201218:28 | – | nmap |
Nmap | smtp-enum-users NSE Script | 13 Mar 201004:03 | – | nmap |
Nmap | dns-brute NSE Script | 5 Mar 201121:16 | – | nmap |
Nmap | mikrotik-routeros-brute NSE Script | 30 Jul 201403:48 | – | nmap |
Nmap | http-slowloris NSE Script | 16 Jul 201219:27 | – | nmap |
Nmap | freelancer-info NSE Script | 20 Nov 201304:31 | – | nmap |
Nmap | irc-info NSE Script | 6 Nov 200802:52 | – | nmap |
Nmap | ajp-methods NSE Script | 7 May 201218:49 | – | nmap |
Nmap | telnet-encryption NSE Script | 28 Dec 201100:57 | – | nmap |
Nmap | http-unsafe-output-escaping NSE Script | 15 Dec 201106:19 | – | nmap |
local afp = require "afp"
local nmap = require "nmap"
local shortport = require "shortport"
local stdnse = require "stdnse"
local table = require "table"
description = [[
Shows AFP shares and ACLs.
]]
---
--
--@output
-- PORT STATE SERVICE
-- 548/tcp open afp
-- | afp-showmount:
-- | Yoda's Public Folder
-- | Owner: Search,Read,Write
-- | Group: Search,Read
-- | Everyone: Search,Read
-- | User: Search,Read
-- | Vader's Public Folder
-- | Owner: Search,Read,Write
-- | Group: Search,Read
-- | Everyone: Search,Read
-- | User: Search,Read
-- |_ Options: IsOwner
-- Version 0.4
-- Created 01/03/2010 - v0.1 - created by Patrik Karlsson
-- Revised 01/13/2010 - v0.2 - Fixed a bug where a single share wouldn't show due to formatting issues
-- Revised 01/20/2010 - v0.3 - removed superfluous functions
-- Revised 05/03/2010 - v0.4 - cleaned up and added dependency to afp-brute and added support for credentials
-- by argument or registry
author = "Patrik Karlsson"
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
categories = {"discovery", "safe"}
dependencies = {"afp-brute"}
portrule = shortport.portnumber(548, "tcp")
action = function(host, port)
local status, response, shares
local result = {}
local afpHelper = afp.Helper:new()
local args = nmap.registry.args
local users = nmap.registry.afp or { ['nil'] = 'nil' }
if ( args['afp.username'] ) then
users = {}
users[args['afp.username']] = args['afp.password']
end
for username, password in pairs(users) do
status, response = afpHelper:OpenSession(host, port)
if ( not status ) then
stdnse.debug1("%s", response)
return
end
-- if we have a username attempt to authenticate as the user
-- Attempt to use No User Authentication?
if ( username ~= 'nil' ) then
status, response = afpHelper:Login(username, password)
else
status, response = afpHelper:Login()
end
if ( not status ) then
stdnse.debug1("Login failed")
stdnse.debug3("Login error: %s", response)
return
end
status, shares = afpHelper:ListShares()
if status then
for _, vol in ipairs( shares ) do
local status, response = afpHelper:GetSharePermissions( vol )
if status then
response.name = vol
table.insert(result, response)
end
end
end
status, response = afpHelper:Logout()
status, response = afpHelper:CloseSession()
if ( result ) then
return stdnse.format_output(true, result)
end
end
return
end
Transform Your Security Services
Elevate your offerings with Vulners' advanced Vulnerability Intelligence. Contact us for a demo and discover the difference comprehensive, actionable intelligence can make in your security strategy.
Book a live demo