Nmap (“Network Mapper”) is a free and open source (license) utility for network discovery and security auditing. Many systems and network administrators also find it useful for tasks such as network inventory, managing service upgrade schedules, and monitoring host or service uptime. Nmap uses raw IP packets in novel ways to determine what hosts are available on the network, what services (application name and version) those hosts are offering, what operating systems (and OS versions) they are running, what type of packet filters/firewalls are in use, and dozens of other characteristics.
Supports dozens of advanced techniques for mapping out networks filled with IP filters, firewalls, routers, and other obstacles. This includes many port scanning mechanisms (both TCP & UDP), OS detection, version detection, ping sweeps, and more.
Nmap has been used to scan huge networks of literally hundreds of thousands of machines.
While Nmap offers a rich set of advanced features for power users, you can start out as simply as “nmap -v -A targethost”. Both traditional command line and graphical (GUI) versions are available to suit your preference. Binaries are available for those who do not wish to compile Nmap from source.
Available for free download, and also comes with full source code that you may modify and redistribute under the terms of the license.
Screenshots are not available
– Windows] Updated the bundled Npcap from 0.93 to 0.99-r2, with many stability fixes and installation improvements, as well as fixes to raw 802.11 frame capture.
– Integrated all of your service/version detection fingerprints submitted from March 2017 to August 2017 (728 of them). The signature count went up 1.02% to 11,672, including 26 new softmatches. We now detect 1224 protocols from filenet-pch, lscp, and netassistant to sharp-remote, urbackup, and watchguard. We will try to integrate the remaining submissions in the next release.
– Integrated all of your IPv4 OS fingerprint submissions from September 2016 to August 2017 (667 of them). Added 298 fingerprints, bringing the new total to 5,652. Additions include iOS 11, macOS Sierra, Linux 4.14, Android 7, and more.
– Integrated all 33 of your IPv6 OS fingerprint submissions from September 2016 to August 2017. New groups for OpenBSD 6.0 and FreeBSD 11.0 were added, as well as strengthened groups for Linux and OS X.
– Added the –resolve-all option to resolve and scan all IP addresses of a host. This essentially replaces the resolveall NSE script.
– [NSE][SECURITY] Nmap developer nnposter found a security flaw (directory traversal vulnerability) in the way the non-default http-fetch script sanitized URLs. If a user manualy ran this NSE script with against a malicious web server, the server could potentially (depending on NSE arguments used) cause files to be saved outside the intended destination directory. Existing files couldn’t be overwritten. We fixed http-fetch, audited our other scripts to ensure they didn’t make this mistake, and we updated the httpspider library API to protect against this by default.
– [NSE] Added 9 NSE scripts, from 8 authors, bringing the total up to 588! They are all listed at https://nmap.org/nsedoc/, and the summaries are below:
– deluge-rpc-brute performs brute-force credential testing against Deluge BitTorrent RPC services, using the new zlib library.
– hostmap-crtsh lists subdomains by querying Google’s Certificate Transparency logs.
– http-bigip-cookie decodes unencrypted F5 BIG-IP cookies and reports back the IP address and port of the actual server behind the load-balancer.
– 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-trane-info obtains information from Trane Tracer SC controllers and connected HVAC devices.
– nbd-info uses the new nbd.lua library to query Network Block Devices for protocol and file export information.
– rsa-vuln-roca checks for RSA keys generated by Infineon TPMs vulnerable to Return Of Coppersmith Attack (ROCA). Checks SSH and TLS services.
– smb-enum-services retrieves the list of services running on a remote Windows machine. Modern Windows systems requires a privileged domain account in order to list the services.
– tls-alpn checks TLS servers for Application Layer Protocol Negotiation (ALPN) support and reports supported protocols. ALPN largely replaces NPN, which tls-nextprotoneg was written for.
– Fixed Nsock on Windows giving errors when selecting on STDIN. This was causing Ncat 7.60 in connect mode to quit with error: libnsock select_loop(): nsock_loop error 10038: An operation was attempted on something that is not a socket.
– [Ncat] Fix –ssl connections from dropping on renegotiation, the same issue that was partially fixed for server mode in [GH#773].
– [NSE] Some changes to brute.lua to better handle misbehaving or rate-limiting services. Most significantly, brute.killstagnated now defaults to true.
– [NSE] VNC scripts now support Apple Remote Desktop authentication (auth type 30).
– [NSE] Fix a script crash in ftp.lua when PASV connection timed out.
– [NSE] Update bitcoin-getaddr to receive more than one response message, since the first message usually only has one address in it.
– [Ncat] Ncat now selects the correct default port for a given proxy type.
– [NSE] memcached-info can now gather information from the UDP memcached service in addition to the TCP service. The UDP service is frequently used as a DDoS reflector and amplifier.
– [NSE] Changed url.absolute() behavior with respect to dot and dot-dot path segments to comply with RFC 3986, section 5.2.
– Removed deprecated and undocumented aliases for several long options that used underscores instead of hyphens, such as –max_retries.
– Improved service scan’s treatment of soft matches in two ways. First of all, any probes that could result in a full match with the soft matched service will now be sent, regardless of rarity. This improves the chances of matching unusual services on non-standard ports. Second, probes are now skipped if they don’t contain any signatures for the soft matched service. Previously the probes would still be run as long as the target port number matched the probe’s specification. Together, these changes should make service/version detection faster and more accurate.
– –version-all now turns off the soft match optimization, ensuring that all probes really are sent, even if there aren’t any existing match lines for the softmatched service. This is slower, but gives the most comprehensive results and produces better fingerprints for submission.
– [NSE] New set of Telnet softmatches for version detection based on Telnet DO/DON’T options offered, covering a wide variety of devices and operating systems.
– Resolved crash opportunities caused by unexpected libpcap version string format.
– [NSE] Fix false positives in rexec-brute by checking responses for indications of login failure.
– [NSE] Fix http-fetch to keep downloaded files in separate destination directories.
– [NSE] Added new fingerprints to http-default-accounts:
– Hikvision DS-XXX Network Camera and NUOO DVR.
– ActiveMQ, Purestorage, and Axis Network Cameras.
– Added a new service detection match for WatchGuard Authentication Gateway.
– [NSE] Script qscan was not observing interpacket delays (parameter qscan.delay).
– [NSE] Script http-headers now fails properly if the target does not return a valid HTTP response.
– [Ncat][Nsock] Remove RC4 from the list of TLS ciphers used by default, in accordance with RFC 7465.
– [NSE] Fix a false positive condition in ipmi-cipher-zero caused by not checking the error code in responses. Implementations which return an error are not vulnerable.
– [NSE] Two new libraries for NSE:
– idna – Support for internationalized domain names in applications (IDNA).
– punycode (a transfer encoding syntax used in IDNA).
– [NSE] New fingerprints for http-enum:
– Telerik UI CVE-2017-9248.
– Many WordPress version detections.
– Fixed Ncat proxy authentication issues:
– Usernames and/or passwords could not be empty.
– Passwords could not contain colons.
– SOCKS5 authentication was not properly documented.
– SOCKS5 authentication had a memory leak.
– Fixes to autoconf header files to allow autoreconf to be run.
– Improved DNS service version detection coverage and consistency by using data from a Project Sonar Internet wide survey. Numerouse false positives were removed and reliable softmatches added. Match lines for version.bind responses were also conslidated using the technique below.
– Changed version probe fallbacks so as to work cross protocol (TCP/UDP). This enables consolidating match lines for services where the responses on TCP and UDP are similar.
– [NSE] Added the zlib library for NSE so scripts can easily handle compression. This work started during GSOC 2014, so we’re particularly pleased to finally integrate it!
– [NSE] Fixed handling of brute.retries variable. It was being treated as the number of tries, not retries, and a value of 0 would result in infinite retries. Instead, it is now the number of retries, defaulting to 2 (3 total tries), with no option for infinite retries.
– [NSE] http-devframework-fingerprints.lua supports Jenkins server detection and returns extra information when Jenkins is detected.
– The rarity level of MS SQL’s service detection probe was decreased. Now we can find MS SQL in odd ports without increasing version intensity.
– Fix reporting of zlib and libssh2 versions in “nmap –version”. We were always reporting the version number of the included source, even when a different version was actually linked.
– Add a new helper function for nmap-service-probes match lines: $I(1,”>”) will unpack an unsigned big-endian integer value up to 8 bytes wide from capture 1. The second option can be “<” for little-endian.