mirror of
https://github.com/nmap/nmap.git
synced 2025-12-06 04:31:29 +00:00
Re-indent some more scripts. Whitespace-only commit
https://secwiki.org/w/Nmap/Code_Standards
This commit is contained in:
@@ -108,36 +108,36 @@ portrule = shortport.port_or_service(22, "ssh")
|
||||
-- algorithm name-lists are identical between the server-to-client and
|
||||
-- client-to-server types. Note that this simply modifies the passed tables.
|
||||
local combine_types = function(parsed, lists)
|
||||
local doubles = {
|
||||
"encryption_algorithms",
|
||||
"mac_algorithms",
|
||||
"compression_algorithms"
|
||||
}
|
||||
local doubles = {
|
||||
"encryption_algorithms",
|
||||
"mac_algorithms",
|
||||
"compression_algorithms"
|
||||
}
|
||||
|
||||
for _, i in ipairs(doubles) do
|
||||
local c2s = i .. "_client_to_server"
|
||||
local s2c = i .. "_server_to_client"
|
||||
for _, i in ipairs(doubles) do
|
||||
local c2s = i .. "_client_to_server"
|
||||
local s2c = i .. "_server_to_client"
|
||||
|
||||
if parsed[c2s] == parsed[s2c] then
|
||||
parsed[i] = parsed[c2s]
|
||||
parsed[c2s] = nil
|
||||
parsed[s2c] = nil
|
||||
table.insert(lists, i)
|
||||
else
|
||||
table.insert(lists, c2s)
|
||||
table.insert(lists, s2c)
|
||||
end
|
||||
end
|
||||
if parsed[c2s] == parsed[s2c] then
|
||||
parsed[i] = parsed[c2s]
|
||||
parsed[c2s] = nil
|
||||
parsed[s2c] = nil
|
||||
table.insert(lists, i)
|
||||
else
|
||||
table.insert(lists, c2s)
|
||||
table.insert(lists, s2c)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Build and return the output table
|
||||
local output = function(parsed, lists)
|
||||
local out = stdnse.output_table()
|
||||
local out = stdnse.output_table()
|
||||
|
||||
for _, l in ipairs(lists) do
|
||||
local v = parsed[l]
|
||||
local a = v:len() > 0 and stdnse.strsplit(",", v) or {}
|
||||
if nmap.verbosity() > 0 then
|
||||
for _, l in ipairs(lists) do
|
||||
local v = parsed[l]
|
||||
local a = v:len() > 0 and stdnse.strsplit(",", v) or {}
|
||||
if nmap.verbosity() > 0 then
|
||||
setmetatable(a, {
|
||||
__tostring = function(t)
|
||||
return string.format("(%d)\n %s", #t, table.concat(t, "\n "))
|
||||
@@ -149,70 +149,70 @@ local output = function(parsed, lists)
|
||||
return string.format("(%d)", #t)
|
||||
end
|
||||
})
|
||||
end
|
||||
end
|
||||
out[l] = a
|
||||
end
|
||||
end
|
||||
|
||||
return out
|
||||
return out
|
||||
end
|
||||
|
||||
action = function(host, port)
|
||||
local sock = nmap.new_socket()
|
||||
local status = sock:connect(host, port)
|
||||
local sock = nmap.new_socket()
|
||||
local status = sock:connect(host, port)
|
||||
|
||||
if not status then
|
||||
return
|
||||
end
|
||||
if not status then
|
||||
return
|
||||
end
|
||||
|
||||
status = sock:receive_lines(1)
|
||||
if not status then
|
||||
sock:close()
|
||||
return
|
||||
end
|
||||
status = sock:receive_lines(1)
|
||||
if not status then
|
||||
sock:close()
|
||||
return
|
||||
end
|
||||
|
||||
status = sock:send("SSH-2.0-Nmap-SSH2-Enum-Algos\r\n")
|
||||
if not status then
|
||||
sock:close()
|
||||
return
|
||||
end
|
||||
status = sock:send("SSH-2.0-Nmap-SSH2-Enum-Algos\r\n")
|
||||
if not status then
|
||||
sock:close()
|
||||
return
|
||||
end
|
||||
|
||||
local ssh = ssh2.transport
|
||||
local ssh = ssh2.transport
|
||||
|
||||
-- I would think that the server would send its kex data right after
|
||||
-- receiving and verifying our protocol id string above, then we could
|
||||
-- just use it here, but I've seen no definitive documentation saying
|
||||
-- that we don't ever send ours first. All I've seen is that if the
|
||||
-- server doesn't care about compatibility with older clients then it
|
||||
-- MAY send its kex data after the protocol id string. So I guess I'll
|
||||
-- send it here until I know for sure (removing this send works against
|
||||
-- OpenSSH though).
|
||||
local pkt = ssh.build(ssh.kex_init())
|
||||
-- I would think that the server would send its kex data right after
|
||||
-- receiving and verifying our protocol id string above, then we could
|
||||
-- just use it here, but I've seen no definitive documentation saying
|
||||
-- that we don't ever send ours first. All I've seen is that if the
|
||||
-- server doesn't care about compatibility with older clients then it
|
||||
-- MAY send its kex data after the protocol id string. So I guess I'll
|
||||
-- send it here until I know for sure (removing this send works against
|
||||
-- OpenSSH though).
|
||||
local pkt = ssh.build(ssh.kex_init())
|
||||
|
||||
status = sock:send(pkt)
|
||||
if not status then
|
||||
sock:close()
|
||||
return
|
||||
end
|
||||
status = sock:send(pkt)
|
||||
if not status then
|
||||
sock:close()
|
||||
return
|
||||
end
|
||||
|
||||
local status, response = ssh.receive_packet(sock)
|
||||
local status, response = ssh.receive_packet(sock)
|
||||
|
||||
sock:close()
|
||||
sock:close()
|
||||
|
||||
if not status then
|
||||
return
|
||||
end
|
||||
if not status then
|
||||
return
|
||||
end
|
||||
|
||||
local parsed = ssh.parse_kex_init(ssh.payload(response))
|
||||
local parsed = ssh.parse_kex_init(ssh.payload(response))
|
||||
|
||||
local lists = {
|
||||
"kex_algorithms",
|
||||
"server_host_key_algorithms"
|
||||
-- Other types will be added below in combine_types()
|
||||
}
|
||||
local lists = {
|
||||
"kex_algorithms",
|
||||
"server_host_key_algorithms"
|
||||
-- Other types will be added below in combine_types()
|
||||
}
|
||||
|
||||
-- Modifies tables
|
||||
combine_types(parsed, lists)
|
||||
-- Modifies tables
|
||||
combine_types(parsed, lists)
|
||||
|
||||
return output(parsed, lists)
|
||||
return output(parsed, lists)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user