一个功能强大的TCP数据包发送工具,支持多种发包方式和自定义负载。
- 批量发包: 支持指定数量的数据包发送
- 自定义间隔: 可调节发包间隔时间
- 详细日志: 实时显示发包状态和统计信息
- 连接管理: 自动处理连接建立和关闭
- 自动解析: 从PCAP文件提取TCP数据包
- 数据包信息: 显示源地址、目标地址、负载大小等
- 灵活控制: 支持限制发送的数据包数量
- 批量重放: 将捕获的流量重新发送到指定目标
- 多种格式: 支持HTTP、JSON、原始数据、十六进制等
- 模板系统: 预定义常用负载模板
- 灵活配置: 通过JSON配置自定义负载内容
- 实时构建: 动态生成数据包内容
pip install -r requirements.txt或者手动安装:
pip install scapy>=2.4.5# 发送单个数据包
python advanced_tcp_sender.py -t 192.168.1.100 -p 8080
# 批量发送
python advanced_tcp_sender.py -t 192.168.1.100 -p 8080 -c 10 -i 0.5# 从PCAP文件发送所有TCP数据包
python advanced_tcp_sender.py -t 192.168.1.100 -p 80 --pcap capture.pcap
# 限制发送数量
python advanced_tcp_sender.py -t 192.168.1.100 -p 80 --pcap capture.pcap --max-packets 5# HTTP GET请求
python advanced_tcp_sender.py -t 192.168.1.100 -p 80 --payload-type http_get --payload-config '{"host": "example.com", "path": "/api/test"}'
# JSON数据
python advanced_tcp_sender.py -t 192.168.1.100 -p 8080 --payload-type json --payload-config '{"data": {"message": "Hello World"}}'-t, --target: 目标IP地址 (默认: 1.2.3.4)-p, --port: 目标端口 (默认: 9004)-c, --count: 发包数量 (默认: 1)-i, --interval: 发包间隔秒数 (默认: 1.0)--timeout: 连接超时时间 (默认: 5秒)
--pcap: 从PCAP文件发送数据包--max-packets: 限制发送的PCAP数据包数量
--payload-type: 负载类型 (default/http_get/http_post/json/raw/hex)--payload-config: 负载配置JSON字符串
--version: 自定义版本号--os: 自定义操作系统--arch: 自定义架构--key: 自定义权限密钥
默认负载类型,包含原始头部和JSON数据。
构建HTTP GET请求:
{
"host": "example.com",
"path": "/api/test",
"user_agent": "CustomBot/1.0"
}构建HTTP POST请求:
{
"host": "example.com",
"path": "/api/data",
"content": "{\"key\": \"value\"}",
"content_type": "application/json"
}发送JSON格式数据:
{
"data": {
"message": "Hello World",
"timestamp": 1234567890
}
}发送原始数据:
{
"data": "Hello, this is raw data!"
}这个场景可能比较多,如模拟发包,这里面模拟发送一个frp的数据包,内容如下:
模拟发包如下:
python3 advanced_tcp_sender.py -t 1.117.79.251 -p 80 --payload-type json --payload-config '{"data": {"version":"0.38.0","hostname":"","os":"windows","arch":"amd64","user":"","privilege_key":"2640fe6fea802876d46626b9d30e","timestamp":1752240812,"run_id":"","metas":null,"pool_count":1}}' 抓取的数据包为:
从十六进制字符串构建数据:
{
"data": "48656c6c6f20576f726c64"
}- 创建测试PCAP文件:
python test_pcap_creator.py- 使用测试PCAP文件:
python advanced_tcp_sender.py -t 127.0.0.1 -p 8080 --pcap test_packets.pcap# 测试Web服务器响应
python advanced_tcp_sender.py -t 192.168.1.100 -p 80 -c 100 -i 0.1 --payload-type http_get --payload-config '{"host": "192.168.1.100", "path": "/"}'# 重放捕获的流量
python advanced_tcp_sender.py -t 10.0.0.1 -p 443 --pcap captured_traffic.pcap -i 0.5# 测试API接口
python advanced_tcp_sender.py -t api.example.com -p 443 --payload-type http_post --payload-config '{"host": "api.example.com", "path": "/users", "content": "{\"name\": \"test\"}", "content_type": "application/json"}'TCP发包工具/
├── advanced_tcp_sender.py # 主程序
├── test_pcap_creator.py # PCAP测试文件创建工具
├── usage_examples.md # 详细使用示例
├── requirements.txt # 依赖管理
└── README.md # 项目说明
- 权限要求: 某些功能可能需要管理员权限
- 网络环境: 确保目标网络可达
- 安全考虑: 仅在授权的测试环境中使用
- 性能影响: 避免过高的发包频率
- 依赖管理: 确保scapy库正确安装
- 自动检测scapy库安装状态
- 详细的错误信息和解决建议
- 连接失败时的重试机制
- 数据包格式验证
欢迎提交Issue和Pull Request来改进这个工具。
本项目仅供学习和研究使用,请遵守相关法律法规。