mirror of
https://github.com/nmap/nmap.git
synced 2025-12-06 04:31:29 +00:00
o [NSE] Added two new scripts for the MongoDB database from Martin
Holst Swende. mongodb-info gets information like the version number, memory use, and operating system. mongodb-databases lists the databases and their size on disk.
This commit is contained in:
74
scripts/mongodb-databases.nse
Normal file
74
scripts/mongodb-databases.nse
Normal file
@@ -0,0 +1,74 @@
|
||||
description = [[
|
||||
Attempts to get tables from a MongoDB
|
||||
]]
|
||||
|
||||
---
|
||||
-- @usage
|
||||
-- nmap -p 27017 --script mongodb-get-tables-query <host>
|
||||
-- @output
|
||||
-- PORT STATE SERVICE REASON
|
||||
-- 27017/tcp open unknown syn-ack
|
||||
-- | mongodb-get-tables-query:
|
||||
-- | 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 = {"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.ip, port.number, "tcp") )
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user