Lucene search

K
nmapPhilip PickeringNMAP:POP3-CAPABILITIES.NSE
HistoryNov 06, 2008 - 2:52 a.m.

pop3-capabilities NSE Script

2008-11-0602:52:59
Philip Pickering
nmap.org
318

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%

Retrieves POP3 email server capabilities.

POP3 capabilities are defined in RFC 2449. The CAPA command allows a client to ask a server what commands it supports and possibly any site-specific policy. Besides the list of supported commands, the IMPLEMENTATION string giving the server version may be available.

Example Usage

nmap -sV -sC <target>

Script Output

110/tcp open  pop3
|_ pop3-capabilities: USER CAPA RESP-CODES UIDL PIPELINING STLS TOP SASL(PLAIN)

Requires


local pop3 = require "pop3"
local shortport = require "shortport"
local stdnse = require "stdnse"
local table = require "table"

description = [[
Retrieves POP3 email server capabilities.

POP3 capabilities are defined in RFC 2449. The CAPA command allows a client to
ask a server what commands it supports and possibly any site-specific policy.
Besides the list of supported commands, the IMPLEMENTATION string giving the
server version may be available.
]]

---
-- @output
-- 110/tcp open  pop3
-- |_ pop3-capabilities: USER CAPA RESP-CODES UIDL PIPELINING STLS TOP SASL(PLAIN)

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

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


portrule = shortport.port_or_service({110,995},{"pop3","pop3s"})

action = function(host, port)
  local capa, err = pop3.capabilities(host, port)
  if type(capa) == "table" then
    -- Convert the capabilities table into an array of strings.
    local capstrings = {}
    for cap, args in pairs(capa) do
      if ( #args > 0 ) then
        table.insert(capstrings, ("%s(%s)"):format(cap, table.concat(args, " ")))
      else
        table.insert(capstrings, cap)
      end
    end
    return table.concat(capstrings, " ")
  elseif type(err) == "string" then
    stdnse.debug1("'%s' for %s", err, host.ip)
    return
  else
    return "server doesn't support CAPA"
  end
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:POP3-CAPABILITIES.NSE