摘要
  nmap是个网络探测和安全扫描程式,系统管理者和个人能够使用这个软件扫描大型的网络,获取那台主机正在运行连同提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。从扫描类型一节能够得到细节。nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射),碎片扫描,连同灵活的目标和端口设定.


-------------------------------------------------------------------------------



1.名称

nmap-网络探测和安全扫描工具

2.语法

nmap [Scan Type(s)] [Options]

3.描述

  nmap是个网络探测和安全扫描程式,系统管理者和个人能够使用这个软件扫描大型的网络,获取那台主机正在运行连同提供什么服务等信息。nmap支持很多扫描技术,例如:UDP、TCP connect()、TCP SYN(半开扫描)、ftp代理(bounce攻击)、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和null扫描。从扫描类型一节能够得到细节。nmap还提供了一些高级的特征,例如:通过TCP/IP协议栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行ping扫描探测关闭的主机,诱饵扫描,避开端口过滤检测,直接RPC扫描(无须端口影射),碎片扫描,连同灵活的目标和端口设定。

  为了提高nmap在non-root状态下的性能,软件的设计者付出了很大的努力。很不幸,一些内核界面(例如raw socket)需要在root状态下使用。所以应该尽可能在root使用nmap。

  nmap运行通常会得到被扫描主机端口的列表。nmap总会给出well known端口的服务名(假如可能)、端口号、状态和协议等信息。每个端口的状态有:open、filtered、unfiltered。open状态意味着目标主机能够在这个端口使用accept()系统调用接受连接。filtered状态表示:防火墙、包过滤和其他的网络安全软件掩盖了这个端口,禁止nmap探测其是否打开。unfiltered表示:这个端口关闭,并且没有防火墙/包过滤软件来隔离nmap的探测企图。通常情况下,端口的状态基本都是unfiltered状态,只有在大多数被扫描的端口处于filtered状态下,才会显示处于unfiltered状态的端口。

  根据使用的功能选项,nmap也能够报告远程主机的下列特征:使用的操作系统、TCP序列、运行绑定到每个端口上的应用程式的用户名、DNS名、主机地址是否是欺骗地址、连同其他一些东西。

4.功能选项

  功能选项能够组合使用。一些功能选项只能够在某种扫描模式下使用。nmap会自动识别无效或不支持的功能选项组合,并向用户发出警告信息。

  假如您是有经验的用户,能够略过结尾的示例一节。能够使用nmap -h快速列出功能选项的列表。

4.1 扫描类型

  -sT

  TCP connect()扫描:这是最基本的TCP扫描方式。connect()是一种系统调用,由操作系统提供,用来打开一个连接。假如目标端口有程式监听,connect()就会成功返回,否则这个端口是不可达的。这项技术最大的长处是,您勿需root权限。任何UNIX用户都能够自由使用这个系统调用。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求连同错误信息。

  -sS

  TCP同步扫描(TCP SYN):因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描(half-open)。您能够发出一个TCP同步包(SYN),然后等待回应。假如对方返回SYN|ACK(响应)包就表示目标端口正在监听;假如返回RST数据包,就表示目标端口没有监听程式;假如收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接,这实际上有我们的操作系统内核自动完成的。这项技术最大的好处是,很少有系统能够把这记入系统日志。但是,您需要root权限来定制SYN数据包。

  -sF -sF -sN

  秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式:即使SYN扫描都无法确定的情况下使用。一些防火墙和包过滤软件能够对发送到被限制端口的SYN数据包进行监控,而且有些程式比如synlogger和courtney能够检测那些扫描。这些高级的扫描方式能够逃过这些干扰。这些扫描方式的理论依据是:关闭的端口需要对您的探测包回应RST包,而打开的端口必需忽略有问题的包(参考RFC 793第64页)。FIN扫描使用暴露的FIN数据包来探测,而圣诞树扫描打开数据包的FIN、URG和PUSH标志。不幸的是,微软决定完全忽略这个标准,另起炉灶。所以这种扫描方式对Windows95/NT无效。但是,从另外的角度讲,能够使用这种方式来分别两种不同的平台。假如使用这种扫描方式能够发现打开的端口,您就能够确定目标注意运行的不是Windows系统。假如使用-sF、-sX或-sN扫描显示任何的端口都是关闭的,而使用SYN扫描显示有打开的端口,您能够确定目标主机可能运行的是Windwos系统。现在这种方式没有什么太大的用处,因为nmap有内嵌的操作系统检测功能。更有其他几个系统使用和windows同样的处理方式,包括Cisco、BSDI、HP/UX、MYS、IRIX。在应该抛弃数据包时,以上这些系统都会从打开的端口发出复位数据包。 

 -sP  

 ping扫描:有时您只是想知道此时网络上哪些主机正在运行。通过向您指定的网络内的每个IP地址发送ICMP echo请求数据包,nmap就能够完成这项任务。假如主机正在运行就会作出响应。不幸的是,一些站点例如:microsoft.com阻塞ICMP echo请求数据包。然而,在默认的情况下nmap也能够向80端口发送TCP ack包,假如您收到一个RST包,就表示主机正在运行。nmap使用的第三种技术是:发送一个SYN包,然后等待一个RST或SYN/ACK包。对于非root用户,nmap使用connect()方法。

  在默认的情况下(root用户),nmap并行使用ICMP和ACK技术。

  注意,nmap在任何情况下都会进行ping扫描,只有目标主机处于运行状态,才会进行后续的扫描。假如您只是想知道目标主机是否运行,而不想进行其他扫描,才会用到这个选项。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!