1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-06 20:51:30 +00:00
Files
nmap/scripts/mongodb-databases.nse
david 3c89e089fc Change calls in these forms:
socket:connect(host.ip, port.number)
socket:connect(host.ip, port.number, port.protocol)

to this:

socket:connect(host, port)

connect can take host and port tables now, and the default protocol is
taken from the port table if possible.
2010-08-16 18:59:30 +00:00

76 lines
1.7 KiB
Lua

description = [[
Attempts to get a list of tables from a MongoDB database.
]]
---
-- @usage
-- nmap -p 27017 --script mongodb-databases <host>
-- @output
-- PORT STATE SERVICE REASON
-- 27017/tcp open unknown syn-ack
-- | mongodb-databases:
-- | ok = 1
-- | databases
-- | 1
-- | empty = false
-- | sizeOnDisk = 83886080
-- | name = test
-- | 0
-- | empty = false
-- | sizeOnDisk = 83886080
-- | name = httpstorage
-- | 3
-- | empty = true
-- | sizeOnDisk = 1
-- | name = local
-- | 2
-- | empty = true
-- | sizeOnDisk = 1
-- | name = admin
-- |_ totalSize = 167772160
-- version 0.1
-- Created 01/12/2010 - v0.1 - created by Martin Holst Swende <martin@swende.se>
author = "Martin Holst Swende"
license = "Same as Nmap--See http://nmap.org/book/man-legal.html"
categories = {"default", "discovery", "safe"}
require "mongodb"
require "shortport"
portrule = shortport.port_or_service({27017}, {"mongodb"})
function action(host,port)
local socket = nmap.new_socket()
-- set a reasonable timeout value
socket:set_timeout(10000)
-- do some exception / cleanup
local catch = function()
socket:close()
end
local try = nmap.new_try(catch)
try( socket:connect(host, port) )
local req, result, packet, err, status
--Build packet
status, packet = mongodb.listDbQuery()
if not status then return result end-- Error message
--- Send packet
status, result = mongodb.query(socket, packet)
if not status then return result end-- Error message
local output = mongodb.queryResultToTable(result)
if err ~= nil then
stdnse.log_error(err)
end
if result ~= nil then
return stdnse.format_output(true, output )
end
end