Lucene search

K
nmapPatrik KarlssonNMAP:STUN-INFO.NSE
HistoryMar 16, 2012 - 11:36 a.m.

stun-info NSE Script

2012-03-1611:36:51
Patrik Karlsson
nmap.org
231

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 the external IP address of a NAT:ed host using the STUN protocol.

Script Arguments

stun.mode

See the documentation for the stun library.

Example Usage

nmap -sV -PN -sU -p 3478 --script stun-info <ip>

Script Output

PORT     STATE         SERVICE
3478/udp open|filtered stun
| stun-info:
|_  External IP: 80.216.42.106

Requires


local nmap = require "nmap"
local shortport = require "shortport"
local stun = require "stun"
local stdnse = require "stdnse"

description = [[
Retrieves the external IP address of a NAT:ed host using the STUN protocol.
]]

---
-- @usage
-- nmap -sV -PN -sU -p 3478 --script stun-info <ip>
--
-- @output
-- PORT     STATE         SERVICE
-- 3478/udp open|filtered stun
-- | stun-info:
-- |_  External IP: 80.216.42.106
--

author = "Patrik Karlsson"
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
categories = {"discovery", "safe"}


portrule = shortport.port_or_service(3478, "stun", "udp")

local function fail(err) return stdnse.format_output(false, err) end

action = function(host, port)
  local helper = stun.Helper:new(host, port)
  local status = helper:connect()
  if ( not(status) ) then
    return fail("Failed to connect to server")
  end

  local status, result = helper:getExternalAddress()
  if ( not(status) ) then
    return fail("Failed to retrieve external IP")
  end

  port.version.name = "stun"
  nmap.set_port_state(host, port, "open")
  nmap.set_port_version(host, port)

  if ( result ) then
    return "\n  External IP: " .. result
  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:STUN-INFO.NSE