mirror of
https://github.com/nmap/nmap.git
synced 2026-02-05 04:56:34 +00:00
Re-indent some libs and scripts, change 4 to 2-space indent
Mostly found with:
for i in nselib/*.lua scripts/*.nse; do
echo $(perl -lne 'BEGIN{$a=$p=0}next unless $_;/^(\s*)/;' \
-e '$l=length$1;next if$l==$p;$a+=(abs($l-$p)-$a)/$.;' \
-e '$p=$l;END{print$a}' $i) $i
done | sort -nr
And indented with: https://gist.github.com/bonsaiviking/8845871
whois-ip.nse was particularly mangled (probably my fault due to using
vim's built-in indentation script, but it could be structured better)
This commit is contained in:
@@ -43,147 +43,147 @@ portrule = shortport.portnumber(53, "udp")
|
||||
|
||||
action = function(host, port)
|
||||
|
||||
-- TXID: 0xbabe
|
||||
-- Flags: 0x0100
|
||||
-- Questions: 1
|
||||
-- Answer RRs: 0
|
||||
-- Authority RRs: 0
|
||||
-- Additional RRs: 0
|
||||
-- TXID: 0xbabe
|
||||
-- Flags: 0x0100
|
||||
-- Questions: 1
|
||||
-- Answer RRs: 0
|
||||
-- Authority RRs: 0
|
||||
-- Additional RRs: 0
|
||||
|
||||
-- Query:
|
||||
-- Name: txidtest, dns-oarc, net
|
||||
-- Type: TXT (0x0010)
|
||||
-- Class: IN (0x0001)
|
||||
-- Query:
|
||||
-- Name: txidtest, dns-oarc, net
|
||||
-- Type: TXT (0x0010)
|
||||
-- Class: IN (0x0001)
|
||||
|
||||
local query = string.char( 0xba, 0xbe, -- TXID
|
||||
0x01, 0x00, -- Flags
|
||||
0x00, 0x01, -- Questions
|
||||
0x00, 0x00, -- Answer RRs
|
||||
0x00, 0x00, -- Authority RRs
|
||||
0x00, 0x00, -- Additional RRs
|
||||
0x08) .. "txidtest" ..
|
||||
string.char( 0x08) .. "dns-oarc" ..
|
||||
string.char( 0x03) .. "net" ..
|
||||
string.char( 0x00, -- Name terminator
|
||||
0x00, 0x10, -- Type (TXT)
|
||||
0x00, 0x01) -- Class (IN)
|
||||
local query = string.char( 0xba, 0xbe, -- TXID
|
||||
0x01, 0x00, -- Flags
|
||||
0x00, 0x01, -- Questions
|
||||
0x00, 0x00, -- Answer RRs
|
||||
0x00, 0x00, -- Authority RRs
|
||||
0x00, 0x00, -- Additional RRs
|
||||
0x08) .. "txidtest" ..
|
||||
string.char( 0x08) .. "dns-oarc" ..
|
||||
string.char( 0x03) .. "net" ..
|
||||
string.char( 0x00, -- Name terminator
|
||||
0x00, 0x10, -- Type (TXT)
|
||||
0x00, 0x01) -- Class (IN)
|
||||
|
||||
local status, result = comm.exchange(host, port, query, {proto="udp",
|
||||
timeout=20000})
|
||||
local status, result = comm.exchange(host, port, query, {proto="udp",
|
||||
timeout=20000})
|
||||
|
||||
-- Fail gracefully
|
||||
if not status then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: TIMEOUT"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
-- Fail gracefully
|
||||
if not status then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: TIMEOUT"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- Update the port
|
||||
nmap.set_port_state(host, port, "open")
|
||||
-- Update the port
|
||||
nmap.set_port_state(host, port, "open")
|
||||
|
||||
-- Now we need to "parse" the results to check to see if they are good
|
||||
-- Now we need to "parse" the results to check to see if they are good
|
||||
|
||||
-- We need a minimum of 5 bytes...
|
||||
if (#result < 5) then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Malformed response"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
-- We need a minimum of 5 bytes...
|
||||
if (#result < 5) then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Malformed response"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- Check TXID
|
||||
if (string.byte(result, 1) ~= 0xba
|
||||
or string.byte(result, 2) ~= 0xbe) then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Invalid Transaction ID"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
-- Check TXID
|
||||
if (string.byte(result, 1) ~= 0xba
|
||||
or string.byte(result, 2) ~= 0xbe) then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Invalid Transaction ID"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- Check response flag and recursion
|
||||
if not (bit.band(string.byte(result, 3), 0x80) == 0x80
|
||||
and bit.band(string.byte(result, 4), 0x80) == 0x80) then
|
||||
if (nmap.verbosity() >= 1 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Server refused recursion"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
-- Check response flag and recursion
|
||||
if not (bit.band(string.byte(result, 3), 0x80) == 0x80
|
||||
and bit.band(string.byte(result, 4), 0x80) == 0x80) then
|
||||
if (nmap.verbosity() >= 1 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Server refused recursion"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- Check error flag
|
||||
if (bit.band(string.byte(result, 4), 0x0F) ~= 0x00) then
|
||||
if (nmap.verbosity() >= 1 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Server failure"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
-- Check error flag
|
||||
if (bit.band(string.byte(result, 4), 0x0F) ~= 0x00) then
|
||||
if (nmap.verbosity() >= 1 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Server failure"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- Check for two Answer RRs and 1 Authority RR
|
||||
if (string.byte(result, 5) ~= 0x00
|
||||
or string.byte(result, 6) ~= 0x01
|
||||
or string.byte(result, 7) ~= 0x00
|
||||
or string.byte(result, 8) ~= 0x02) then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Response did not include expected answers"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
-- Check for two Answer RRs and 1 Authority RR
|
||||
if (string.byte(result, 5) ~= 0x00
|
||||
or string.byte(result, 6) ~= 0x01
|
||||
or string.byte(result, 7) ~= 0x00
|
||||
or string.byte(result, 8) ~= 0x02) then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Response did not include expected answers"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- We need a minimum of 128 bytes...
|
||||
if (#result < 128) then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Truncated response"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
-- We need a minimum of 128 bytes...
|
||||
if (#result < 128) then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Truncated response"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- Here is the really fragile part. If the DNS response changes
|
||||
-- in any way, this won't work and will fail.
|
||||
-- Jump to second answer and check to see that it is TXT, IN
|
||||
-- then grab the length and display that text...
|
||||
-- Here is the really fragile part. If the DNS response changes
|
||||
-- in any way, this won't work and will fail.
|
||||
-- Jump to second answer and check to see that it is TXT, IN
|
||||
-- then grab the length and display that text...
|
||||
|
||||
-- Check for TXT
|
||||
if (string.byte(result, 118) ~= 0x00
|
||||
or string.byte(result, 119) ~= 0x10)
|
||||
then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Answer record not of type TXT"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
-- Check for TXT
|
||||
if (string.byte(result, 118) ~= 0x00
|
||||
or string.byte(result, 119) ~= 0x10)
|
||||
then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Answer record not of type TXT"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- Check for IN
|
||||
if (string.byte(result, 120) ~= 0x00
|
||||
or string.byte(result, 121) ~= 0x01) then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Answer record not of type IN"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
-- Check for IN
|
||||
if (string.byte(result, 120) ~= 0x00
|
||||
or string.byte(result, 121) ~= 0x01) then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Answer record not of type IN"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- Get TXT length
|
||||
local txtlen = string.byte(result, 128)
|
||||
-- Get TXT length
|
||||
local txtlen = string.byte(result, 128)
|
||||
|
||||
-- We now need a minimum of 128 + txtlen bytes + 1...
|
||||
if (#result < 128 + txtlen) then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Truncated response"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
-- We now need a minimum of 128 + txtlen bytes + 1...
|
||||
if (#result < 128 + txtlen) then
|
||||
if (nmap.verbosity() >= 2 or nmap.debugging() >= 1) then
|
||||
return "ERROR: Truncated response"
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
-- GET TXT record
|
||||
local txtrd = string.sub(result, 129, 128 + txtlen)
|
||||
-- GET TXT record
|
||||
local txtrd = string.sub(result, 129, 128 + txtlen)
|
||||
|
||||
return txtrd
|
||||
return txtrd
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user