-- TOC --
端口扫描是为了发现系统监听端口,SYN攻击用到的技术,也是端口扫描的技术。
connect全连接扫描
调用tcp socket的connect接口发起连接,能够连接成功,说明端口开放。
这种方式编程简单,容易实现。
很多tcping工具,也是利用这个技术。
SYN半连接扫描
只发送第1个SYN报文,如果收到SYN+ACK,说明端口开放。
编程难度较大,需要自己实现raw socket。
还有很多其它的扫描方式。
在TCP三次握手过程中,服务器发送SYN+ACK之后,在收到客户端的ACK之前,TCP连接称为半连接(half-open connect),此时服务器处于SYN_RCVD状态。当收到ACK后,服务器转入ESTABLISHED状态。
SYN攻击就是,客户端 在短时间内伪造大量不存在的IP地址,向服务器不断地发送SYN包,服务器回复SYN+ACK,并等待客户的确认,由于源IP地址不存在(或者收到不回应呢?),服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求可能会被丢弃;同时还会大量占用服务器的内存资源,因为要保存半连接过程中协商的各项参数,目标系统将运行缓慢,严重者引起网络堵塞甚至系统瘫痪。
In the past flooding the SYN Queue with bogus spoofed SYN packets was a real problem. Before 1996 it was possible to successfully deny the service of almost any TCP server with very little bandwidth, just by filling the SYN Queues.
SYN攻击是一个典型的DDOS攻击。检测SYN攻击非常的方便,当你在服务器上看到大量的半连接状态的TCP时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击。
对抗SYN Flood攻击的武器:SYN Cookie
本文链接:https://cs.pynote.net/se/202204081/
-- EOF --
-- MORE --