通过协议分析理解端口扫描原理
概述
端口扫描通常利用TCP、UDP等方式去检测操作系统类型及开放的服务,为进一步的攻击做好准备。通常,蠕虫病毒、网络攻击等常见影响网络安全的行为,都是从扫描开始的。所以,深入了解各种网络扫描的工作原理及其表现特征,对网络管理者具有相当的实战意义。
NMAP作为常见的网络扫描工具,内置了多种扫描方式,每种方式的工作原理不同,其数据包和通讯特征也不尽相同;这里我们将通过网络分析软件对常见扫描方式进行分析和图形化的展现,以方便对这些扫描方式进行深入的理解。
扫描分析
TCP SYN扫描
扫描原理
TCP SYN扫描应该是最受欢迎的扫描之一,其扫描速度快(每秒可以扫描数以千计的端口),兼容性好(只要对端支持TCP协议栈即可),且不易被发现。
TCP SYN扫描通常又叫“半开放”扫描,因为它不必打开一个完整的TCP连接,它发送一个SYN包,就像真的要打开一个连接一样,然后等待对端的反应。如果对端返回SYN/ACK报文则表示该端口处于监听状态,此时,扫描端则必须再返回一个RST报文来关闭此连接;返回RST报文则表示该端口没有开放。
深入理解
TCP SYN扫描在科来网络分析中的视图表现:
(数据包统计)
(TCP FLAG统计)
(诊断提示)
(TCP 会话统计)
(端口处于监听状态)
(端口处于关闭状态)
会话数据包总计为2个或3个,2个包表示端口未开放,3个包表示端口开放;
以固定端口与被扫描IP尝试连接,且会话大多具有相同的特征;
在TCP Flag统计中TCP同步位发送和TCP复位接收较多;
小包多(<128字节)。
TCP connect扫描
扫描原理
TCP connect()扫描也是一种常见的扫描方式,它通过操作系统与目标机器建立连接,而不是直接发送原始数据包,这与浏览器、P2P客户端及其大多数网络应用程序一样,建立连接由高层系统调用。执行这种扫描的最大好处是无需root权限,但会在系统日志里留下记录,所以当在日志系统里看到同一系统的大量连接尝试,就应该知道系统被扫描了。
深入理解
TCP CONNECT()扫描在科来网络分析中的视图表现:
(数据包统计)
(TCP FLAG统计)
(TCP 会话统计)
![通过协议分析理解端口扫描原理](https://i-blog.csdnimg.cn/blog_migrate/e636b350aeae45ae7999dc6152659793.gif)
(端口处于监听状态)
分析总结
1、会话数据包总计为2-6个不等,需查看数据信息确认端口状态;
2、以连续端口与被扫描IP 尝试连接,且会话大多具有相同的特征。
3、在TCP Flag统计中TCP同步位发送和TCP复位接收较多;
4、小包多(<128字节)。
UDP扫描
扫描原理
UDP扫描通常与ICMP相结合进行,它发送没有携带任何数据的UDP数据包到目标主机,如果返回ICMP端口不可达(类型为3,代码为3)提示,则表示目标端口是关闭的,但主机是存活的;如果某服务响应一个UDP报文,则表明该端口是开放的。
当然,UDP扫描存在瓶颈,那就是速度。很多主机默认限制发送ICMP端口不可达信息,或者限制发包的频率如Linux2.4.20内核就只允许一秒钟发送一条目标不可达信息,这样扫描65535个端口需要18小时的时间,这是不可接受的,所以加速UDP扫描的方法通常是并发扫描或先扫描主要端口。
深入理解
UDP扫描在科来网络分析中的视图表现:
(会话统计)
(数据包分布)
(诊断提示)
(UDP会话统计)
(不携带数据)
1、会话数据包总计为1-2个,通常情况1个表示端口关闭,2个或以上表示端口开放;
2、以固定端口向被扫描IP发包,且会话大多具有相同的特征;
3、大量的UDP小包,且不携带任何数据。
NULL扫描
扫描原理
根据RFC 793,主机发送一个没有任何标志位的TCP包,如果目标主机的对应端口是关闭的话,则会返回一个RST数据包,如果没有响应则表示该端口是开放的。
NULL扫描可以躲过无状态防火墙和报文过滤路由器,且比SYN扫描要隐秘。值得注意的是并不是所有系统都遵循RFC 793,一些系统不管端口是开放还是关闭都响应RST 数据包,如cisco 设备、BSDI 等。
根据 RFC793,类似的扫描还有FIN扫描、 FIN+PSH+URG扫描。
深入理解
NULL扫描在科来网络分析中的视图表现:
(数据包统计)
(TCP FLAG统计)
(解码分析)
1、网络中存在大量小包,大量的TCP复位数据包;
2、大量的没有任何标志位的数据包。
ACK扫描
扫描原理
ACK扫描发送一个只设置ACK标志位的数据包,目标主机端口无论是关闭还是开放的都会返回RST数据包,但ACK扫描不能确定目标主机的端口状态,可以确定对方主机是否存活,以及发现防火墙规则来确定防火墙的状态。
深入理解
ACK扫描在科来网络分析中的视图表现:
(数据包统计)
(TCP FLAG统计)
(解码分析)
1、网络中存在大量小包,大量的TCP复位数据包;
2、大量的ACK标志位置1的数据包;
窗口扫描
扫描原理
在某些系统上,开放端口用正数表示窗口大小,而关闭的窗口大小则为0,窗口扫描就是通过检查返回RST报文的窗口字段来判断端口是否开放。
窗口扫描依赖于少数的系统实现细节,不支持它的系统通常会返回所有端口都关闭;甚至有些系统会给出相反的行为(比如:扫描显示1000端口开放,3个端口关闭,那么这3个端口反而是开放的)。
深入理解
窗口扫描在科来网络分析中的视图表现:
(数据包统计)
(TCP FLAG统计)
(解码分析)
(协议统计)
1、网络中存在大量小包,大量的TCP复位统计;
2、网络中存大量特征相同的协议统计;
3、大量window(窗口)字段为0的数据包。
IP扫描
扫描原理
IP协议扫描用来确定目标主机支持的IP协议,如TCP、UDP、ICMP等,它不对任何TCP或UDP端口发送报文,而是对IP协议号发送对应的数据包。
IP协议扫描发送IP报文,报文不包含任何数据,甚至不包含协议的正确报文头(TCP、UDP、ICMP例外),IP协议扫描需要关注ICMP协议不可达信息,收到目标主机的任何协议响应,即表示该协议是开放的。
深入理解
窗口扫描在科来网络分析中的视图表现:
(数据包统计)
(协议统计)
1、网络中存在大量小包;
2、网络中存大量特征相同的IP数据包,且不携带任何数据。
FIN\ACK扫描
扫描原理
FIN\ACK扫描也被称作Maimon 扫描,根据发现者Uriel Maimon命名。其实Maimon扫描与NULL、FIN扫描的原理一样,根据RFC793,无论端口是关闭还是开放,目标主机都会对FIN+ACK探测数据包响应RST报文(但许多基于BSD的系统会丢弃FIN+ACK探测数据包)。
深入理解
FIN\ACK扫描在科来网络分析中的视图表现:
(数据包统计)
(TCP FLAG统计)
(协议统计)
(解码分析)
分析总结
1、网络中存在大量小包,大量的TCP复位统计;
2、网络中存大量特征相同的协议统计;
3、大量window(窗口)字段为0的数据包。
定制扫描
扫描原理
一些高级用户不会遵循现成的扫描类型和规则,而是根据实际情况,任意指定TCP的相关标志位和扫描类型,从而避免IDS等设备的检测。
深入理解
FIN\ACK扫描在科来网络分析中的视图表现:
利用概要、协议、TCP\UDP会话、解码视图进行综合分析。
总结
端口扫描的大致特征
小包多,大小基本在64-128字节之间;
SYN置1,RST置1的数据包较多;
大量的TCP或UDP会话,且具有相同的会话特征;
采用连续端口或固定端口尝试与目标主机连接;
诊断提示中会出现TCP复位,ICMP端口不达,甚至端口扫描提示。
了解端口扫描原理有哪些好处
快速定位蠕虫病毒;
快速确定攻击行为及类型;
快速厘清正常通讯与异常通讯;
快速发现网络中的异常行为。