For a description of this category, see safe NSE category in the Nmap documentation.
Scripts
- acarsd-info
Retrieves information from a listening acarsd daemon. Acarsd decodes ACARS (Aircraft Communication Addressing and Reporting System) data in real time. The information retrieved by this script includes the daemon version, API version, administrator e-mail address and listening frequency.
- address-info
Shows extra information about IPv6 addresses, such as embedded MAC or IPv4 addresses when available.
- afp-ls
Attempts to get useful information about files from AFP volumes. The output is intended to resemble the output of
ls
.- afp-serverinfo
Shows AFP server information. This information includes the server's hostname, IPv4 and IPv6 addresses, and hardware type (for example
Macmini
orMacBookPro
).- afp-showmount
Shows AFP shares and ACLs.
- ajp-auth
Retrieves the authentication scheme and realm of an AJP service (Apache JServ Protocol) that requires authentication.
- ajp-headers
Performs a HEAD or GET request against either the root directory or any optional directory of an Apache JServ Protocol server and returns the server response headers.
- ajp-methods
Discovers which options are supported by the AJP (Apache JServ Protocol) server by sending an OPTIONS request and lists potentially risky methods.
- ajp-request
Requests a URI over the Apache JServ Protocol and displays the result (or stores it in a file). Different AJP methods such as; GET, HEAD, TRACE, PUT or DELETE may be used.
- allseeingeye-info
Detects the All-Seeing Eye service. Provided by some game servers for querying the server's status.
- amqp-info
Gathers information (a list of all server properties) from an AMQP (advanced message queuing protocol) server.
- asn-query
Maps IP addresses to autonomous system (AS) numbers.
- auth-owners
Attempts to find the owner of an open TCP port by querying an auth daemon which must also be open on the target system. The auth service, also known as identd, normally runs on port 113.
- auth-spoof
Checks for an identd (auth) server which is spoofing its replies.
- backorifice-info
Connects to a BackOrifice service and gathers information about the host and the BackOrifice service itself.
- banner
A simple banner grabber which connects to an open TCP port and prints out anything sent by the listening service within five seconds.
- bitcoin-getaddr
Queries a Bitcoin server for a list of known Bitcoin nodes
- bitcoin-info
Extracts version and node information from a Bitcoin server
- bitcoinrpc-info
Obtains information from a Bitcoin server by calling
getinfo
on its JSON-RPC interface.- bittorrent-discovery
Discovers bittorrent peers sharing a file based on a user-supplied torrent file or magnet link. Peers implement the Bittorrent protocol and share the torrent, whereas the nodes (only shown if the include-nodes NSE argument is given) implement the DHT protocol and are used to track the peers. The sets of peers and nodes are not the same, but they usually intersect.
- bjnp-discover
Retrieves printer or scanner information from a remote device supporting the BJNP protocol. The protocol is known to be supported by network based Canon devices.
- broadcast-ataoe-discover
Discovers servers supporting the ATA over Ethernet protocol. ATA over Ethernet is an ethernet protocol developed by the Brantley Coile Company and allows for simple, high-performance access to SATA drives over Ethernet.
- broadcast-bjnp-discover
Attempts to discover Canon devices (Printers/Scanners) supporting the BJNP protocol by sending BJNP Discover requests to the network broadcast address for both ports associated with the protocol.
- broadcast-db2-discover
Attempts to discover DB2 servers on the network by sending a broadcast request to port 523/udp.
- broadcast-dhcp-discover
Sends a DHCP request to the broadcast address (255.255.255.255) and reports the results. By default, the script uses a static MAC address (DE:AD:CO:DE:CA:FE) in order to prevent IP pool exhaustion.
- broadcast-dhcp6-discover
Sends a DHCPv6 request (Solicit) to the DHCPv6 multicast address, parses the response, then extracts and prints the address along with any options returned by the server.
- broadcast-dns-service-discovery
Attempts to discover hosts' services using the DNS Service Discovery protocol. It sends a multicast DNS-SD query and collects all the responses.
- broadcast-dropbox-listener
Listens for the LAN sync information broadcasts that the Dropbox.com client broadcasts every 20 seconds, then prints all the discovered client IP addresses, port numbers, version numbers, display names, and more.
- broadcast-eigrp-discovery
Performs network discovery and routing information gathering through Cisco's Enhanced Interior Gateway Routing Protocol (EIGRP).
- broadcast-hid-discoveryd
Discovers HID devices on a LAN by sending a discoveryd network broadcast probe.
- broadcast-igmp-discovery
Discovers targets that have IGMP Multicast memberships and grabs interesting information.
- broadcast-jenkins-discover
Discovers Jenkins servers on a LAN by sending a discovery broadcast probe.
- broadcast-listener
Sniffs the network for incoming broadcast communication and attempts to decode the received packets. It supports protocols like CDP, HSRP, Spotify, DropBox, DHCP, ARP and a few more. See packetdecoders.lua for more information.
- broadcast-ms-sql-discover
Discovers Microsoft SQL servers in the same broadcast domain.
- broadcast-netbios-master-browser
Attempts to discover master browsers and the domains they manage.
- broadcast-networker-discover
Discovers EMC Networker backup software servers on a LAN by sending a network broadcast query.
- broadcast-novell-locate
Attempts to use the Service Location Protocol to discover Novell NetWare Core Protocol (NCP) servers.
- broadcast-ospf2-discover
Discover IPv4 networks using Open Shortest Path First version 2(OSPFv2) protocol.
- broadcast-pc-anywhere
Sends a special broadcast probe to discover PC-Anywhere hosts running on a LAN.
- broadcast-pc-duo
Discovers PC-DUO remote control hosts and gateways running on a LAN by sending a special broadcast UDP probe.
- broadcast-pim-discovery
Discovers routers that are running PIM (Protocol Independent Multicast).
- broadcast-ping
Sends broadcast pings on a selected interface using raw ethernet packets and outputs the responding hosts' IP and MAC addresses or (if requested) adds them as targets. Root privileges on UNIX are required to run this script since it uses raw sockets. Most operating systems don't respond to broadcast-ping probes, but they can be configured to do so.
- broadcast-pppoe-discover
Discovers PPPoE (Point-to-Point Protocol over Ethernet) servers using the PPPoE Discovery protocol (PPPoED). PPPoE is an ethernet based protocol so the script has to know what ethernet interface to use for discovery. If no interface is specified, requests are sent out on all available interfaces.
- broadcast-rip-discover
Discovers hosts and routing information from devices running RIPv2 on the LAN. It does so by sending a RIPv2 Request command and collects the responses from all devices responding to the request.
- broadcast-ripng-discover
Discovers hosts and routing information from devices running RIPng on the LAN by sending a broadcast RIPng Request command and collecting any responses.
- broadcast-sonicwall-discover
Discovers Sonicwall firewalls which are directly attached (not routed) using the same method as the manufacturers own 'SetupTool'. An interface needs to be configured, as the script broadcasts a UDP packet.
- broadcast-sybase-asa-discover
Discovers Sybase Anywhere servers on the LAN by sending broadcast discovery messages.
- broadcast-tellstick-discover
Discovers Telldus Technologies TellStickNet devices on the LAN. The Telldus TellStick is used to wirelessly control electric devices such as lights, dimmers and electric outlets. For more information: http://www.telldus.com/
- broadcast-upnp-info
Attempts to extract system information from the UPnP service by sending a multicast query, then collecting, parsing, and displaying all responses.
- broadcast-versant-locate
Discovers Versant object databases using the broadcast srvloc protocol.
- broadcast-wake-on-lan
Wakes a remote system up from sleep by sending a Wake-On-Lan packet.
- broadcast-wpad-discover
Retrieves a list of proxy servers on a LAN using the Web Proxy Autodiscovery Protocol (WPAD). It implements both the DHCP and DNS methods of doing so and starts by querying DHCP to get the address. DHCP discovery requires nmap to be running in privileged mode and will be skipped when this is not the case. DNS discovery relies on the script being able to resolve the local domain either through a script argument or by attempting to reverse resolve the local IP.
- broadcast-wsdd-discover
Uses a multicast query to discover devices supporting the Web Services Dynamic Discovery (WS-Discovery) protocol. It also attempts to locate any published Windows Communication Framework (WCF) web services (.NET 4.0 or later).
- broadcast-xdmcp-discover
Discovers servers running the X Display Manager Control Protocol (XDMCP) by sending a XDMCP broadcast request to the LAN. Display managers allowing access are marked using the keyword Willing in the result.
- cassandra-info
Attempts to get basic info and server status from a Cassandra database.
- cics-info
Using the CICS transaction CEMT, this script attempts to gather information about the current CICS transaction server region. It gathers OS information, Datasets (files), transactions and user ids. Based on CICSpwn script by Ayoub ELAASSAL.
- citrix-enum-apps
Extracts a list of published applications from the ICA Browser service.
- citrix-enum-apps-xml
Extracts a list of applications, ACLs, and settings from the Citrix XML service.
- citrix-enum-servers
Extracts a list of Citrix servers from the ICA Browser service.
- citrix-enum-servers-xml
Extracts the name of the server farm and member servers from Citrix XML service.
- clock-skew
Analyzes the clock skew between the scanner and various services that report timestamps.
- coap-resources
Dumps list of available resources from CoAP endpoints.
- couchdb-databases
Gets database tables from a CouchDB database.
- couchdb-stats
Gets database statistics from a CouchDB database.
- creds-summary
Lists all discovered credentials (e.g. from brute force and default password checking scripts) at end of scan.
- cups-info
Lists printers managed by the CUPS printing service.
- cups-queue-info
Lists currently queued print jobs of the remote CUPS service grouped by printer.
- daap-get-library
Retrieves a list of music from a DAAP server. The list includes artist names and album and song titles.
- daytime
Retrieves the day and time from the Daytime service.
- db2-das-info
Connects to the IBM DB2 Administration Server (DAS) on TCP or UDP port 523 and exports the server profile. No authentication is required for this request.
- dhcp-discover
Sends a DHCPINFORM request to a host on UDP port 67 to obtain all the local configuration parameters without allocating a new address.
- dicom-ping
Attempts to discover DICOM servers (DICOM Service Provider) through a partial C-ECHO request. It also detects if the server allows any called Application Entity Title or not.
- dict-info
Connects to a dictionary server using the DICT protocol, runs the SHOW SERVER command, and displays the result. The DICT protocol is defined in RFC 2229 and is a protocol which allows a client to query a dictionary server for definitions from a set of natural language dictionary databases.
- dns-blacklist
Checks target IP addresses against multiple DNS anti-spam and open proxy blacklists and returns a list of services for which an IP has been flagged. Checks may be limited by service category (eg: SPAM, PROXY) or to a specific service name.
- dns-check-zone
Checks DNS zone configuration against best practices, including RFC 1912. The configuration checks are divided into categories which each have a number of different tests.
- dns-client-subnet-scan
Performs a domain lookup using the edns-client-subnet option which allows clients to specify the subnet that queries supposedly originate from. The script uses this option to supply a number of geographically distributed locations in an attempt to enumerate as many different address records as possible. The script also supports requests using a given subnet.
- dns-nsid
Retrieves information from a DNS nameserver by requesting its nameserver ID (nsid) and asking for its id.server and version.bind values. This script performs the same queries as the following two dig commands: - dig CH TXT bind.version @target - dig +nsid CH TXT id.server @target
- dns-recursion
Checks if a DNS server allows queries for third-party names. It is expected that recursion will be enabled on your own internal nameservers.
- dns-service-discovery
Attempts to discover target hosts' services using the DNS Service Discovery protocol.
- dns-srv-enum
Enumerates various common service (SRV) records for a given domain name. The service records contain the hostname, port and priority of servers for a given service. The following services are enumerated by the script: - Active Directory Global Catalog - Exchange Autodiscovery - Kerberos KDC Service - Kerberos Passwd Change Service - LDAP Servers - SIP Servers - XMPP S2S - XMPP C2S
- dns-zeustracker
Checks if the target IP range is part of a Zeus botnet by querying ZTDNS @ abuse.ch. Please review the following information before you start to scan:
- drda-info
Attempts to extract information from database servers supporting the DRDA protocol. The script sends a DRDA EXCSAT (exchange server attributes) command packet and parses the response.
- duplicates
Attempts to discover multihomed systems by analysing and comparing information collected by other scripts. The information analyzed currently includes, SSL certificates, SSH host keys, MAC addresses, and Netbios server names.
- eap-info
Enumerates the authentication methods offered by an EAP (Extensible Authentication Protocol) authenticator for a given identity or for the anonymous identity if no argument is passed.
- epmd-info
Connects to Erlang Port Mapper Daemon (epmd) and retrieves a list of nodes with their respective port numbers.
- eppc-enum-processes
Attempts to enumerate process info over the Apple Remote Event protocol. When accessing an application over the Apple Remote Event protocol the service responds with the uid and pid of the application, if it is running, prior to requesting authentication.
- fcrdns
Performs a Forward-confirmed Reverse DNS lookup and reports anomalous results.
- finger
Attempts to retrieve a list of usernames using the finger service.
- firewalk
Tries to discover firewall rules using an IP TTL expiration technique known as firewalking.
- flume-master-info
Retrieves information from Flume master HTTP pages.
- freelancer-info
Detects the Freelancer game server (FLServer.exe) service by sending a status query UDP probe.
- ftp-anon
Checks if an FTP server allows anonymous logins.
- ftp-bounce
Checks to see if an FTP server allows port scanning using the FTP bounce method.
- ftp-syst
Sends FTP SYST and STAT commands and returns the result.
- ganglia-info
Retrieves system information (OS version, available memory, etc.) from a listening Ganglia Monitoring Daemon or Ganglia Meta Daemon.
- giop-info
Queries a CORBA naming server for a list of objects.
- gkrellm-info
Queries a GKRellM service for monitoring information. A single round of collection is made, showing a snapshot of information at the time of the request.
- gopher-ls
Lists files and directories at the root of a gopher service.
- gpsd-info
Retrieves GPS time, coordinates and speed from the GPSD network daemon.
- hadoop-datanode-info
Discovers information such as log directories from an Apache Hadoop DataNode HTTP status page.
- hadoop-jobtracker-info
Retrieves information from an Apache Hadoop JobTracker HTTP status page.
- hadoop-namenode-info
Retrieves information from an Apache Hadoop NameNode HTTP status page.
- hadoop-secondary-namenode-info
Retrieves information from an Apache Hadoop secondary NameNode HTTP status page.
- hadoop-tasktracker-info
Retrieves information from an Apache Hadoop TaskTracker HTTP status page.
- hbase-master-info
Retrieves information from an Apache HBase (Hadoop database) master HTTP status page.
- hbase-region-info
Retrieves information from an Apache HBase (Hadoop database) region server HTTP status page.
- hddtemp-info
Reads hard disk information (such as brand, model, and sometimes temperature) from a listening hddtemp service.
- hnap-info
Retrieve hardwares details and configuration information utilizing HNAP, the "Home Network Administration Protocol". It is an HTTP-Simple Object Access Protocol (SOAP)-based protocol which allows for remote topology discovery, configuration, and management of devices (routers, cameras, PCs, NAS, etc.)
- hostmap-robtex
Discovers hostnames that resolve to the target's IP address by querying the online Robtex service at http://ip.robtex.com/.
- http-affiliate-id
Grabs affiliate network IDs (e.g. Google AdSense or Analytics, Amazon Associates, etc.) from a web page. These can be used to identify pages with the same owner.
- http-apache-negotiation
Checks if the target http server has mod_negotiation enabled. This feature can be leveraged to find hidden resources and spider a web site using fewer requests.
- http-apache-server-status
Attempts to retrieve the server-status page for Apache webservers that have mod_status enabled. If the server-status page exists and appears to be from mod_status the script will parse useful information such as the system uptime, Apache version and recent HTTP requests.
- http-auth
Retrieves the authentication scheme and realm of a web service that requires authentication.
- http-auth-finder
Spiders a web site to find web pages requiring form-based or HTTP-based authentication. The results are returned in a table with each url and the detected method.
- http-backup-finder
Spiders a website and attempts to identify backup copies of discovered files. It does so by requesting a number of different combinations of the filename (eg. index.bak, index.html~, copy of index.html).
- http-bigip-cookie
Decodes any unencrypted F5 BIG-IP cookies in the HTTP response. BIG-IP cookies contain information on backend systems such as internal IP addresses and port numbers. See here for more info: https://support.f5.com/csp/article/K6917
- http-cakephp-version
Obtains the CakePHP version of a web application built with the CakePHP framework by fingerprinting default files shipped with the CakePHP framework.
- http-cisco-anyconnect
Connect as Cisco AnyConnect client to a Cisco SSL VPN and retrieves version and tunnel information.
- http-comments-displayer
Extracts and outputs HTML and JavaScript comments from HTTP responses.
- http-cookie-flags
Examines cookies set by HTTP services. Reports any session cookies set without the httponly flag. Reports any session cookies set over SSL without the secure flag. If http-enum.nse is also run, any interesting paths found by it will be checked in addition to the root.
- http-cors
Tests an http server for Cross-Origin Resource Sharing (CORS), a way for domains to explicitly opt in to having certain methods invoked by another domain.
- http-cross-domain-policy
Checks the cross-domain policy file (/crossdomain.xml) and the client-acces-policy file (/clientaccesspolicy.xml) in web applications and lists the trusted domains. Overly permissive settings enable Cross Site Request Forgery attacks and may allow attackers to access sensitive data. This script is useful to detect permissive configurations and possible domain names available for purchase to exploit the application.
- http-date
Gets the date from HTTP-like services. Also prints how much the date differs from local time. Local time is the time the HTTP request was sent, so the difference includes at least the duration of one RTT.
- http-favicon
Gets the favicon ("favorites icon") from a web page and matches it against a database of the icons of known web applications. If there is a match, the name of the application is printed; otherwise the MD5 hash of the icon data is printed.
- http-fetch
The script is used to fetch files from servers.
- http-frontpage-login
Checks whether target machines are vulnerable to anonymous Frontpage login.
- http-generator
Displays the contents of the "generator" meta tag of a web page (default: /) if there is one.
- http-git
Checks for a Git repository found in a website's document root /.git/<something>) and retrieves as much repo information as possible, including language/framework, remotes, last commit message, and repository description.
- http-gitweb-projects-enum
Retrieves a list of Git projects, owners and descriptions from a gitweb (web interface to the Git revision control system).
- http-google-malware
Checks if hosts are on Google's blacklist of suspected malware and phishing servers. These lists are constantly updated and are part of Google's Safe Browsing service.
- http-grep
Spiders a website and attempts to match all pages and urls against a given string. Matches are counted and grouped per url under which they were discovered.
- http-headers
Performs a HEAD request for the root folder ("/") of a web server and displays the HTTP headers returned.
- http-hp-ilo-info
Attempts to extract information from HP iLO boards including versions and addresses.
- http-icloud-findmyiphone
Retrieves the locations of all "Find my iPhone" enabled iOS devices by querying the MobileMe web service (authentication required).
- http-icloud-sendmsg
Sends a message to a iOS device through the Apple MobileMe web service. The device has to be registered with an Apple ID using the Find My Iphone application.
- http-internal-ip-disclosure
Determines if the web server leaks its internal IP address when sending an HTTP/1.0 request without a Host header.
- http-jsonp-detection
Attempts to discover JSONP endpoints in web servers. JSONP endpoints can be used to bypass Same-origin Policy restrictions in web browsers.
- http-ls
Shows the content of an "index" Web page.
- http-malware-host
Looks for signature of known server compromises.
- http-mcmp
Checks if the webserver allows mod_cluster management protocol (MCMP) methods.
- http-methods
Finds out what options are supported by an HTTP server by sending an OPTIONS request. Lists potentially risky methods. It tests those methods not mentioned in the OPTIONS headers individually and sees if they are implemented. Any output other than 501/405 suggests that the method is if not in the range 400 to 600. If the response falls under that range then it is compared to the response from a randomly generated method.
- http-mobileversion-checker
Checks if the website holds a mobile version.
- http-ntlm-info
This script enumerates information from remote HTTP services with NTLM authentication enabled.
- http-open-proxy
Checks if an HTTP proxy is open.
- http-php-version
Attempts to retrieve the PHP version from a web server. PHP has a number of magic queries that return images or text that can vary with the PHP version. This script uses the following queries:
/?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
: gets a GIF logo, which changes on April Fool's Day./?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
: gets an HTML credits page.
- http-qnap-nas-info
Attempts to retrieve the model, firmware version, and enabled services from a QNAP Network Attached Storage (NAS) device.
- http-referer-checker
Informs about cross-domain include of scripts. Websites that include external javascript scripts are delegating part of their security to third-party entities.
- http-robots.txt
Checks for disallowed entries in
/robots.txt
on a web server.- http-robtex-reverse-ip
Obtains up to 100 forward DNS names for a target IP address by querying the Robtex service (https://www.robtex.com/ip-lookup/).
- http-robtex-shared-ns
Finds up to 100 domain names which use the same name server as the target by querying the Robtex service at http://www.robtex.com/dns/.
- http-sap-netweaver-leak
Detects SAP Netweaver Portal instances that allow anonymous access to the KM unit navigation page. This page leaks file names, ldap users, etc.
- http-security-headers
Checks for the HTTP response headers related to security given in OWASP Secure Headers Project and gives a brief description of the header and its configuration value.
- http-slowloris-check
Tests a web server for vulnerability to the Slowloris DoS attack without actually launching a DoS attack.
- http-svn-enum
Enumerates users of a Subversion repository by examining logs of most recent commits.
- http-svn-info
Requests information from a Subversion repository.
- http-title
Shows the title of the default page of a web server.
- http-trace
Sends an HTTP TRACE request and shows if the method TRACE is enabled. If debug is enabled, it returns the header fields that were modified in the response.
- http-traceroute
Exploits the Max-Forwards HTTP header to detect the presence of reverse proxies.
- http-trane-info
Attempts to obtain information from Trane Tracer SC devices. Trane Tracer SC is an intelligent field panel for communicating with HVAC equipment controllers deployed across several sectors including commercial facilities and others.
- http-useragent-tester
Checks if various crawling utilities are allowed by the host.
- http-virustotal
Checks whether a file has been determined as malware by Virustotal. Virustotal is a service that provides the capability to scan a file or check a checksum against a number of the major antivirus vendors. The script uses the public API which requires a valid API key and has a limit on 4 queries per minute. A key can be acquired by registering as a user on the virustotal web page:
- http-vlcstreamer-ls
Connects to a VLC Streamer helper service and lists directory contents. The VLC Streamer helper service is used by the iOS VLC Streamer application to enable streaming of multimedia content from the remote server to the device.
- http-vmware-path-vuln
Checks for a path-traversal vulnerability in VMWare ESX, ESXi, and Server (CVE-2009-3733).
- http-vuln-cve2010-0738
Tests whether a JBoss target is vulnerable to jmx console authentication bypass (CVE-2010-0738).
- http-vuln-cve2011-3192
Detects a denial of service vulnerability in the way the Apache web server handles requests for multiple overlapping/simple ranges of a page.
- http-vuln-cve2014-2126
Detects whether the Cisco ASA appliance is vulnerable to the Cisco ASA ASDM Privilege Escalation Vulnerability (CVE-2014-2126).
- http-vuln-cve2014-2127
Detects whether the Cisco ASA appliance is vulnerable to the Cisco ASA SSL VPN Privilege Escalation Vulnerability (CVE-2014-2127).
- http-vuln-cve2014-2128
Detects whether the Cisco ASA appliance is vulnerable to the Cisco ASA SSL VPN Authentication Bypass Vulnerability (CVE-2014-2128).
- http-vuln-cve2014-2129
Detects whether the Cisco ASA appliance is vulnerable to the Cisco ASA SIP Denial of Service Vulnerability (CVE-2014-2129).
- http-vuln-cve2015-1635
Checks for a remote code execution vulnerability (MS15-034) in Microsoft Windows systems (CVE2015-2015-1635).
- http-vuln-cve2017-1001000
Attempts to detect a privilege escalation vulnerability in Wordpress 4.7.0 and 4.7.1 that allows unauthenticated users to inject content in posts.
- http-webdav-scan
A script to detect WebDAV installations. Uses the OPTIONS and PROPFIND methods.
- http-xssed
This script searches the xssed.com database and outputs the result.
- icap-info
Tests a list of known ICAP service names and prints information about any it detects. The Internet Content Adaptation Protocol (ICAP) is used to extend transparent proxy servers and is generally used for content filtering and antivirus scanning.
- ike-version
Obtains information (such as vendor and device type where available) from an IKE service by sending four packets to the host. This scripts tests with both Main and Aggressive Mode and sends multiple transforms per request.
- imap-capabilities
Retrieves IMAP email server capabilities.
- imap-ntlm-info
This script enumerates information from remote IMAP services with NTLM authentication enabled.
- ip-forwarding
Detects whether the remote device has ip forwarding or "Internet connection sharing" enabled, by sending an ICMP echo request to a given target using the scanned host as default gateway.
- ip-geolocation-geoplugin
Tries to identify the physical location of an IP address using the Geoplugin geolocation web service (http://www.geoplugin.com/). There is no limit on lookups using this service.
- ip-geolocation-ipinfodb
Tries to identify the physical location of an IP address using the IPInfoDB geolocation web service (http://ipinfodb.com/ip_location_api.php).
- ip-geolocation-map-bing
This script queries the Nmap registry for the GPS coordinates of targets stored by previous geolocation scripts and renders a Bing Map of markers representing the targets.
- ip-geolocation-map-google
This script queries the Nmap registry for the GPS coordinates of targets stored by previous geolocation scripts and renders a Google Map of markers representing the targets.
- ip-geolocation-map-kml
This script queries the Nmap registry for the GPS coordinates of targets stored by previous geolocation scripts and produces a KML file of points representing the targets.
- ip-geolocation-maxmind
Tries to identify the physical location of an IP address using a Geolocation Maxmind database file (available from http://www.maxmind.com/app/ip-location). This script supports queries using all Maxmind databases that are supported by their API including the commercial ones.
- ip-https-discover
Checks if the IP over HTTPS (IP-HTTPS) Tunneling Protocol [1] is supported.
- ipidseq
Classifies a host's IP ID sequence (test for susceptibility to idle scan).
- ipmi-cipher-zero
IPMI 2.0 Cipher Zero Authentication Bypass Scanner. This module identifies IPMI 2.0 compatible systems that are vulnerable to an authentication bypass vulnerability through the use of cipher zero.
- ipmi-version
Performs IPMI Information Discovery through Channel Auth probes.
- ipv6-node-info
Obtains hostnames, IPv4 and IPv6 addresses through IPv6 Node Information Queries.
- irc-botnet-channels
Checks an IRC server for channels that are commonly used by malicious botnets.
- irc-info
Gathers information from an IRC server.
- iscsi-info
Collects and displays information from remote iSCSI targets.
- isns-info
Lists portals and iSCSI nodes registered with the Internet Storage Name Service (iSNS).
- jdwp-info
Attempts to exploit java's remote debugging port. When remote debugging port is left open, it is possible to inject java bytecode and achieve remote code execution. This script injects and execute a Java class file that returns remote system information.
- knx-gateway-discover
Discovers KNX gateways by sending a KNX Search Request to the multicast address 224.0.23.12 including a UDP payload with destination port 3671. KNX gateways will respond with a KNX Search Response including various information about the gateway, such as KNX address and supported services.
- knx-gateway-info
Identifies a KNX gateway on UDP port 3671 by sending a KNX Description Request.
- ldap-novell-getpass
Universal Password enables advanced password policies, including extended characters in passwords, synchronization of passwords from eDirectory to other systems, and a single password for all access to eDirectory.
- ldap-rootdse
Retrieves the LDAP root DSA-specific Entry (DSE)
- ldap-search
Attempts to perform an LDAP search and returns all matches.
- lexmark-config
Retrieves configuration information from a Lexmark S300-S400 printer.
- llmnr-resolve
Resolves a hostname by using the LLMNR (Link-Local Multicast Name Resolution) protocol.
- lltd-discovery
Uses the Microsoft LLTD protocol to discover hosts on a local network.
- maxdb-info
Retrieves version and database information from a SAP Max DB database.
- mcafee-epo-agent
Check if ePO agent is running on port 8081 or port identified as ePO Agent port.
- membase-http-info
Retrieves information (hostname, OS, uptime, etc.) from the CouchBase Web Administration port. The information retrieved by this script does not require any credentials.
- memcached-info
Retrieves information (including system architecture, process ID, and server time) from distributed memory object caching system memcached.
- metasploit-info
Gathers info from the Metasploit rpc service. It requires a valid login pair. After authentication it tries to determine Metasploit version and deduce the OS type. Then it creates a new console and executes few commands to get additional info.
- mongodb-databases
Attempts to get a list of tables from a MongoDB database.
- mongodb-info
Attempts to get build info and server status from a MongoDB database.
- mqtt-subscribe
Dumps message traffic from MQTT brokers.
- mrinfo
Queries targets for multicast routing information.
- ms-sql-config
Queries Microsoft SQL Server (ms-sql) instances for a list of databases, linked servers, and configuration settings.
- ms-sql-dac
Queries the Microsoft SQL Browser service for the DAC (Dedicated Admin Connection) port of a given (or all) SQL Server instance. The DAC port is used to connect to the database instance when normal connection attempts fail, for example, when server is hanging, out of memory or in other bad states. In addition, the DAC port provides an admin with access to system objects otherwise not accessible over normal connections.
- ms-sql-dump-hashes
Dumps the password hashes from an MS-SQL server in a format suitable for cracking by tools such as John-the-ripper. In order to do so the user needs to have the appropriate DB privileges.
- ms-sql-hasdbaccess
Queries Microsoft SQL Server (ms-sql) instances for a list of databases a user has access to.
- ms-sql-info
Attempts to determine configuration and version information for Microsoft SQL Server instances.
- ms-sql-ntlm-info
This script enumerates information from remote Microsoft SQL services with NTLM authentication enabled.
- ms-sql-query
Runs a query against Microsoft SQL Server (ms-sql).
- ms-sql-tables
Queries Microsoft SQL Server (ms-sql) for a list of tables per database.
- msrpc-enum
Queries an MSRPC endpoint mapper for a list of mapped services and displays the gathered information.
- mtrace
Queries for the multicast path from a source to a destination host.
- mysql-audit
Audits MySQL database server security configuration against parts of the CIS MySQL v1.0.2 benchmark (the engine can be used for other MySQL audits by creating appropriate audit files).
- mysql-dump-hashes
Dumps the password hashes from an MySQL server in a format suitable for cracking by tools such as John the Ripper. Appropriate DB privileges (root) are required.
- mysql-info
Connects to a MySQL server and prints information such as the protocol and version numbers, thread ID, status, capabilities, and the password salt.
- mysql-query
Runs a query against a MySQL database and returns the results as a table.
- nat-pmp-info
Gets the routers WAN IP using the NAT Port Mapping Protocol (NAT-PMP). The NAT-PMP protocol is supported by a broad range of routers including:
- Apple AirPort Express
- Apple AirPort Extreme
- Apple Time Capsule
- DD-WRT
- OpenWrt v8.09 or higher, with MiniUPnP daemon
- pfSense v2.0
- Tarifa (firmware) (Linksys WRT54G/GL/GS)
- Tomato Firmware v1.24 or higher. (Linksys WRT54G/GL/GS and many more)
- Peplink Balance
- nat-pmp-mapport
Maps a WAN port on the router to a local port on the client using the NAT Port Mapping Protocol (NAT-PMP). It supports the following operations:
- map - maps a new external port on the router to an internal port of the requesting IP
- unmap - unmaps a previously mapped port for the requesting IP
- unmapall - unmaps all previously mapped ports for the requesting IP
- nbns-interfaces
Retrieves IP addresses of the target's network interfaces via NetBIOS NS. Additional network interfaces may reveal more information about the target, including finding paths to hidden non-routed networks via multihomed systems.
- nbstat
Attempts to retrieve the target's NetBIOS names and MAC address.
- ncp-enum-users
Retrieves a list of all eDirectory users from the Novell NetWare Core Protocol (NCP) service.
- ncp-serverinfo
Retrieves eDirectory server information (OS version, server name, mounts, etc.) from the Novell NetWare Core Protocol (NCP) service.
- ndmp-fs-info
Lists remote file systems by querying the remote device using the Network Data Management Protocol (ndmp). NDMP is a protocol intended to transport data between a NAS device and the backup device, removing the need for the data to pass through the backup server. The following products are known to support the protocol:
- Amanda
- Bacula
- CA Arcserve
- CommVault Simpana
- EMC Networker
- Hitachi Data Systems
- IBM Tivoli
- Quest Software Netvault Backup
- Symantec Netbackup
- Symantec Backup Exec
- netbus-auth-bypass
Checks if a NetBus server is vulnerable to an authentication bypass vulnerability which allows full access without knowing the password.
- netbus-info
Opens a connection to a NetBus server and extracts information about the host and the NetBus service itself.
- nfs-ls
Attempts to get useful information about files from NFS exports. The output is intended to resemble the output of
ls
.- nfs-showmount
Shows NFS exports, like the
showmount -e
command.- nfs-statfs
Retrieves disk space statistics and information from a remote NFS share. The output is intended to resemble the output of
df
.- nntp-ntlm-info
This script enumerates information from remote NNTP services with NTLM authentication enabled.
- ntp-info
Gets the time and configuration variables from an NTP server. We send two requests: a time request and a "read variables" (opcode 2) control message. Without verbosity, the script shows the time and the value of the
version
,processor
,system
,refid
, andstratum
variables. With verbosity, all variables are shown.- omp2-enum-targets
Attempts to retrieve the list of target systems and networks from an OpenVAS Manager server.
- openflow-info
Queries OpenFlow controllers for information. Newer versions of the OpenFlow protocol (1.3 and greater) will return a list of all protocol versions supported by the controller. Versions prior to 1.3 only return their own version number.
- openlookup-info
Parses and displays the banner information of an OpenLookup (network key-value store) server.
- openwebnet-discovery
OpenWebNet is a communications protocol developed by Bticino since 2000. Retrieves device identifying information and number of connected devices.
- oracle-tns-version
Decodes the VSNNUM version number from an Oracle TNS listener.
- p2p-conficker
Checks if a host is infected with Conficker.C or higher, based on Conficker's peer to peer communication.
- path-mtu
Performs simple Path MTU Discovery to target hosts.
- pop3-capabilities
Retrieves POP3 email server capabilities.
- pop3-ntlm-info
This script enumerates information from remote POP3 services with NTLM authentication enabled.
- port-states
Prints a list of ports found in each state.
- qscan
Repeatedly probe open and/or closed ports on a host to obtain a series of round-trip time values for each port. These values are used to group collections of ports which are statistically different from other groups. Ports being in different groups (or "families") may be due to network mechanisms such as port forwarding to machines behind a NAT.
- quake1-info
Extracts information from Quake game servers and other game servers which use the same protocol.
- quake3-info
Extracts information from a Quake3 game server and other games which use the same protocol.
- quake3-master-getservers
Queries Quake3-style master servers for game servers (many games other than Quake 3 use this same protocol).
- rdp-enum-encryption
Determines which Security layer and Encryption level is supported by the RDP service. It does so by cycling through all existing protocols and ciphers. When run in debug mode, the script also returns the protocols and ciphers that fail and any errors that were reported.
- rdp-ntlm-info
This script enumerates information from remote RDP services with CredSSP (NLA) authentication enabled.
- realvnc-auth-bypass
Checks if a VNC server is vulnerable to the RealVNC authentication bypass (CVE-2006-2369).
- redis-info
Retrieves information (such as version number and architecture) from a Redis key-value store.
- resolveall
NOTE: This script has been replaced by the
--resolve-all
command-line option in Nmap 7.70- reverse-index
Creates a reverse index at the end of scan output showing which hosts run a particular service. This is in addition to Nmap's normal output listing the services on each host.
- rfc868-time
Retrieves the day and time from the Time service.
- riak-http-info
Retrieves information (such as node name and architecture) from a Basho Riak distributed database using the HTTP protocol.
- rmi-dumpregistry
Connects to a remote RMI registry and attempts to dump all of its objects.
- rpcap-info
Connects to the rpcap service (provides remote sniffing capabilities through WinPcap) and retrieves interface information. The service can either be setup to require authentication or not and also supports IP restrictions.
- rpcinfo
Connects to portmapper and fetches a list of all registered programs. It then prints out a table including (for each program) the RPC program number, supported version numbers, port number and protocol, and program name.
- rsa-vuln-roca
Detects RSA keys vulnerable to Return Of Coppersmith Attack (ROCA) factorization.
- rsync-list-modules
Lists modules available for rsync (remote file sync) synchronization.
- rtsp-methods
Determines which methods are supported by the RTSP (real time streaming protocol) server.
- rusers
Connects to rusersd RPC service and retrieves a list of logged-in users.
- servicetags
Attempts to extract system information (OS, hardware, etc.) from the Sun Service Tags service agent (UDP port 6481).
- shodan-api
Queries Shodan API for given targets and produces similar output to a -sV nmap scan. The ShodanAPI key can be set with the 'apikey' script argument, or hardcoded in the .nse file itself. You can get a free key from https://developer.shodan.io
- sip-methods
Enumerates a SIP Server's allowed methods (INVITE, OPTIONS, SUBSCRIBE, etc.)
- smb-double-pulsar-backdoor
Checks if the target machine is running the Double Pulsar SMB backdoor.
- smb-enum-services
Retrieves the list of services running on a remote Windows system. Each service attribute contains service name, display name and service status of each service.
- smb-ls
Attempts to retrieve useful information about files shared on SMB volumes. The output is intended to resemble the output of the UNIX
ls
command.- smb-mbenum
Queries information managed by the Windows Master Browser.
- smb-os-discovery
Attempts to determine the operating system, computer name, domain, workgroup, and current time over the SMB protocol (ports 445 or 139). This is done by starting a session with the anonymous account (or with a proper user account, if one is given; it likely doesn't make a difference); in response to a session starting, the server will send back all this information.
- smb-protocols
Attempts to list the supported protocols and dialects of a SMB server.
- smb-security-mode
Returns information about the SMB security level determined by SMB.
- smb-vuln-ms17-010
Attempts to detect if a Microsoft SMBv1 server is vulnerable to a remote code execution vulnerability (ms17-010, a.k.a. EternalBlue). The vulnerability is actively exploited by WannaCry and Petya ransomware and other malware.
- smb2-capabilities
Attempts to list the supported capabilities in a SMBv2 server for each enabled dialect.
- smb2-security-mode
Determines the message signing configuration in SMBv2 servers for all supported dialects.
- smb2-time
Attempts to obtain the current system date and the start date of a SMB2 server.
- smb2-vuln-uptime
Attempts to detect missing patches in Windows systems by checking the uptime returned during the SMB2 protocol negotiation.
- smtp-commands
Attempts to use EHLO and HELP to gather the Extended commands supported by an SMTP server.
- smtp-ntlm-info
This script enumerates information from remote SMTP services with NTLM authentication enabled.
- smtp-strangeport
Checks if SMTP is running on a non-standard port.
- snmp-hh3c-logins
Attempts to enumerate Huawei / HP/H3C Locally Defined Users through the hh3c-user.mib OID
- snmp-info
Extracts basic information from an SNMPv3 GET request. The same probe is used here as in the service version detection scan.
- snmp-interfaces
Attempts to enumerate network interfaces through SNMP.
- snmp-netstat
Attempts to query SNMP for a netstat like output. The script can be used to identify and automatically add new targets to the scan by supplying the newtargets script argument.
- snmp-processes
Attempts to enumerate running processes through SNMP.
- snmp-sysdescr
Attempts to extract system information from an SNMP service.
- snmp-win32-services
Attempts to enumerate Windows services through SNMP.
- snmp-win32-shares
Attempts to enumerate Windows Shares through SNMP.
- snmp-win32-software
Attempts to enumerate installed software through SNMP.
- snmp-win32-users
Attempts to enumerate Windows user accounts through SNMP
- socks-auth-info
Determines the supported authentication mechanisms of a remote SOCKS proxy server. Starting with SOCKS version 5 socks servers may support authentication. The script checks for the following authentication types: 0 - No authentication 1 - GSSAPI 2 - Username and password
- socks-open-proxy
Checks if an open socks proxy is running on the target.
- ssh-hostkey
Shows SSH hostkeys.
- ssh2-enum-algos
Reports the number of algorithms (for encryption, compression, etc.) that the target SSH2 server offers. If verbosity is set, the offered algorithms are each listed by type.
- sshv1
Checks if an SSH server supports the obsolete and less secure SSH Protocol Version 1.
- ssl-ccs-injection
Detects whether a server is vulnerable to the SSL/TLS "CCS Injection" vulnerability (CVE-2014-0224), first discovered by Masashi Kikuchi. The script is based on the ccsinjection.c code authored by Ramon de C Valle (https://gist.github.com/rcvalle/71f4b027d61a78c42607)
- ssl-cert
Retrieves a server's SSL certificate. The amount of information printed about the certificate depends on the verbosity level. With no extra verbosity, the script prints the validity period and the commonName, organizationName, stateOrProvinceName, and countryName of the subject.
- ssl-cert-intaddr
Reports any private (RFC1918) IPv4 addresses found in the various fields of an SSL service's certificate. These will only be reported if the target address itself is not private. Nmap v7.30 or later is required.
- ssl-date
Retrieves a target host's time and date from its TLS ServerHello response.
- ssl-dh-params
Weak ephemeral Diffie-Hellman parameter detection for SSL/TLS services.
- ssl-heartbleed
Detects whether a server is vulnerable to the OpenSSL Heartbleed bug (CVE-2014-0160). The code is based on the Python script ssltest.py authored by Katie Stafford (katie@ktpanda.org)
- ssl-known-key
Checks whether the SSL certificate used by a host has a fingerprint that matches an included database of problematic keys.
- ssl-poodle
Checks whether SSLv3 CBC ciphers are allowed (POODLE)
- sslv2
Determines whether the server supports obsolete and less secure SSLv2, and discovers which ciphers it supports.
- sstp-discover
Check if the Secure Socket Tunneling Protocol is supported. This is accomplished by trying to establish the HTTPS layer which is used to carry SSTP traffic as described in: - http://msdn.microsoft.com/en-us/library/cc247364.aspx
- stun-info
Retrieves the external IP address of a NAT:ed host using the STUN protocol.
- targets-asn
Produces a list of IP prefixes for a given routing AS number (ASN).
- targets-sniffer
Sniffs the local network for a configurable amount of time (10 seconds by default) and prints discovered addresses. If the
newtargets
script argument is set, discovered addresses are added to the scan queue.- targets-traceroute
Inserts traceroute hops into the Nmap scanning queue. It only functions if Nmap's
--traceroute
option is used and thenewtargets
script argument is given.- targets-xml
Loads addresses from an Nmap XML output file for scanning.
- telnet-encryption
Determines whether the encryption option is supported on a remote telnet server. Some systems (including FreeBSD and the krb5 telnetd available in many Linux distributions) implement this option incorrectly, leading to a remote root vulnerability. This script currently only tests whether encryption is supported, not for that particular vulnerability.
- telnet-ntlm-info
This script enumerates information from remote Microsoft Telnet services with NTLM authentication enabled.
- tls-alpn
Enumerates a TLS server's supported application-layer protocols using the ALPN protocol.
- tls-nextprotoneg
Enumerates a TLS server's supported protocols by using the next protocol negotiation extension.
- tls-ticketbleed
Detects whether a server is vulnerable to the F5 Ticketbleed bug (CVE-2016-9244).
- tn3270-screen
Connects to a tn3270 'server' and returns the screen.
- tor-consensus-checker
Checks if a target is a known Tor node.
- traceroute-geolocation
Lists the geographic locations of each hop in a traceroute and optionally saves the results to a KML file, plottable on Google earth and maps.
- ubiquiti-discovery
Extracts information from Ubiquiti networking devices.
- unittest
Runs unit tests on all NSE libraries.
- unusual-port
Compares the detected service on a port against the expected service for that port number (e.g. ssh on 22, http on 80) and reports deviations. The script requires that a version scan has been run in order to be able to discover what service is actually running on each port.
- upnp-info
Attempts to extract system information from the UPnP service.
- uptime-agent-info
Gets system information from an Idera Uptime Infrastructure Monitor agent.
- url-snarf
Sniffs an interface for HTTP traffic and dumps any URLs, and their originating IP address. Script output differs from other script as URLs are written to stdout directly. There is also an option to log the results to file.
- ventrilo-info
Detects the Ventrilo voice communication server service versions 2.1.2 and above and tries to determine version and configuration information. Some of the older versions (pre 3.0.0) may not have the UDP service that this probe relies on enabled by default.
- versant-info
Extracts information, including file paths, version and database names from a Versant object database.
- vmware-version
Queries VMware server (vCenter, ESX, ESXi) SOAP API to extract the version information.
- vnc-info
Queries a VNC server for its protocol version and supported security types.
- voldemort-info
Retrieves cluster and store information from the Voldemort distributed key-value store using the Voldemort Native Protocol.
- vulners
For each available CPE the script prints out known vulns (links to the correspondent info) and correspondent CVSS scores.
- vuze-dht-info
Retrieves some basic information, including protocol version from a Vuze filesharing node.
- wdb-version
Detects vulnerabilities and gathers information (such as version numbers and hardware support) from VxWorks Wind DeBug agents.
- weblogic-t3-info
Detect the T3 RMI protocol and Weblogic version
- whois-domain
Attempts to retrieve information about the domain name of the target
- whois-ip
Queries the WHOIS services of Regional Internet Registries (RIR) and attempts to retrieve information about the IP Address Assignment which contains the Target IP Address.
- wsdd-discover
Retrieves and displays information from devices supporting the Web Services Dynamic Discovery (WS-Discovery) protocol. It also attempts to locate any published Windows Communication Framework (WCF) web services (.NET 4.0 or later).
- x11-access
Checks if you're allowed to connect to the X server.
- xdmcp-discover
Requests an XDMCP (X display manager control protocol) session and lists supported authentication and authorization mechanisms.
- xmlrpc-methods
Performs XMLRPC Introspection via the system.listMethods method.
- xmpp-info
Connects to XMPP server (port 5222) and collects server information such as: supported auth mechanisms, compression methods, whether TLS is supported and mandatory, stream management, language, support of In-Band registration, server capabilities. If possible, studies server vendor.