Lucene search

K
nmapThomas BuchananNMAP:SNMP-SYSDESCR.NSE
HistoryNov 06, 2008 - 2:52 a.m.

snmp-sysdescr NSE Script

2008-11-0602:52:59
Thomas Buchanan
nmap.org
150

9.8 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

10 High

CVSS2

Access Vector

NETWORK

Access Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:L/Au:N/C:C/I:C/A:C

0.973 High

EPSS

Percentile

99.8%

Attempts to extract system information from an SNMP service.

Script Arguments

snmp.version

See the documentation for the snmp library.

creds.[service], creds.global

See the documentation for the creds library.

Example Usage

nmap -sU -p 161 --script snmp-sysdescr <target>

Script Output

|  snmp-sysdescr: HP ETHERNET MULTI-ENVIRONMENT,ROM A.25.80,JETDIRECT,JD117,EEPROM V.28.22,CIDATE 08/09/2006
|_   System uptime: 28 days, 17:18:59 (248153900 timeticks)

Requires


local datetime = require "datetime"
local nmap = require "nmap"
local shortport = require "shortport"
local snmp = require "snmp"
local string = require "string"

description = [[
Attempts to extract system information from an SNMP service.
]]

---
-- @usage
-- nmap -sU -p 161 --script snmp-sysdescr <target>
--
-- @output
-- |  snmp-sysdescr: HP ETHERNET MULTI-ENVIRONMENT,ROM A.25.80,JETDIRECT,JD117,EEPROM V.28.22,CIDATE 08/09/2006
-- |_   System uptime: 28 days, 17:18:59 (248153900 timeticks)

author = "Thomas Buchanan"

license = "Same as Nmap--See https://nmap.org/book/man-legal.html"

categories = {"default", "discovery", "safe"}

dependencies = {"snmp-brute"}


portrule = shortport.port_or_service(161, "snmp", "udp", {"open", "open|filtered"})

---
-- Sends SNMP packets to host and reads responses
action = function(host, port)

  local snmpHelper = snmp.Helper:new(host, port)
  snmpHelper:connect()

  -- build a SNMP v1 packet
  -- copied from packet capture of snmpget exchange
  -- get value: 1.3.6.1.2.1.1.1.0 (SNMPv2-MIB::sysDescr.0)
  local status, response = snmpHelper:get({reqId=28428}, "1.3.6.1.2.1.1.1.0")

  if not status then
    return
  end

  -- since we got something back, the port is definitely open
  nmap.set_port_state(host, port, "open")

  local result = response and response[1] and response[1][1]

  -- build a SNMP v1 packet
  -- copied from packet capture of snmpget exchange
  -- get value: 1.3.6.1.2.1.1.3.0 (SNMPv2-MIB::sysUpTime.0)
  status, response = snmpHelper:get({reqId=28428}, "1.3.6.1.2.1.1.3.0")

  if not status then
    return result
  end

  local uptime = response and response[1] and response[1][1]
  if not uptime then
    return
  end

  result = result .. "\n" .. string.format("  System uptime: %s (%s timeticks)", datetime.format_time(uptime, 100), tostring(uptime))

  return result
end

9.8 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

10 High

CVSS2

Access Vector

NETWORK

Access Complexity

LOW

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:L/Au:N/C:C/I:C/A:C

0.973 High

EPSS

Percentile

99.8%

Related for NMAP:SNMP-SYSDESCR.NSE