利用WinPcap模拟网络包伪造飞秋闪屏报文
起因
不知道从什么时候开始,同事开始在飞秋上发闪屏振动了,后来变本加厉,成了每日一闪。老闪回去也比较麻烦,作为程序猿呢,有没有什么偷懒的办法呢?(同事负责用户体验,不大懂编程)。然后尝试了以下思路:
UI自动化
利用UISpy查看飞秋聊天窗口,悲催的发现找不到发送闪屏振动的按钮。
模拟鼠标事件
准备使用mouse_event发送鼠标事件来模拟闪屏振动的按下。但是一想,每次闪屏振动按钮所在的位置不一样,要是移动窗口或者改变窗口布局,都得重新设置坐标,麻烦,遂弃之。
伪造网络报文
以前就知道WinPcap和Wireshark,恰好前段时间又在博客园看到[c#]记一次实验室局域网的ARP欺骗 - Yosef Gao - 博客园,了解到C#下也有了相关的解析和发送工具。果断开始这个方案。
飞秋报文数据猜想
飞秋网络传输
我是知道飞秋聊天是用UDP,端口默认为2425。不知道也没关系,打开飞秋->设置->网络设置,然后你就会发现,飞秋已经明白的告诉我们了。
闪屏振动
首先打开的WireShark,设置过滤条件为udp.port==2425,然后向测试机发送一个闪屏振动试试看。
发现有两条消息,其中一条是本机发给对方的,另一条是对方发给本机的。
再发送几次闪屏振动,我们就可以大致猜出飞秋闪屏振动报文的规律,发送的报文格式为1_lbt6_0#128#(发送方MAC地址,16位)#0#0#0#4001#9:(猜测应该是序号, 具体不清楚):(发送方用户名):(发送方主机名)209:,收到的报文为1_lbt6_0#128#(发送方MAC地址,16位)#0#0#0#4001#9:(猜测应该是序号, 具体不清楚):(发送方用户名):(发送方主机名)210:。将发送的闪屏振动报文用WinPcap模拟数据包,居然在测试机上收到了闪屏振动(原先还以为猜测的序号字段会有影响)。
信息
向测试机发送一条信息后,发现有几条消息。
经过比较报文长度和来源之后,猜测其他几条较短的来自本机的报文为发送正在输入,停止输入等消息,而较长的为发送的信息。经过验证之后,也确实如此。而飞秋的信息报文应该是加过密的,无法直接从中猜出内容。
表情
表情与信息基本类似,但是表情貌似是经过压缩的。
文件
一般文件都会通过TCP传输,经过验证。发现果然如此,飞秋要发送的文件列表是通过UDP进行传输,而具体文件内容是通过TCP传输。
在UDP传输中,本方发送两条报文,对方发送两条报文。基本本方发送的第二条报文可以看到文件名。
在TCP报文中,除了TCP连接建立的三次握手和连接断开的四次握手以外,在其余的本机发送的报文中,可以清楚的看到报文的内容。
这是文本文件:
这是二进制文件:
二进制文件在UltraEdit查看:
说明
因为主要兴趣在研究闪屏振动,对其余功能只是简单查看了一下,并未深入研究。
代码实现
软件界面
最开始做成模拟闪屏振动但不需要填写任何报文信息,但是登录用户名无法通过网络取得,再加上也可以通过在发送报文字符串中填写其他从WireShark中复制过来的报文字符串来模拟其他报文(比如信息和表情),就做成了这种形式。
注意事项
要使用PacketDotNet.dll和SharpPcap.dll,需要安装WinPcap(我是直接安装了WireShark,里面含有WinPcap)。
下载链接
博客园:FeiqCheater
趣事
- 最开始时未加睡眠时间,一个while(true)发送闪屏振动报文,直接把设计师的飞秋给玩死了,多次重启无效,丫还以为是自己电脑出问题了。现在才明白DOS(拒绝服务攻击)的可怕。
- 可以伪装成其他人发送闪屏振动报文。 我就经常伪装成他人给设计师发闪屏,也伪装成设计师给他人发闪屏。
- 把自己的飞秋退出后,对方在收到飞秋的报文后,仍然有响应。
- 后来设计师学聪明了,经旁人指点,在飞秋中关闭了闪屏。
最新情况
进展
- 在网上可以查到一部分关于飞秋消息格式的消息,比如将飞秋攻击进行到底 - 龙月 - 博客园(粗看了一下,飞秋版本不一样),同时传说也可以直接发送飞鸽传书未加密的报文,但我并未经过验证。如果确实如此的话,则可以模拟伪造飞秋消息。
- 我想到可以在本机上模拟飞秋发出刷新好友列表的消息,然后再解析收到的包,这样就可以分析出好友列表,包括每个好友的用户名,IP地址,MAC地址等信息。这样模拟闪屏振动就可以不用输入任何信息了。
挑战
- 另一个笔记本给我弟了,单台电脑不好模拟。
- 貌似WinPcap不能拦截目标非本机的报文,也就是伪造的消息只能由本机伪装成其他人发出去一次,而不能伪造成他人和目标方进行交谈。(以前我利用改IP、改名称、改MAC的方式伪装成领导捉弄过其他同事,说公司准备给他加工资,让他傻乐)。
- 貌似WinPcap接收到包之后也不能将包丢弃。
- 懒癌犯了,不想去做这些事了,这才是最主要的原因。
利用WinPcap模拟网络包伪造飞秋闪屏报文的更多相关文章
- wireshake抓包,飞秋发送信息,python
http://wenku.baidu.com/link?url=Xze_JY8T15pqI9mBLRpTxWF2d6MP-32xb6UwuE6tsUmitRDheJe-Ju87WlDEDBGuI5MF ...
- DNS反射放大攻击分析——DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器
DNS反射放大攻击分析 摘自:http://www.shaojike.com/2016/08/19/DNS%E6%94%BE%E5%A4%A7%E6%94%BB%E5%87%BB%E7%AE%80%E ...
- 漏洞大爆光:QQ漏洞、飞秋漏洞、360浏览器劫持…
随着互联网应用的高速发展,信息安全已深入到诸多领域,前段时间发生的"Struts 2"漏洞及"心脏出血"漏洞影响了二亿中国网民的信息安全.原因是程序猿缺少细致的 ...
- win7系统下的飞秋发送文件失败问题
飞秋发送文件失败这个问题大多数是由防火墙引起的1.检查windows自带的防火墙设置,在左侧的"允许程序通过windows防火墙"查看飞秋是否存在,不存在则增加之,公网.专网都勾选 ...
- winpcap抓包原理
winpcap抓包原理 WinPcap 是由伯克利分组捕获库派生而来的分组捕获库,它是在Windows 操作平台上来实现对底层包的截取过滤.WinPcap 是 BPF 模型和 Libpcap 函数库在 ...
- [转] Android利用tcpdump抓包
原文链接:http://mysuperbaby.iteye.com/blog/902201 Android利用tcpdump抓包 博客分类: Android AndroidAccessGoHTML ...
- Swing做的非阻塞式仿飞秋聊天程序
采用Swing 布局 NIO非阻塞式仿飞秋聊天程序, 切换皮肤颜色什么的小功能以后慢慢做 启动主程序. 当用户打开主程序后自动获取局域网段IP可以在 设置 --> IP网段过滤, 拥有 JMF ...
- 针对局域网IM飞秋(feiq)的开发总结
先上代码了,通过java代码群发feiq消息: package com.triman.constant; import java.io.IOException; import java.io.Unsu ...
- 在LaTeX中利用preview宏包和tikz宏包生成单图pdf
有时候我们利用tikz宏包画出的图片后,只想生成一个单图pdf,而且pdf的页面大小与图片相同,以便于以后再次用latex插入. 可以与preview宏包进行搭配,页面大小由图像大小决定,可以通过改变 ...
随机推荐
- MySQL 数据库 InnoDB 和 MyISAM 数据引擎的差别
InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是 ...
- SAP ALV标准范例程序介绍
下面介绍几个学习ALV的SAP自带标准程序实例 1. BALVSD06 : Output flights (simple version + save)这是该系列范例最简单的一个,建议以此入门.使用的 ...
- 关于ApplicationPoolIdentity
一直以来IIS中的网站默认都是以network service在运行,但是从IIS7开始,默认会以ApplicationPoolIdentity运行. 这个账户比较特殊,是一种虚拟帐户,你无法在计算机 ...
- 用TextPaint来绘制文字
TextPaint是paint的子类,用它可以很方便的进行文字的绘制,一般情况下遇到绘制文字的需求时,我们一般用TextPaint所提供的方法.开始学习如何绘制文字之前,我们必须要先了解下androi ...
- GridView总结一:GridView自带分页及与DropDownList结合使用
GridView自带的分页功能实现: 要实现GrdView分页的功能 操作如下: 1.更改GrdView控件的AllowPaging属性为true. 2.更改GrdView控件的PageSize属性为 ...
- Stooge排序与Bogo排序算法
本文地址:http://www.cnblogs.com/archimedes/p/stooge-bogo-sort-algorithm.html,转载请注明源地址. Stooge排序算法 Stooge ...
- 实验:传输层:UDP协议 学习笔记
一.传输层协议 从之前介绍的网络层协议来看,通信的两端是两台主机,IP数据报首部就标明了这两台主机的IP地址.但是从传输层来看,是发送方主机中的一个进程与接收方主机中的一个进程在交换数据,因此,严格地 ...
- nginx安装过程,报错处理:make[1]: *** [objs/addon/src/bson.o] Error 1
nginx安装过程中,经常会有各种错误: 具体安装步骤这里不做说明,网上一搜大把: 主要分析安装过程中遇到的问题 在make编译的时候,若报如下错误: cc1: warnings being trea ...
- python基本数据结构-字典-方法
- 人生导师——如何学习C++的Windows方向
原来发在百度上,今天被人挖坟挖出来了,我就再贴出来吧. -----------------------有什么说的不对的地方---------------------- 本文原创,转载请注明出处并保持文 ...