理论教育 计算机网络技术应用:端口扫描器实验示范

计算机网络技术应用:端口扫描器实验示范

时间:2023-10-28 理论教育 版权反馈
【摘要】:filtered状态表示防火墙、包过滤和其他网络安全软件掩盖了这个端口,禁止Nmap探测其是否打开。通常情况下,端口的状态基本都是unfiltered,所以这种状态不显示。换为-sF或者-sX、-sN扫描方式,结果如图2-16所示。而关闭的端口返回RST,监听端口丢弃包,将这种行为称为“FIN行为”。FIN扫描使用暴露的FIN数据包来探测,圣诞树扫描打开数据包的FIN、URG和PUSH标志,而Null扫描则是使用了没有任何TCP标记的数据包。通过这样的方式进一步确定端口的状态。

计算机网络技术应用:端口扫描器实验示范

目前各种端口扫描器很多,在诸多端口扫描器中,Nmap是佼佼者——提供了大量的基于DOS的命令行的选项,还提供了支持Window系统的GUI,能够灵活地满足各种扫描要求,而且输出格式丰富。

Nmap是一个网络探测和安全扫描程序,系统管理者和个人可以使用这个软件扫描大型的网络,获取某台主机正在运行及提供什么服务等信息(注意:Nmap需要WinPcap的支持,所以要安装WinPcap程序之后,Nmap才能正常运行)。Nmap支持很多扫描技术,如UDP、TCP connect(全连接扫描)、TCP SYN(半开扫描)、FTP代理、反向标志、ICMP、FIN、ACK扫描、圣诞树(Xmas Tree)、SYN扫描和Null扫描。Nmap还提供了一些高级特征,例如,通过TCP/IP栈特征探测操作系统类型,秘密扫描,动态延时和重传计算,并行扫描,通过并行Ping扫描探测关闭的主机,诱馆扫描,避开端口过滤检测,直接RPC扫描(无需端口映射),碎片扫描,以及灵活的目标和端口设定。在DOS下可以查看到Nmap的参数,如图2-10所示。

图2-10 DOS下的Nmap参数

下面把相关主要扫描方式的原理结合具体实例介绍一下。

计算机每个端口的状态有open、filtered、unfiltered。open状态意味着目标主机的这个端口是开放的,处于监听状态。filtered状态表示防火墙、包过滤和其他网络安全软件掩盖了这个端口,禁止Nmap探测其是否打开。unfiltered表示这个端口关闭,并且没有防火墙/包过滤软件来隔离Nmap的探测企图。通常情况下,端口的状态基本都是unfiltered,所以这种状态不显示。只有在大多数被扫描的端口处于filtered状态下,才会显示处于unfiltered状态的端口。

下面是Nmap支持的4种最基本的扫描方式。

(1)Ping扫描(-sP参数)。

(2)TCPconnect()扫描(-sT参数)。

(3)TCPSYN扫描(-sS参数)。

(4)UDP扫描(-sU参数)。

【例2-1】-sP扫描。

图2-11 -sP扫描结果

Ping扫描(-sP参数)。有时用户只是想知道此时网络上有哪些主机正在运行。这时,Nmap向用户指定的网络内的每个IP地址发送ICMP request请求数据包,如果主机正在运行就会做出响应。ICMP包本身是一个广播包,是没有端口概念的,只能确定主机的状态,非常适合于检测指定网段内正在运行的主机数量,如图2-11所示。

有些站点(如microsoft.com)阻塞ICMP echo请求数据包。还有许多个人主机用防火墙挡住ICMP包。因此,用Ping扫描不能检测出来。

【例2-2】-sT扫描。

TCP connect()扫描(-sT参数)。这是最基本的TCP扫描方式。connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听,connect()就会成功返回,否则这个端口是不可达的,如图2-12所示。

图2-12 -sT扫描结果

这项技术最大的优点是:在UNIX中,用户不需要root权限就可以自由使用。这种扫描很容易被检测到,在目标主机的防火墙日志中会记录大批的连接请求及错误信息。

【例2-3】-sS扫描。

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

在LAN环境下扫描一个主机,测试结果为:TCP SYN扫描需要大约4s,如图2-13所示。而TCPconnect()扫描耗时最多,需要大约403s,如图2-12所示。

图2-13 -sS扫描结果

【例2-4】-sU扫描。

UDP扫描(-sU参数)。这一种方法是用来确定哪个UDP(User Datagram Protocol,用户数据报协议)端口在主机端开放。这一项技术是发送零字节的UDP信息包到目标机器的各个端口,如果收到一个ICMP端口无法到达的回应,那么该端口是关闭的,否则可以认为是开放的,如图2-14所示。

图2-14 -sU扫描结果(www.daowen.com)

除了这几种最基本的扫描方式外,Nmap还提供了几种特殊的扫描方式,用于进行辅助扫描。

【例2-5】-sF-sX-sN扫描。

在SYN扫描都无法确定的情况下,如图2-15所示,可以使用另外几种特殊的扫描模式,FIN扫描、圣诞树扫描、Null扫描来进一步确认。

图2-15 -sS扫描中的filtered的端口

在图2-15中,-sS扫描某端口时,对方主机既没有回复ACK包,也没有回复RST包,所以无法判断该端口状态,显示处于filtered状态。换为-sF或者-sX、-sN扫描方式,结果如图2-16所示。

图2-16 -sF、-sX、-sN扫描结果

原因是一般关闭的端口需要对探测包回应RST包,而打开的端口必须忽略“有问题”的包。因此,当一个FIN数据包到达一个监听端口时,数据包被丢弃。而关闭的端口返回RST,监听端口丢弃包,将这种行为称为“FIN行为”。同样,URG、PSH、FIN都标记的TCP数据包或者没有任何TCP标记的TCP数据包都会引起“FIN行为”。FIN扫描使用暴露的FIN数据包来探测,圣诞树扫描打开数据包的FIN、URG和PUSH标志,而Null扫描则是使用了没有任何TCP标记的数据包。通过这样的方式进一步确定端口的状态。

另外,一些防火墙和包过滤软件能够对发送到被限制端口的SYN数据包进行监视,而这些特殊的扫描方式可以逃过这些干扰(备注:不同防火墙的实现技术不同,所以扫描的结果可能有出入)。

Nmap提供的扫描方式非常全面,除了以上方式以外,还提供了其他选项,如表2-2所示。

表2-2 其他参数

续表

图2-17 -p、-O扫描结果

图2-18 -P0、-S扫描结果

图2-19 -sV扫描结果

图2-20 -A扫描结果

图2-21 -D扫描结果

高版本的Nmap除了提供DOS操作方式外,也提供了图形用户界面的操作方式,如图2-22所示。

图2-22 Nmap图形用户界面

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈