端口扫描技术

  

Nmap网络安全审计(三)

  

端口扫描技术

  

端口的概念

  

网络中一共有65536个端口(0 - 65535),端口是供数据进出网络设备的,也是计算机与外界通信的出口。
网络中很多程序需要进行网络通信,而信息实际上都需要通过网卡出入,如何区分出入信息是哪个程序使用的呢,这个就由操作系统处理,而它采用的机制就是划分出65536个端口,程序在发送的信息中加入端口编号,而操作系统在接收到信息后会按照端口号将信息分流到当前内存中使用该端口号的程序。

  

端口的分类

  

根据端口使用情况的不同,可以简单的将端口分为三类:

  

<强>公认端口:这一类端口是我们常用的端口。端口编号0 - 1024的端口都是公认端口。通常这些端口已经明确的与某种服务的协议进行了关联,一般不会进行更改,比如我们常用的80端口(Http), 23日端口(Telnet), 22个端口(SSH) .

  

<强>注册端口:这部分的端口号的范围是从1025 - 49151。它们通常也会关联到一些服务上,但是并没有明确的规定,不同的程序可以根据实际情况进行定义。

  

<强>动态/私有端口:这部分端口号的范围是从49152 - 65535。一般来说,常见的服务不应该使用这些端口,所有容易被忽视。

  

此外,我们根据协议的不同,可以分为TCP协议端口,UDP协议端口,因为这两个都属于传输层的协议,为通信的双方提供端到端的服务。

  

Nmap中对端口状态的定义

  

Nmap中对端口给出了6种不同的状态:

  

<强>开放:强如果目标端口的状态处于开放,则说明该端口有应用程序接受TCP连接或UDP报文。

  

<强>关闭:强如果目标端口的状态处于接近,这里不完全意味没有任何反应,状态为关闭的端口是可访问的,这种端口可以接受Nmap的探测报文并做出响应。

  

<强> :过滤产生这种状态主要原因是因为存网络数据包过滤,导致Nmap无法确定该端口是否开放

  

<强>过滤:这种结果很少见,它表明目标端口是可以访问的,但是Nmap却无法判断它到底是开放还是关闭,通常在ACK扫描时会出现这种状况。

  

<强>开放|过滤:无法确定端口是开放的还是被过滤了。

  

<强> |关闭过滤:无法确定端口是关闭的还是被过滤了。

  

Nmap中的各种端口扫描技术

  

Nmap中提供了大量的技术来实现对端口状态的检测,由于TCP技术相对于UDP技术要复杂一些,所以TCP的检测手段比UDP要多一些。

  
      <李>   

    SYN扫描   

    SYN扫描是最为流行的一种扫描方式,同时也是Nmap采用的默认扫描方式。这种扫描方式速度快,可以在一秒钟扫描上千个端口。
    首先Nmap会向目标主机的一个端口发送请求连接的SYN数据包,而目标计算机接收到以后会以SYN/ACK应答,Nmap在接收到SYN/ACK后会发送RST包请求断开连接,而不是ACK应答。这样三次握手就没有完成,无法建立正常的TCP连接,因此,(准备划重点)此次扫描就不会被记录到系统日志中。
    用TCP SYN扫描时会有以下几种结果:

      李   
  

|

  
      <李>   

    连接扫描   

    连接扫描方式其实跟SYN扫描很像,只是这种扫描方式完成了TCP的三次握手。

      

    连接扫描语法如下:

      
     <代码> nmap - 192.168.126.139  
      

    端口扫描技术

      李   <李>   

    UDP扫描   

    使用UDP扫描对一个端口进行扫描时有三种结果

      李   
           目标主机的应答   目标端口的状态               从目标端口得到任意的UDP应答   开放         如果目标主机没有给出应答   打开过滤         ICMP端口无法抵达错误(代码3)   关闭         ICMP无法抵达的错误(代码1 2 9 10 13)   过滤后的            

UDP的扫描速度相对较慢。语法如下:

  
 <代码> nmap - su 192.168.126.139  
  

……等这个结果确实很慢
端口扫描技术

  

这个扫描结果中有很多端口状态都是经过过滤的,但是这个端口的真实状态可能是开放或者关闭,我们要想判断这些端口到底是开放还是关闭的话就需要进一步测试.UDP程序的服务一般不会对Nmap所发的空数据包做出回应,UDP程序需要使用它们自己的格式。如果保证能向所有常见的UDP服务发送合适的数据包,Nmap需要一个很大的数据库来储存这些格式,Nmap将这些格式存放在Nmap-service-probes中。我们可以使用sv或——参数,Nmap将会向每个开放|过滤端口发送UDP探测器,如果目标端口对任何一个调查有了响应,状态都会被更改为开放。

端口扫描技术