GSoC/GCI Archive
Google Summer of Code 2014

Nmap Security Scanner

License: GNU General Public License version 2.0 (GPLv2)

Web Page: http://nmap.org/soc/

Mailing List: http://seclists.org/nmap-dev/

Nmap ("Network Mapper") is a free and open source 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. It was designed to rapidly scan large networks, but works fine against single hosts. Nmap runs on all major computer operating systems, and official binary packages are available for Linux, Windows, and Mac OS X. In addition to the classic command-line Nmap executable, the Nmap suite includes an advanced GUI and results viewer (Zenmap), a flexible data transfer, redirection, and debugging tool (Ncat), a utility for comparing scan results (Ndiff), and a packet generation and response analysis tool (Nping).

Projects

  • Feature Creeper and Bug Wrangler This is a project to add many small features & get rid of many small bugs in Nmap, each expected to take only a few days, allowing for many to be handled over the summer. It will involve contributing to a wide variety of the Nmap code base rather than working on just one subsystem. When a high-priority bug is discovered, it will be my role to solve it. The exact tasks cannot be itemized in advance (but some are in Project Proposal). The deliverables are the bug fixes and the new features.
  • Implementing vulnerability and exploitation scripts Based on the input of the Nmap community, I will develop a variety of scripts to detect and exploit vulnerabilities in widely used software products.
  • Nmap Scripting Engine Currently, IPv6 can be "broken" in a number of different ways and although some statistics are being reported about IPv6 brokeness (http://goo.gl/WfEO0), however, there is still no automatic way of investigating the root cause, which typically requires to manually perform and correlate different measurements. For this GSOC, I would like to extend nmap’s IPv6 support, with particular focus on the “IPv6 brokenness”. I also list some ideas for new scripts that could be discussed with the mentors.
  • nsock based port scanning Make Nmap's scanning engine use Nsock library, enabling future transistion to the "scanning pipeline" design.