diff --git a/scripts/dns-zone-transfer.nse b/scripts/dns-zone-transfer.nse
index f7eb70a6c..9695a674d 100644
--- a/scripts/dns-zone-transfer.nse
+++ b/scripts/dns-zone-transfer.nse
@@ -4,16 +4,16 @@ Requests a zone transfer (AXFR) from a DNS server.
The script sends an AXFR query to a DNS server. The domain to query is
determined by examining the name given on the command line, the DNS
server's hostname, or it can be specified with the
-dnszonetransfer.domain script argument. If the query is
+dns-zone-transfer.domain script argument. If the query is
successful all domains and domain types are returned along with common
type specific data (SOA/MX/NS/PTR/A).
This script can run at different phases of an Nmap scan:
* Script Pre-scanning: in this phase the script will run before any
Nmap scan and use the defined DNS server in the arguments. The script
-arguments in this phase are: dnszonetransfer.server the
+arguments in this phase are: dns-zone-transfer.server the
DNS server to use, can be a hostname or an IP address and must be
-specified. The dnszonetransfer.port argument is optional
+specified. The dns-zone-transfer.port argument is optional
and can be used to specify the DNS server port.
* Script scanning: in this phase the script will run after the other
Nmap phases and against an Nmap discovered DNS server. If we don't
@@ -26,10 +26,10 @@ Useful resources
]]
---
--- @args dnszonetransfer.domain Domain to transfer.
--- @args dnszonetransfer.server DNS server. If set, this argument will
+-- @args dns-zone-transfer.domain Domain to transfer.
+-- @args dns-zone-transfer.server DNS server. If set, this argument will
-- enable the script for the "Script Pre-scanning phase".
--- @args dnszonetransfer.port DNS server port, this argument concerns
+-- @args dns-zone-transfer.port DNS server port, this argument concerns
-- the "Script Pre-scanning phase" and it's optional, the default
-- value is 53.
-- @output
@@ -60,7 +60,7 @@ Useful resources
-- |_ foo.com. SOA ns2.foo.com. piou.foo.com.
-- @usage
-- nmap --script dns-zone-transfer.nse \
--- --script-args dnszonetransfer.domain=
+-- --script-args dns-zone-transfer.domain=
require('shortport')
require('strbuf')
@@ -317,19 +317,18 @@ end
action = function(host, port)
local soc, status, data
- local dns_server, dns_port
local catch = function() soc:close() end
local try = nmap.new_try(catch)
- local domain = nil
local args = nmap.registry.args
- if args.dnszonetransfer and args.dnszonetransfer.domain then
- domain = args.dnszonetransfer.domain
- elseif args['dnszonetransfer.domain'] then
- domain = args['dnszonetransfer.domain']
- elseif args.domain then
- domain = args.domain
+ local domain, dns_server, dns_port = stdnse.get_script_args(
+ {"dns-zone-transfer.domain", "dnszonetransfer.domain"},
+ {"dns-zone-transfer.server", "dnszonetransfer.server"},
+ {"dns-zone-transfer.port", "dnszonetransfer.port"}
+ )
+ if not dns_port then
+ dns_port = 53
end
-- script running at the Script Pre-scanning phase.
@@ -340,19 +339,12 @@ action = function(host, port)
SCRIPT_NAME, SCRIPT_TYPE)
return
end
- if args['dnszonetransfer.server'] then
- dns_server = args['dnszonetransfer.server']
- else
+ if not dns_server then
stdnse.print_debug(3,
"Skipping '%s' %s, 'dnszonetransfer.server' argument is missing.",
SCRIPT_NAME, SCRIPT_TYPE)
return
end
- if args['dnszonetransfer.port'] then
- dns_port = args['dnszonetransfer.port']
- else
- dns_port = 53
- end
-- script running at the Script Scan phase.
elseif SCRIPT_TYPE == "portrule" then
if not domain then