1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-23 16:09:02 +00:00

Add gopher-ls.nse by Toni Ruotto.

This commit is contained in:
david
2010-12-29 18:46:16 +00:00
parent fda466c417
commit 0658e53070
3 changed files with 63 additions and 0 deletions

View File

@@ -1,5 +1,8 @@
# Nmap Changelog ($Id$); -*-text-*- # Nmap Changelog ($Id$); -*-text-*-
o [NSE] Added gopher-ls.nse by Toni Ruotto, which lists the root of a
Gopher server.
o [NSE] Added modbus-discover.nse by Alexander Rudakov. This script o [NSE] Added modbus-discover.nse by Alexander Rudakov. This script
enumerates Modbus slave ids and then tries to find device enumerates Modbus slave ids and then tries to find device
information about each of them. information about each of them.

59
scripts/gopher-ls.nse Normal file
View File

@@ -0,0 +1,59 @@
description = [[
Lists files and directories at the root of a gopher service.
]]
---
-- @output
-- 70/tcp open gopher
-- |_gopher-ls: [txt] Gopher, the next big thing?, [dir] Tax Forms
author = "Toni Ruottu"
license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
categories = {"default", "discovery", "safe"}
require("nmap")
require("stdnse")
require("shortport")
portrule = shortport.port_or_service (70, "gopher", {"tcp"})
local function typelabel(type)
if type == "0" then
return "[txt]"
end
if type == "1" then
return "[dir]"
end
return string.format("[%s]", type)
end
action = function( host, port )
local socket = nmap.new_socket()
local status, err = socket:connect(host.ip, port.number)
if not status then
return
end
socket:send("\r\n")
local buffer, _ = stdnse.make_buffer(socket, "\r\n")
local line = buffer()
local files = {}
while line ~= nil do
local fields = stdnse.strsplit("\t", line)
local first = fields[1]
if #first > 1 then
local type = string.sub(first, 1, 1)
if type ~= "i" then
local label = string.sub(first, 2)
table.insert(files, string.format("%s %s", typelabel(type), label))
end
end
line = buffer()
end
return stdnse.strjoin(", ", files)
end

View File

@@ -42,6 +42,7 @@ Entry { filename = "ftp-brute.nse", categories = { "auth", "intrusive", } }
Entry { filename = "ftp-libopie.nse", categories = { "intrusive", "vuln", } } Entry { filename = "ftp-libopie.nse", categories = { "intrusive", "vuln", } }
Entry { filename = "ftp-proftpd-backdoor.nse", categories = { "discovery", "intrusive", } } Entry { filename = "ftp-proftpd-backdoor.nse", categories = { "discovery", "intrusive", } }
Entry { filename = "giop-info.nse", categories = { "discovery", "safe", } } Entry { filename = "giop-info.nse", categories = { "discovery", "safe", } }
Entry { filename = "gopher-ls.nse", categories = { "default", "discovery", "safe", } }
Entry { filename = "hddtemp-info.nse", categories = { "default", "discovery", "safe", } } Entry { filename = "hddtemp-info.nse", categories = { "default", "discovery", "safe", } }
Entry { filename = "hostmap.nse", categories = { "discovery", "external", "intrusive", } } Entry { filename = "hostmap.nse", categories = { "discovery", "external", "intrusive", } }
Entry { filename = "http-auth.nse", categories = { "auth", "default", "intrusive", } } Entry { filename = "http-auth.nse", categories = { "auth", "default", "intrusive", } }