Nmap ("Network Mapper") is a free and open source (license) utility for network exploration or 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. It was designed to rapidly scan large networks, but works fine against single hosts.
- [Zenmap] Added a workaround for a Ubuntu Python packaging idiosyncrasy. As of version python2.6-2.6.4-0ubuntu3, Ubuntu's distutils modifies self.prefix, a variable we use in the setup.py script. This would cause Zenmap to look in the wrong place for its configuration files, and show the dialog "Error creating the per-user configuration directory" with the specific error "[Errno 2] No such file or directory: '/usr/share/zenmap/config'".
- Fixed an error that occurred when UDP scan was combined with version scan. UDP ports would appear in the state "unknown" at the end of the scan, and in some cases an assertion failure would be raised. This was an unintended side effect of the memory use reduction changes in 5.20.
- [NSE] Did some simple bit-flipping on the nmap_service.exe program used by the smb-psexec script, to avoid its being falsely detected as malware.
- [NSE] Fixed a bug in http.lua that could lead to an assertion failure. It happened when there was an error getting the a response at the beginning of a batch in http.pipeline. The symptoms of the bug were:
> NSE: Received only 0 of 1 expected reponses.
> Decreasing max pipelined requests to 0.
> NSOCK (0.1870s) Write request for 0 bytes...
> nmap: nsock_core.c:516: handle_write_result: Assertion `bytesleft > 0' failed. The error was reported by Brandon Enright and pyllyukko.
- [NSE] Restored the ability of http.head to return a body if the server returns one. This was lost in the http.lua overhaul from 5.20.
- [NSE] Fixed the use of our strict.lua library on distributions that install their own strict.lua. The error message was nse_main.lua:97: attempt to call a boolean value
- Fixed handing of nameserver entries in /etc/resolv.conf so it could handle entries containing more than 16 bytes, which can occur with IPv6 addresses.
- [NSE] Corrected a behavior change in http.request that was accidentally made in 5.20: it could return nil instead of a table indicating failure.
- [NSE] Fixed the use of an undefined variable in smb-enum-sessions.
- Fixed a compiler error when --without-liblua is used.
- [NSE] Fixed an error with running http-enum.nse along with the --datadir option. The script would report the error http-enum.nse:198: bad argument #1 to 'lines' (nselib/data/http-fingerprints: No such file or directory)
- Added a function that was missing from http-favicon.nse. Its absence would cause the error http-favicon.nse:141: variable 'dirname' is not declared when a web page specified an relative icon URL through the link element.
- Fixed a bug with the decoding of NMAP OID component values greater than 127.