前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何写一个开放WLAN下的嗅探测试工具?

如何写一个开放WLAN下的嗅探测试工具?

作者头像
FB客服
发布2018-07-30 15:33:46
9460
发布2018-07-30 15:33:46
举报
文章被收录于专栏:FreeBufFreeBufFreeBuf

* 本文作者:Macr0phag3,本文属FreeBuf原创奖励计划,未经许可禁止转载

     _______..__   __.  __   _______  _______  _______ .______      
    /       ||  \ |  | |  | |   ____||   ____||   ____||   _  \      
   |   (----`|   \|  | |  | |  |__   |  |__   |  |__   |  |_)  |    
    \   \    |  . `  | |  | |   __|  |   __|  |   __|  |      /      
.----)   |   |  |\   | |  | |  |     |  |     |  |____ |  |\  \----.
|_______/    |__| \__| |__| |__|     |__|     |_______|| _| `._____| v3.0

介绍

有一天我在无意中发现,学校的WLAN是完全开放的。也就是说,身边充满了Cookie与明文密码。然后又发现了add在freebuf发的一篇文章,进而对写一个嗅探器的原理愈发有兴趣,于是就有了这个工具。

总之一句话,这个工具是用来嗅探测试开放WLAN下的数据包,具体嗅探的是含Cookie或者Method为Post的数据包。

*本文提供的工具仅供安全实验和教学用途,禁止非法使用

Gayhub地址【阅读原文】

嗅探器是一个类,有以下参数:

1. -i:可选参数;嗅探使用的原始无线网卡的名字,若不填则代码会自动指定无线网卡 2. -mi:可选参数;默认值为‘mon0’;由于嗅探需要开启无线网卡的监听模式(monitor),这个是将原始无线网卡改为监听模式后的名字(改为监听模式并非直接改原无线网卡,而是生成一个处于监控模式的虚拟无线网卡);这个虚拟的无线网卡在嗅探器停止后会自动删除。 3. -f:可选参数;默认为空;嗅探器可以实时嗅探,也可以解析本地的pcap包,这个参数就是本地pcaps包的名字,注意一定要放在Pcaps目录里;只需填写文件名; 4. -o:可选参数;默认为1;嗅探器一旦发现Cookie或者Post的包,就会进行对应的输出,若不想看见实时输出,则置0,否则置1。 5. -sPkt:可选参数;默认为1;嗅探器发现符合filter的数据时,会对输出的结果进行保存;若不想保存这些结果,置0;默认保存在Pkts下;若置1,则在嗅探结束的时候会提示是否删除本次捕获的所有pkts; 6. -sPcap:可选参数;默认为0;嗅探器可以保存符合filter的原始数据包;1为保存;0为不保存;默认保存在Pcaps下;若置1,则在嗅探结束的时候会提示是否删除本次捕获的pcap; 7. -fm:可选参数;默认为空;与scapy的过滤语法一致,对数据包进行过滤;代码在后面默认过滤自己的ip,以及只嗅探tcp/ip相关的包; 8. -iHF:可选参数;在是一个文件(iHost.txt)的路径,默认在当前目录,里面包含的host,在停止嗅探后会高亮显示。

代码中有插件功能,用意是捕获到指定的数据包时,可以由插件来完成后续的工作。例如,我校的校园网帐号密码可以用cookie拿到,那么这个功能就可以写成插件。弄插件的另一个目的是分离核心代码与其他代码。

举一些使用的例子:

1. 全部使用默认参数,此时自动指定无线网卡;生成一个虚拟的mon0无线网卡;在线模式;实时输出;保存解析过的Pkt;不保存原始Pcap;过滤为空;iHost.txt在当前目录下;

停止:

(这里我开启后就停止了,所以没有抓到包,正常情况返回的结果和下面本地解析的一样

2. 本地解析pcap:

注意

需要的库:scapy + scapy_http + argparse + termcolor 这些库可以手动安安装。

嗅探器在启动的时候也会自动检查环境并进行修复。修复是直接使用sudo pip install 语句,若电脑中存在多版本的python,注意一下pip的使用,可能需要修改ToolBox中EnvirTools 的autoFix函数语句。

注意:Python 3.x 的scapy需要手动安装(存在一个很无语的问题

安装scapy for Py3.x

配置:Ubuntu(其他Linux应该也可以)pip,iw,iwconfig,ifconfig 需可用。以管理员权限运行。终端的宽度要足够,否则会出现很多换行。因为覆盖同一行输出的时候是用 ‘\r’ 实现的。

Python版本:2.x and 3.x

版本更新

v1.0:实现基本功能 v2.0:简化代码,完善自动检查环境脚本,修复n个Bug v2.0 Py3.x:移植v2.0到Py 3.x v3.0:增加命令行参数;完善自动检查环境脚本;简化部分代码

后续更新

代码不够简洁(逃 插件功能的实现没有我希望的那样方便,应该再开一个线程/进程,以免在插件运行的时候嗅探就暂停了。后续会改进。

一些话

目前写的比较粗糙,后续有时间会改进。但是功能是比较完善的。个人觉得自己写插件蛮好玩的;例如,空间登陆只需要3种Cookie,我们可以让嗅探器在嗅到这些Cookie的时候发条说说(有点傻):

还可以怎么利用呢,蹲在图书馆的角落就可以发一些奇♂怪的东西:

(图是我盗的,逃

后来还发现,qq群相关的包特别多,可以查看/下载/上传群文件等等,危害还蛮大的(图被我吃了

有些厂家的web端都有https(或者说比较全面。但是自家的app等却做得不好,各种明文到处飞(某盘从此成为老司机

没了没了~

* 本文作者:Macr0phag3,本文属FreeBuf原创奖励计划,未经许可禁止转载

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 注意
  • 版本更新
  • 后续更新
  • 一些话
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档