这是去年写的一个用于干扰教学的工具。
Computer Networks 这门课,需要用到 Wireshark 这个抓包软件查看网络流量。
写了这玩意,通过广播一些特制的数据,可以在其他人的机子上刷出点有趣(?)的东西:
如图,一眼就能看出不正常.. 其实就是乱发 HTTP Response,并把原来显示状态码(200、404 …)的部分,改成了其他文字…
由于需要乱发,用了 WinPcap,它提供了一些 API 能够比较方便地跳过系统的协议栈,让网卡发送完全自定义的数据。这里使用了它的一个 Python 绑定 winpcapy。
最后需要发送的是以太网帧,也就是说,要自己从 HTTP、TCP、IP 一路构建下来。为了简化工作使用了 dpkt ,里面提供了丰富的协议支持,能很方便地构建数据包。
一点小细节:Wireshark 会分析 TCP 协议,并把不正常的包用红色标出。为了避免这样,每个包的目的端口都是随机选取的,让 Wireshark 认为每个包都属于不同的 TCP 会话。当然换成随机的 IP 也没问题。
代码贴 Gist 上了 Gist 9721330。
玩法:
- 下载安装 Python 2.7 和 WinPcap;
- 下载打包的好的工具;
- 运行
net_test.py
得到网卡列表和对应的地址(e.g rpcap://\Device\NPF_{x-x-x-x-x}); - 运行
net_test.py rpcap://\Device\NPF_{x-x-x-x-x}
发送。
完整用法是net_test.py <interface> [repeat_times [message]]
,可选重复次数与消息内容(默认是 5 次、发送随机表情)。
注意需要管理员权限,系统如有开 IP Forwarding 功能需关闭。
代码不复杂,想玩更多花样可以自己改..
注意这样不按协议标准发数据的事.. 还是少做得好.. 玩玩就好,切勿滥用..
哇哦好巧,你也干扰教学质量啊,我前几天才把老师的作业网站D了
少量发送且极易区分,其实只是刷刷存在感,够不上干扰呢..
刚才看到了奇怪的东西。。。Xiaomi?
哈哈,因为源 MAC、源和目的 IP 都能随便填。