1.1 Nmap简介
对于已经陷入困境的刘开,什么能够给他带来一丝希望呢?如果没有从天而降的救兵的话,刘开所能依靠的只有自己娴熟的技术,以及某个强大的工具。此时,刘开最希望得到的工具又是什么呢?
如果可以选择,Nmap(Network Mapper)绝对是此时刘开的最佳选择。作为当今顶尖的网络审计工具,Nmap在国外已经被大量的网络安全人员所使用,它的身影甚至出现在很多优秀影视作品中,其中影响力最大的要数经典巨著《黑客帝国》系列。在《黑客帝国2》中,影片中的女主人公Tritnity就曾使用Nmap攻击SSH服务,从而破坏了发电厂的工作,如图1-1所示。
图1-1 《黑客帝国2》中女主人公Tritnity正在使用Nmap攻击SSH服务
Nmap是由Gordon Lyon设计并实现的,于1997开始发布。Gordon Lyon最初设计Nmap的目的只是希望打造一款强大的端口扫描工具。但是随着时间的发展,Nmap的功能越来越全面。2009年7月17日,开源网络安全扫描工具Nmap正式发布了5.00版,这是自1997年以来最重要的发布,代表着Nmap从简单的网络连接端扫描软件变身为全方面的安全和网络工具组件。目前Nmap已经更新到7.30版。
现在的Nmap已经具备了如下各种功能。
▯ 主机发现功能:向目标计算机发送特制的数据包组合,然后根据目标的反应来确定它是否处于开机并连接到网络的状态。
▯ 端口扫描:向目标计算机的指定端口发送特制的数据包组合,然后根据目标端口的反应来判断它是否开放。
▯ 服务及版本检测:向目标计算机的目标端口发送特制的数据包组合,然后根据目标的反应来检测它运行服务的服务类型和版本。
▯ 操作系统检测:向目标计算机发送特制的数据包组合,然后根据目标的反应来检测它的操作系统类型和版本。
除了这些基本功能之外,Nmap还实现一些高级审计技术,例如伪造发起扫描端的身份,进行隐蔽扫描,规避目标的安全防御设备(例如防火墙),对系统进行安全漏洞检测,并提供完善的报告选项等。在后来的不断发展中,随着Nmap强大的脚本引擎(NSE)的推出,任何人都可以向Nmap中添加新的功能模块。
如果使用Nmap对一台计算机进行审计,最终可以获得目标如下的信息。
▯ 目标主机是否在线。
▯ 目标主机所在网络的结构。
▯ 目标主机上开放的端口,例如80端口、135端口、443端口等。
▯ 目标主机所使用的操作系统,例如Windows 7、Windows 10、Linux 2.6.18、Android 4.1.2等。
▯ 目标主机上所运行的服务以及版本,例如Apache httpd 2.2.14、OpenSSH 5.3p1、Debian 3、Ubuntu 4等。
▯ 目标主机上所存在的漏洞,例如弱口令、ms08_067、ms10_054等。
收集目标信息是整个安全审计环节中至关重要的一部分工作。如此一来,对目标的信息将了若指掌。