您的位置:

Syn扫描——全面剖析

一、Syn扫描是什么

Syn扫描(SYN scan),是一种用于对主机或网络上的端口进行探测的技术。它的基本原理是通过发送TCP SYN包来探测一个主机或网络上是否有端口处于监听状态。

这种扫描技术得名于TCP协议规范中的一个步骤,也就是三次握手。它向目标计算机发送一个SYN(同步)标志,并等待它发回SYN/ACK(同步/确认)标志。扫描器如果收到这个标志,就会发一个RST(复位)标志,关闭与目标的连接。如果没有收到回复,说明目标计算机没有响应,就会默认端口是关闭的。

Syn扫描技术通过一种非常灵活的方式绕过了大多数防火墙及入侵检测设备规则的检测,是网络管理员和安全人员常用的一种端口扫描工具。

二、Syn扫描的特点

Syn扫描具有以下几个特点:

  1. 速度快:Syn扫描与其他扫描方式相比,扫描速度最快,适用于对端口进行全面、快速的扫描。
  2. 难以被检测:Syn扫描利用TCP协议的三次握手过程,发送SYN标志来探测端口是否开放,不会完成TCP连接,因此可以使得扫描者的IP地址难以被检测。
  3. 占用资源低:Syn扫描发送的几个数据包很少,占用网络资源很少,在目标主机上也不会产生大量的连接、日志等占用资源的记录,不会对主机产生大的负担。

三、Syn扫描如果端口关闭

如果目标主机的某个端口关闭,那么在扫描到该端口时,目标主机不会响应SYN请求,也不会回复SYN/ACK响应,因而扫描器会收到RST复位包,从而知道该端口是关闭的。

四、Syn扫描目标回应什么

如果目标主机的某个端口是开放状态,那么当它收到Syn扫描器发送的SYN数据包后,就会回复一个SYN/ACK数据包给扫描器,以表示它已收到扫描器的请求,同时需要扫描器发送一个ACK数据包作为确认;当扫描器发出ACK数据包后,连接就建立完毕。

五、Syn扫描采用的传输层协议

Syn扫描利用的是TCP协议进行端口扫描。因为TCP协议建立的是可靠的连接,可以保证数据的完整性和可靠性,同时TCP协议规范中也定义了SYN/ACK、RST等标志,方便Syn扫描的实现。

六、Fin扫描

Fin扫描是对TCP协议中FIN标志位的一种探测方式,它工作原理是发送一个仅包含FIN标志的TCP报文段。如果目标主机响应则说明相应的端口关闭,否则说明该端口是打开的或者被过滤掉了。Fin扫描的最大问题就在于消耗资源,每扫描一个端口都要耗费大量资源。

七、TCP Syn扫描

TCP Syn扫描是目前常用的一种端口扫描方式之一,它通过TCP协议的三次握手过程来完成对目标端口的扫描。TCP Syn扫描不像Fin扫描会给目标主机带来太多的负荷,因此TCP Syn扫描是目前最为普遍和常用的端口扫描方式之一。

#Python示例代码

import nmap

#创建nmap.PortScanner对象
nm = nmap.PortScanner()

#执行扫描(参数说明:SYN扫描,扫描到所有端口,扫描的目标主机或者IP段)
nm.scan(arguments='-sS -p 1-65535 192.168.1.1')

#获取指定主机的某个端口的状态
nm['192.168.1.1']['tcp'][80]['state']

八、Syn扫描断网

扫描的时候,过快的扫描可能会导致局域网之间的正常通信受到影响。在扫描之前应先了解目标网络环境和扫描方式,尽量避免发生意外。

九、Syn扫描特点

Syn扫描的主要特点是速度快、难以被检测和占用资源低,使得它成为网络管理员和安全专家中最常用的端口扫描方法之一。它以TCP协议中三次握手(SYN、SYN/ACK、ACK)为基础,向目标发送一个SYN包,然后根据目标的响应确认端口是否开放。如果目标端口关闭,则无法建立连接,扫描器会收到RST响应;如果开放,则会收到SYN/ACK响应,扫描器再发送确认的ACK数据包完成握手连接。因此,Syn扫描成为了网络攻击和侵入检测中最常见的一种扫描方式之一,同时也是网络运维和安全人员的常用工具。