首页
社区
课程
招聘
[原创]基于WinPCap的网络协议开发 - 抓取数据包,分析用户登录信息(02)
2009-5-6 09:22 10134

[原创]基于WinPCap的网络协议开发 - 抓取数据包,分析用户登录信息(02)

2009-5-6 09:22
10134
【文章标题】: 基于WinPCap的网络协议开发 - 抓取数据包,分析用户登录信息(02)
【文章作者】: 加百力
【软件名称】: WinPCap
【下载地址】: http://www.winpcap.org/
【内部编号】: MASSADA 0028
【编写语言】: C++
【使用工具】: VS2005
【操作平台】: Windows 2003
--------------------------------------------------------------------------------
【详细过程】

在第一篇文章中我们提到WinPCap的基本功能之一就是:

 1> 捕获原始数据包,包括在共享网络上各主机发送/接收的以及相互之间交换的数据包。

    该功能可以说是WinPCap最基本、最重要的功能。因为这是一切网络协议分析的基础。要实现这个功能却非常简单,只需要几个相关函数配合使用就可以抓取到数据包。关键任务是:当每次抓到数据包之后都会调用回调函数来处理。具体的处理过程就是关键了。在这篇文章中我们提供的示例是:分析数据包中是否含有"password"关键词,因为含有这种关键词的数据包可能含有用户的登录信息。在示例程序中如果发现含有"password"关键词的数据包,就把整个数据包编号,写入到一个二进制文件中。在此之后可以使用WinHex这样的二进制文件分析工具打开查看。

我们选择的实验论坛是:
http://www.netexpert.cn/   网络分析专家论坛(论坛系统为:Discuz! 6.1.0 )
该论坛有不少网络协议分析的高手,推荐给大家学习、讨论。

实验用账号密码为:
用户名:pojie
密码:123456

实验过程:
01、关闭其他网络连接。(比如BT下载等,减少对抓包分析的干扰)
02、打开http://www.netexpert.cn/网站准备登录。
03、使用第一篇文章提供的程序获取所有适配器信息,选择要抓包的网卡。
04、修改Debug目录中:“抓包脚本.bat”中的适配器名称。后面的tcp表示只抓取TCP包。
05、修改成功后运行“抓包脚本.bat”程序。如果没有数据包流动,显示不会有什么变化。
06、在论坛登录对话框中输入账号/密码登录。此时再看脚本运行界面会发现已经抓取到数据包
     并飞快的计数。
07、过一会应该可以看到显示“已经抓取到?个包含密码的数据包”(?表示个数)
08、使用WinHex打开数据包文件,查找password关键词。

具体代码请看附件。

--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2009年05月06日 08:00:00

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

上传的附件:
收藏
点赞7
打赏
分享
最新回复 (8)
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2009-5-6 09:30
2
0
主要问题在于:很多论坛或者通过网页登录的系统在传送用户账号密码时使用明文传送,这就给有恶意的人以可乘之机。比如某些相当猥琐的老板,想窥探员工的隐私就可以在公司网络的出口位置(比如网关)安装网络协议分析软件或硬件设备以截获员工的聊天信息、邮件信息、密码信息等。

介绍网络协议分析主要是提高大家的防范意识,并非为了去盗取别人的信息!
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2009-5-6 09:36
3
0
这里提供的仅仅是概念模型,介绍基本的WinPCap抓包、分析过程。真实的系统不能把大量工作放到回调函数中。这样会严重影响回调函数的性能,造成在应用层处理不过来使底层抓包模块丢包。一般回调函数只把数据包拷贝到缓冲区中,后面写入磁盘文件。分析处理过程由其他程序完成(这个过程极其复杂,要考虑的问题很多)。
雪    币: 411
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kmlch 2009-5-6 09:37
4
0
谢谢加百力版主。WinPCap很在名哦。
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2009-5-6 09:52
5
0
Windows平台WinPCap确实比较出名,使用也很方便,很多函数和Linux下的libpcap相同。
并且已经出了针对Windows CE的版本。

而且WinPCap还可以直接发送数据包。后一篇文章介绍使用WinPCap发送数据包的实验。
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小猛wgm 2009-5-8 10:35
6
0
支持一下,,非常有用
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
加百力 12 2009-5-8 10:48
7
0
对于同类型的其他BBS系统应该都有效果。

示例程序中查找的关键词是"password",用户可根据抓包分析结果,修改。

示例程序的内存查找函数效率也比较一般。用户可以写个更好的。
雪    币: 224
活跃值: (16)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
zhoujiamur 1 2009-5-11 12:29
8
0
学习下,准备研究
雪    币: 53
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
雅梦 2009-5-13 17:45
9
0
学习了!
游客
登录 | 注册 方可回帖
返回