| Nmap Security Scanner | |
|---|---|
Nmap scan results | |
| Original author | Gordon Lyon (Fyodor) |
| Release | September 1, 1997 |
| Stable release | |
| Written in | C, C++, Python, Lua |
| Operating system | Cross-platform |
| Available in | English |
| Type | Network scanner, network security |
| License | NPSL; proprietary OEM license available |
| Website | nmap |
| Repository | |
Nmap (Network Mapper) is a network scanner created by Gordon Lyon (also known by his pseudonym Fyodor Vaskovich). It was first released in September 1997 in Phrack magazine. Nmap is used to discover hosts and services on a computer network by sending packets and analyzing the responses.
Nmap provides a number of features for probing computer networks, including host discovery and service and operating system detection. These features are extensible by scripts that provide more advanced service detection, vulnerability detection, and other features. Nmap can adapt to network conditions including latency and congestion during a scan. The Nmap distribution also includes the Zenmap graphical user interface, the Ncat networking utility, the Ndiff scan comparison tool and the Nping packet generation tool.
Nmap started as a Linux utility and was ported to other systems including Windows, macOS, and BSD. According to the Nmap Project, Windows, supported since 2000, has become its second most popular platform after Linux.
Nmap features include:
nmap-service-probes database and matches the responses against known signatures to identify the service protocol, application, version, and sometimes the device type and operating system family.Nmap can provide further information on targets, including reverse DNS names, device types, and MAC addresses.
Nmap is distributed with several companion programs: Ncat, a reimplementation of netcat that adds support for SSL, connection redirection and proxying; Ndiff, which compares the results of two Nmap scans and reports the changes; and Nping, a tool for network packet generation, response analysis and response time measurement.
Typical uses of Nmap:
Academic surveys of network attack surface mapping review it among the prominent tools used for network reconnaissance.
NmapFE, originally written by Zach Smith, was Nmap's official GUI for Nmap versions 2.11 to 4.22. For Nmap 4.50 (originally in the 4.22SOC development series) NmapFE was replaced with Zenmap, a new official graphical user interface based on UMIT, developed by Adriano Monteiro Marques. Zenmap gained an interactive network topology viewer and the ability to combine several scans into one view in Nmap 4.75, released in 2008.
Web-based interfaces exist that allow either controlling Nmap or analysing Nmap results from a web browser, such as IVRE.
Four different output formats are offered by Nmap. Everything is saved to a file except the interactive output. Text processing software can be used to modify Nmap output, allowing the user to customize reports.
Interesting ports becomes Int3rest1ng p0rtz. This is known as Leet.Nmap was first published in September 1997, as an article in Phrack Magazine with source-code included. The first release ran only on Linux, was about 2,000 lines long and had no version number, because further releases were not planned; a revised version 1.25 followed on 5 September 1997. Lyon later said he had written Nmap for his own network discovery after modifying several existing port scanners to add features they lacked, and had published it in case others found it useful; the bug reports, fixes and suggestions that followed led him to continue releasing new versions. With help and contributions of the computer security community, development continued. Enhancements included operating system fingerprinting, service fingerprinting, code rewrites (C to C++), additional scan types, protocol support (e.g. IPv6, SCTP) and new programs that complement Nmap's core features.
Notable releases include:
| Date | Version | Significance |
|---|---|---|
| December 12, 1998 | Nmap 2.00 | Nmap 2.00 is released, including Operating System fingerprinting inspired by the earlier tool Queso |
| April 11, 1999 | NmapFE | A GTK+ front end, is bundled with Nmap |
| December 7, 2000 | Windows port | |
| July 31, 2002 | Nmap 3.00 | Mac OS X support, XML output and uptime detection |
| August 28, 2002 | Rewrite from C to C++, with initial IPv6 support | |
| September 16, 2003 | Nmap 3.45 | The first public release to include service version detection |
| August 31, 2004 | Nmap 3.70 | Core scan engine rewritten for version 3.70. New engine is called ultra_scan |
| Summer 2005 | Nmap selected for participation in Google Summer of Code. Added features included Zenmap, Nmap Scripting Engine (NSE), Ncat, and 2nd-generation OS detection. | |
| December 13, 2007 | Nmap 4.50 | Nmap 4.50, the 10th Anniversary Edition, was released. Included Zenmap, 2nd-generation OS detection, and the Nmap Scripting Engine |
| March 30, 2009 | Nmap 4.85BETA5 | Emergency release of Nmap 4.85BETA5, leveraging NSE to detect Conficker infections |
| July 16, 2009 | Nmap 5.00 | Included netcat-replacement Ncat and Ndiff scan comparison tool |
| January 28, 2011 | Nmap 5.50 | Included Nping packet generation response analysis and response time measurement, including TCP, UDP and ICMP probe modes. |
| May 21, 2012 | Nmap 6.00 | Released with full IPv6 support, including a new IPv6 OS detection system based on machine learning |
| November 19, 2015 | Nmap 7.00 | More than 330 improvements since Nmap 6, including mature IPv6 support and an expanded Nmap Scripting Engine of 515 scripts. |
| December 20, 2016 | Nmap 7.40 | Integrated 568 user-submitted OS fingerprints and 779 service fingerprints. NSE reached 552 scripts, including several for IBM mainframe TN3270 services. A new --defeat-icmp-ratelimit option shortens UDP scans. |
| June 13, 2017 | Nmap 7.50 | Added scripts detecting the MS17-010 SMB vulnerability and the DoublePulsar backdoor. NSE reached 566 scripts. |
| July 31, 2017 | Nmap 7.60 | Full SSH support in NSE through libssh2, including password brute-forcing and remote command execution, along with new SMB2 and SMB3 scripts and DTLS support in Ncat. NSE reached 579 scripts. |
| March 20, 2018 | Nmap 7.70 | Integrated 728 service and 667 IPv4 OS fingerprint submissions. Added nine NSE scripts, including a check for the ROCA vulnerability in RSA keys, bringing the total to 588. |
| August 10, 2019 | Nmap 7.80 | Updated the bundled Npcap Windows packet capture driver. Added 11 NSE scripts, bringing the total to 598, including vulners, which uses version detection results to query the Vulners database for known vulnerabilities. |
| October 3, 2020 | Nmap 7.90 | The new fingerprints allow better operating system and service/version detection. Three new NSE scripts, new protocol library and payloads for host discovery, port scanning and version detection. Npcap 1.0.0, the first fully stable version of the Windows raw packet capturing/sending driver. First release under the Nmap Public Source License. |
| September 1, 2022 | Nmap 7.93 | Released on Nmap's 25th anniversary. Builds with OpenSSL 3.0 and bundles Npcap 1.71. |
| May 19, 2023 | Nmap 7.94 | Zenmap and Ndiff ported to Python 3. Partial silent-install support added to the Windows installer. License updated to NPSL version 0.95. |
| April 23, 2024 | Nmap 7.95 | Integrated over 4,000 user-submitted IPv4 OS fingerprints, raising the OS signature count to 6,036, and extended service detection to 1,246 protocols. Added scripts for querying industrial control systems. |
| May 1, 2025 | Nmap 7.96 | Forward DNS lookups are performed in parallel; in the project's testing, resolving one million hostnames fell from 49 hours to just over an hour. Zenmap gained a dark mode, and NSE reached 612 scripts. |
| August 21, 2025 | Nmap 7.98 | Windows installer rebuilt to address CVE-2025-43715, a privilege escalation flaw in the Nullsoft Scriptable Install System. |
| March 26, 2026 | Nmap 7.99 | Integrated new IPv4 and IPv6 OS fingerprints. Zenmap is distributed as a platform-independent Python wheel instead of an RPM package, and the Windows version can scan over VPN virtual adapters. |
| August 6, 2026 | Nmap 7.991 | Security release fixing memory safety flaws in OS detection, Ncat and Nping reported by outside researchers, and patching six vulnerabilities in the bundled libssh2 library. |
| October 15, 2026 | Nmap 7.992 | Introduced execution time and memory limits for NSE scripts and a fuzzing framework, and fixed several reported security issues. Added eight scripts for auditing DICOM medical imaging services, bringing NSE to 620 scripts. |
Nmap is a tool that can be used to discover services running on Internet connected systems. Like any tool, it could potentially be used for black hat hacking, as a precursor to attempts to gain unauthorized access to computer systems. However, Nmap is also used by security and systems administrators to assess their own networks for vulnerabilities (i.e. white hat hacking).
System administrators can use Nmap to search for unauthorized servers, or for computers that do not conform to security standards.
In 2003 Supreme Court of Finland ruled that port scanning amounted to an attempted computer break-in, which was illegal under Finnish penal code at the time:
In its ruling the Supreme Court stated that the defendant had systematically carried out port scanning operations to gather information for the purpose of unauthorised break-in to the bank's computer network. This amounted to an attempted computer break-in.
Nmap was originally distributed under the GNU General Public License (GPL). In later releases, Nmap's authors added clarifications and specific interpretations to the license where they felt the GPL was unclear or lacking. For instance, Nmap 3.50 specifically revoked the license of SCO Group to distribute Nmap software because of their views on the SCO–Linux disputes.
Starting with version 7.90, released in October 2020, Nmap is distributed under the Nmap Public Source License (NPSL), a custom license based on GPLv2 with additional terms, conditions and exceptions. The license prohibits redistribution and use of Nmap within proprietary software and hardware products, and the Nmap Project funds its development by selling a separate Nmap OEM license to companies that embed Nmap in their products. The project states that it believes the NPSL complies with the Open Source Definition, but it has not submitted the license for certification. To ease the transition, versions 7.90, 7.91 and 7.92 may also be used under the previous license terms.
The new license was questioned by several Linux distributions. Developers of GNU Guix, Debian and Gentoo raised concerns that NPSL version 0.92 was not a free software license, in particular over a clause directing "proprietary software companies" to purchase a separate license. In January 2021 Fedora determined that NPSL 0.92 was not acceptable for software it distributes, describing the clause as a field-of-endeavor restriction contrary to the Open Source Definition, and Void Linux and Debian reverted to versions released before the license change. Lyon rewrote the clause in NPSL version 0.93, and version 0.95 was adopted with Nmap 7.94 in 2023. Fedora also classified NPSL 0.95 as not allowed and in 2024 reverted its nmap package to version 7.92, which can still be used under the earlier license terms. Debian resumed packaging NPSL-licensed releases while discussion continued over whether the license meets the Debian Free Software Guidelines.
In The Matrix Reloaded, Trinity is seen using Nmap to find a host with an open SSH port, which she then compromises with a real SSH exploit to access a power plant's computer system, allowing Neo to "physically" break into a building. The appearance of Nmap in the film was widely discussed on Internet forums and hailed as an unusually realistic example of hacking.
Nmap and NmapFE were used in The Listening, a 2006 movie about a former NSA officer who defects and mounts a clandestine counter-listening station high in the Italian alps.
Nmap source code can be seen in the movie Battle Royale, as well as brief views of the command line version of Nmap executing in Live Free or Die Hard and Bourne Ultimatum. In 2013, Nmap continued to make appearances in movies including popular sci-fi movie Elysium.
The film Dredd, a film adaptation of the famous Judge Dredd comics, was released in 2012 and also contains multiple Nmap scenes. Nmap is used for network reconnaissance and exploitation of the slum tower network. It is even seen briefly in the movie's trailer.
The command Nmap is widely used in the video game Hacknet, allowing to probe the network ports of a target system to hack it.
In Snowden, Nmap is used in the aptitude test scene about 14 minutes into the movie.
Nmap is an integral part of academic activities. It has been used for research involving the TCP/IP protocol suite and networking in general. Besides being a research tool, Nmap has also become a research topic. The detection of Nmap scans has also been studied; a 2020 IEEE conference paper reported that common intrusion detection rules detected Nmap scans far less reliably when its evasion options were used, and proposed a rule set for the Suricata intrusion detection system that achieved 91.7 percent detection accuracy against evasive scans on the authors' dataset.
$ nmap -f -v -A scanme.nmap.org
Starting Nmap 6.47 ( https://nmap.org ) at 2014-12-29 20:02 CET
Nmap scan report for scanme.nmap.org (74.207.244.221)
Host is up (0.16s latency).
Not shown: 997 filtered ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu7.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 1024 8d:60:f1:7c:ca:b7:3d:0a:d6:67:54:9d:69:d9:b9:dd (DSA)
|_ 2048 79:f8:09:ac:d4:e2:32:42:10:49:d3:bd:20:82:85:ec (RSA)
80/tcp open http Apache httpd 2.2.14 ((Ubuntu))
|_http-title: Go ahead and ScanMe!
9929/tcp open nping-echo Nping echo
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose|phone|storage-misc|WAP
Running (JUST GUESSING): Linux 2.6.X|3.X|2.4.X (94%), Netgear RAIDiator 4.X (86%)
OS CPE: cpe:/o:linux:linux_kernel:2.6.38 cpe:/o:linux:linux_kernel:3 cpe:/o:netgear:raidiator:4 cpe:/o:linux:linux_kernel:2.4
Aggressive OS guesses: Linux 2.6.38 (94%), Linux 3.0 (92%), Linux 2.6.32 - 3.0 (91%), Linux 2.6.18 (91%), Linux 2.6.39 (90%), Linux 2.6.32 - 2.6.39 (90%), Linux 2.6.38 - 3.0 (90%), Linux 2.6.38 - 2.6.39 (89%), Linux 2.6.35 (88%), Linux 2.6.37 (88%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 13 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE (using port 80/tcp)
HOP RTT ADDRESS
1 14.21 ms 151.217.192.1
2 5.27 ms ae10-0.mx240-iphh.shitty.network (94.45.224.129)
3 13.16 ms hmb-s2-rou-1102.DE.eurorings.net (134.222.120.121)
4 6.83 ms blnb-s1-rou-1041.DE.eurorings.net (134.222.229.78)
5 8.30 ms blnb-s3-rou-1041.DE.eurorings.net (134.222.229.82)
6 9.42 ms as6939.bcix.de (193.178.185.34)
7 24.56 ms 10ge10-6.core1.ams1.he.net (184.105.213.229)
8 30.60 ms 100ge9-1.core1.lon2.he.net (72.52.92.213)
9 93.54 ms 100ge1-1.core1.nyc4.he.net (72.52.92.166)
10 181.14 ms 10ge9-6.core1.sjc2.he.net (184.105.213.173)
11 169.54 ms 10ge3-2.core3.fmt2.he.net (184.105.222.13)
12 164.58 ms router4-fmt.linode.com (64.71.132.138)
13 164.32 ms scanme.nmap.org (74.207.244.221)
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 28.98 seconds