当前位置: 首页 > news >正文

基于python使用UDP协议对飞秋进行通讯—DDOS

基于飞秋的信息传输

声明:笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。

老规矩,封面在文末!

飞秋介绍

(1)最关键的是局域网用户列表的建立;飞秋启动时使用UDP协议向255.255.255.255这个广播地址发送广播包,默认端口是2425。广播包内容包含用户名、工作组、主机名、IP等信息;

已启动飞秋的用户通过2425端口收到此广播包后,就会在自己的用户列表中添加这个用户的用户名、工作组等信息,同时向对方IP发送本机用户的个人信息;从而双方都能建立起用户列表;

(2)刷新用户列表时发送的广播包和启动时差不多,只不过返回的标识信息略有不同;可以做一个小工具,监控2425端口内存流,就能截获刷新和聊天时的消息。

(3)传送聊天信息时同样使用UDP协议;由于UDP协议是无连接协议,传输速度快,但是没有确认机制,是不可靠的协议,需要自己定义返回信息的标志来判断对方是否收到信息;

(4)用户离线时发送一个离线广播包到255.255.255.255,收到此广播包的用户,根据包中的IP地址(也可能是多种判断标志或者包含硬件标识,比如网卡地址等)删除对方的用户列表信息;

(5)广域网无法直接使用广播方式,靠手工添加”局域网外广播列表”来建立相互的关系;

(6)飞秋传送文件是使用TCP协议,端口2425;

(7)飞秋使用C++语言,开发工具:Visual C++ 4.1, 6.0, or later;

(8)飞秋公开源码,在作者(来自日本广岛的白水启章)和汉化者(阿志)网站下载源码,源码注释为日文;可以使用VC++修改、编译;

(9)飞秋传书是来自日本的软件,日文版是它的第一版本;此外还有中文,英文,韩文,葡萄牙文等语言;

(10)飞秋使用的加密算法:RSA、Blowfish、RC;

(11)飞秋可以使用命令行方式发送信息,命令格式如下:

ipmsg [端口] /MSG [/LOG][/SEAL] <主机名或IP地址> <消息>

可以使用IPMsg [端口] 命令改变默认端口,并同时启动多个实例,但是修改后只有使用相同端口的用户才能收到相互的信息;

(12)飞秋非安装版,并不是纯绿色软件,直接删除会在注册表留下垃圾键值;

  • 飞秋把所有设置信息都保存在注册表的以下位置:

用户密码以不可逆加密方式存储.

  • 如果你忘记了密码, 可以在注册表中将此键值删除,清除密码*\HKEY_CURRENT_USER\Software\HSTools\IPMsgEng\PasswordStr

(13)飞秋一次传送文件数达到几千个时,有丢失文件的可能,怀疑是飞秋的一个bug,而传输大文件则没有问题;

(14)飞秋最稳定的正式版本是V2.06;目前v2.50 alpha6 版正在测试,尚未正式发布;其他如2.71,2007绿色版为修改版本,并非正版;

(15)飞秋支持的字符太少,需要补充一下。

源码

import socket
import time# ddos 损人不利己
for i in range(10):s = socket.socket(type=socket.SOCK_DGRAM)  # 以UDP协议通信s.connect(('192.168.141.1', 2425))packetId = str(time.time())name = "LEYINSEC"host = "MyHostName"command = str(0x00000020)content = "This is the message from python."message = "1.0:" + packetId + ":" + name + ":" + host + ":" + command + ":" + contents.send(message.encode())

源码解析

这段代码是一个简单的Python脚本,用于发送UDP数据包到指定的IP地址和端口。以下是对代码的详细分析:

导入模块

import socket
import time
  • socket模块:用于网络通信,创建和管理套接字。

  • time模块:用于获取当前时间戳。

循环发送数据包

for i in range(10):
  • 这个循环会执行10次,每次循环都会发送一个UDP数据包。

创建UDP套接字

s = socket.socket(type=socket.SOCK_DGRAM)  # 以UDP协议通信
  • socket.socket()函数用于创建一个新的套接字对象。

  • type=socket.SOCK_DGRAM参数指定使用UDP协议。

连接到目标地址

s.connect(('192.168.141.1', 2425))
  • connect()方法用于连接到指定的IP地址和端口。

  • 这里的目标是IP地址192.168.141.1和端口2425

构建消息内容

packetId = str(time.time())
name = "LEYINSEC"
host = "MyHostName"
command = str(0x00000020)
content = "This is the message from python."
message = "1.0:" + packetId + ":" + name + ":" + host + ":" + command + ":" + content
  • packetId:使用当前时间戳作为唯一标识符。

  • namehostcommandcontent:这些变量用于构建消息内容。

  • message:将所有部分用冒号分隔并拼接成一个字符串。

发送消息

s.send(message.encode())
  • send()方法用于发送数据。

  • message.encode()将字符串消息编码为字节流,因为send()方法需要字节类型的数据。

注意事项

  1. DDoS攻击:这段代码虽然简单,但如果在一个循环中不断发送大量数据包到同一个目标地址,可能会被视为DDoS(分布式拒绝服务)攻击。这种行为是不道德的,也可能违法。

  2. 资源消耗:频繁创建和关闭套接字会消耗系统资源,可能导致性能问题。

  3. 错误处理:代码中没有错误处理机制,如果连接失败或发送失败,程序会抛出异常并终止。

效果演示

可以看到,一直在给飞秋发信息,如果数据量较大的话,就可以达到DDOS的效果。网安人最重要的是什么,要学会举一反三。

http://www.lryc.cn/news/510212.html

相关文章:

  • 数据库管理-第275期 Oracle 23ai:画了两张架构图(20241225)
  • 使用Streamlit部署机器学习模型
  • 依图科技简介
  • 苍穹外卖day07缓存部分分析
  • OCR实践-Table-Transformer
  • HarmonyOS NEXT 实战之元服务:静态案例效果---电台推荐
  • 微信小程序 不同角色进入不同页面、呈现不同底部导航栏
  • MATLAB符号计算-符号表达式基础运算操作
  • 服务器被攻击怎么办
  • 精准识别花生豆:基于EfficientNetB0的深度学习检测与分类项目
  • 【UE5 C++课程系列笔记】13——GameInstanceSubsystem的简单使用
  • 实用工具推荐----Doxygen使用方法
  • js垃圾回收机制详细讲解
  • 【Linux/踩坑】Linux中启动eclipse或HDFS因JAVA_HOME设置报错
  • 百度千帆平台构建AI APP的基础概念梳理
  • Unity3D Huatuo技术原理剖析详解
  • 记Fastjson2的一个报ConcurrentModificationException的bug
  • 使用TimesFM 对车辆销售进行预测
  • OpenEuler 22.03 不依赖zookeeper安装 kafka 3.3.2集群
  • ubuntu 将python3.8 升级为python3.10并进行版本切换
  • 3. Kafka入门—安装与基本命令
  • 如何使用 python创建图片格式转换器
  • 命令行之巅:Linux Shell编程的至高艺术(上)
  • 【gulp】gulp 的基本使用
  • Linux 下处理 ^M 字符的最佳实践
  • 【优选算法】—复写零(双指针算法)
  • 2024国赛A问题三和四
  • asp.net 高校学生勤工俭学系统设计与实现
  • 《计算机组成及汇编语言原理》阅读笔记:p116-p120
  • C# OpenCvSharp DNN 卡证检测矫正