当前位置:文档之家› 基于socket的网络嗅探器的设计与实现

基于socket的网络嗅探器的设计与实现

基于socket的网络嗅探器的设计与实现
基于socket的网络嗅探器的设计与实现

北方民族大学学士学位论文论文题目:基于socket的网络嗅探器的设计与开发

院(部) 名称:计算机科学与工程学院

学生姓名:杨浩东

专业:网络工程学号:20103144 指导教师姓名:李娟

论文提交时间:2014年5月10日

论文答辩时间:2014年5月17日

学位授予时间:

北方民族大学教务处制

基于socket的网络嗅探器的设计与开发

摘要

嗅探器(Sniffer),一种常用的网络监听的工具,本课题针对嗅探器研究了网络互联和嗅探器原理、嗅探器的防范和嗅探器的完整实现。并且设计了一个网络嗅探器,可用于攻击和分析网络中截获的数据来记录资料。

系统开发采用VC++语言,在Microsoft Visual C++ 2010编译环境下进行编码。利用原始套接字所拥有的超级用户权限,来对网卡进行编程,将网卡设置为混杂模式,迫使网卡被动接收所有流经的数据。winSock是提供了网络编程的库函数,使用winSock中的函数可以完成本软件所有重要功能的编码。

软件实现了对本机网卡的监听,循环抓取所有流经网卡的数据包,并且通过解析可以获得数据包中的协议类型以及协议的数据头的信息。用户还可以选择将解析记录保存下来供查看。软件还拥有友好的界面和简便的操作方式。

关键词:网络嗅探器,sniffer,TCP/IP,捕获,数据包

The Design And Development Of Network Sniffer Based On

Socket

Abstract

This topic has designed a network Sniffer (Sniffer), a kind of commonly used network monitoring tool that can be used to attack and analysis of data of intercepting network to record data. Study the principles of network interconnection and sniffer, sniffer preparedness and complete implementation of sniffer.

System development using vc + + language under the environment of Microsoft Visual c + + 2010 compiled code. Using raw socket have super user permissions, programming, network card for card set to promiscuous mode, forcing nic passive receive all data flows. WinSock is provides the network programming library function, using the winSock function can complete the data packets intercepted.

Software implementation of the native network card to monitor, cycle to grab all the packets through the network card, and the protocol type packets can be got through parsing and data protocol header information. The user can also choose to record parsing preserved for view. Software also has a good interface and simple operation.

Keywords: network sniffer, sniffer, TCP/IP, capture, packets

目录

第一章绪论 (1)

1.1 研究背景 (1)

1.2 设计目标 (1)

1.3 国内外现状 (2)

1.3.1 国外现状 (2)

1.3.2 国内现状 (2)

1.4 本文研究的内容和目的 (3)

第二章相关技术原理 (4)

2.1网络的OSI参考模型 (4)

2.2 TCP/IP协议 (4)

2.3 Sniffer工作原理 (7)

2.3.1 Hub的工作原理 (7)

2.3.2 网卡的工作原理 (8)

2.3.3 基于网卡混杂模式的嗅探原理 (8)

2.4 Raw Socket套接字 (9)

第三章系统需求分析 (11)

3.1 系统功能需求 (11)

3.2 系统性能需求 (11)

3.3 技术可行性分析 (11)

第四章系统总体设计 (12)

4.1 总体设计概述 (12)

4.2系统实现环境 (12)

4.3 功能模块设计 (13)

4.3.1 用户用例图 (13)

4.3.2 功能模块图 (13)

第五章系统详细实现 (16)

5.1 系统流程图 (16)

5.2 系统详细代码实现 (17)

5.3 软件界面 (23)

5.4 程序调试与运行 (24)

第六章总结 (26)

6.1 嗅探器的威胁 (26)

6.2 嗅探器的防御 (26)

6.3 总结 (27)

致谢 (29)

参考文献 (30)

第一章绪论

1.1研究背景

随着我国经济的快速发展,人民生活水平迅速提高,网络的应用越来越广泛,在日常生活中也扮演着极为重要不可替代的作用。因此网络信息成长成为社会发展当中的一个重要的组成部分[1]。甚至有关国家政府,军事,经济,文化和教育等领域。在这些数量众多的网络信息中,有许多一部分是重要的政府宏观调控策略、商业或者金融账号和口令、涉及能源资源的数据以及科研成果等重要信息。计算机网络俨然成为了与我们的生活息息相关的21世纪国家和社会数字化、网络化与信息化的基础。

正是因为有这么敏感的信息,网络也为社会带来了很多的麻烦,如数据的添加,信息窃取,篡改数据,计算机病毒,如信息泄漏。2013“棱镜”事件就是一个网络安全造成重大麻烦的事件,美国几乎外交地震,从欧洲到拉丁美洲的美国,从传统的同盟伙伴,从国家首脑会议的日常记录,这一系列大麻烦使得国际社会对美国政府公信力的质问声陡然增加了。

网络安全是一个充满活力与机遇的领域。为避免敏感信息的泄露,就需要在网络安全方面多一些研究和探索[1]。目前流量分析、安全监控的实现中,嗅探器就是是网络安全战斗中的有力武器。使用现在很多流行的Sniffer软件(如在Windows下工作的最著名Netxray和Sniffer pro,和在UNIX环境工作的Sniffit,Snoop等都属于比较常见的工具)来抓包解包分析,是非常方便的,还可用于网络管理、网络协议分析等众多方面。

1.2设计目标

本系统首先需要对网络互联的原理,嗅探器工作的原理简要分析,研究学习winpcap、socket套接字,了解包捕获机制是怎样进行的。并利用原始套接字在windows 平台下设计实现一个网络嗅探器。

系统的设计主要围绕以下几个方面进行:

(1)首先了解计算机网络通信的基本框架和工作原理,学习OSI七层网络模型、

TCP/IP协议。

(2)网络嗅探器的概念及技术的研究。首先从网络嗅探器的概念入手对嗅探器的

功能又一个大致的了解,再仔细探究网络嗅探器的工作原理及常见网络嗅探器实现的方法等。

(3)数据包嗅探技术是实现入侵检测的基础,所以嗅探器的截获功能的实现变得

至关重要。需要研究原始套接字的编程方法,运用到网卡混杂模式的设置方法和对数据包捕获机制的实现上,将数据从流动的网络互联系统中获取并显示反馈信息。

(4)网络嗅探程序的性能测试与评价,得出结论。

1.3国内外现状

1.3.1 国外现状

(1)Sniffer Pro

是一款一流的便携式网管和应用故障诊断分析软件,不管是在有线网络还是在无线网络中,它都能够给予网管管理人员实时的网络监视、数据包捕获以及故障诊断分析能力。对于在现场进行快速的网络和应用问题故障诊断,基于便携式软件的解决方案具备最高的性价比,却能够让用户获得强大的网管和应用故障诊断功能。

Sniffer软件是NAI公司推出的功能强大的协议分析软件,针对用Sniffer Pro网络分析器进行故障解决。利用Sniffer Pro 网络分析器的强大功能和特征,解决网络问题,将介绍一套合理的故障解决方法[2]。

与Netxray比较,Sniffer支持的协议更丰富,例如PPPOE协议等在Netxray并不支持,在Sniffer上能够进行快速解码分析。Netxray不能在Windows 2000和Windows XP上正常运行,Sniffer Pro 4.6可以运行在各种Windows平台上。

Sniffer软件比较大,运行时需要的计算机内存比较大,否则运行比较慢,这也是它与Netxray相比的一个缺点。

(2)Wireshark

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP 作为接口,直接与网卡进行数据报文交换。

1.3.2 国内现状

谷歌宣布将考虑退出中国市场,并在公告中说:退出中国市场的一个重要的原因,

是因为谷歌遭遇到了黑客的攻击。

2011年12月21日,黑客攻击了国内知名的一家程序员网站CSDN,将大量用户数据库以公布的形式放在了互联网上,这个事件把将近千万的注册账户名以明文暴露在网络上。

2011年12月29日,在用户的数据处于最为重要地位的电商领域,也陆陆续续被曝光存在用户信息泄漏的消息,而泄漏的用户数据被用于了网络营销,已经被卷入的企业有京东商城、支付宝和当当网,泄漏的总量达到了惊人的1500万~2500万,泄漏的时间尚不明确。

网络犯罪已形成的黑色产业链,网络攻击变得越来越专业化和商业化。呈现出的状态是以家庭用户作为最主要的被攻击目标,网络Web浏览器仍然是攻击的主要目标,攻击活动的动机已经转向有组织的经济犯罪。

1.4本文研究的内容和目的

(1)学习计算机网络的基本框架和工作原理:

在这项内容中,重点学习计算机网络的OSI七层模型、Hub的模型、TCP/IP协议的工作范围,并且认识到一些必要协议的数据包头的结构,这是对于编程时我们对于解包分析功能的实现的基础。

(2)理解网络嗅探器Sniffer的基本工作原理与实现方法。

下载试用sniffer pro等专业sniffer软件,试用测试专业sniffer软件的具有的功能、优势和存在的缺陷,如sniffer pro的强大流量监控功能让这个软件在流量监控时十分常用,但这款软件试用了ARP欺骗的方法,这样同时会带来很多网络变慢、ARP拥堵等问题。从而了解嗅探器的工作原理,比如网卡混杂模式,应具有的基本功能。(3)掌握Raw Socket使用方法及socket编程方法。

查阅资料,了解VC++编程方法。多个TCP连接或多个应用程序进程可能需要通过一个TCP协议端口传输数据。所以为了区分开所有的应用程序,操作系统提供了一接口叫做socket。学习socket编程的步骤和winsock库中一些基本的函数,供编程实现。原始套接字在对于网卡编程方面是有超级用户权限的,要比一般的套接字拥有优势,了解到这一点,才可以对于网卡模式的编程胸有成竹。

(4)实现一个基于Raw Socket的Sniffer系统。

设计一些功能模块如抓取数据包,解析数据包等,编程实现。

第二章相关技术原理

2.1网络的OSI参考模型

OSI网络模型是一个开放式的系统互联的参考模型[2]。如图2-1所示。

图 2-1 OSI七层网络模型

如图,在网络通信的发送端,其通信数据每到一个通信层,都会由该层协议在数据中添加一个包头数据。而恰恰相反的,数据到达接收方时,每一个通信层都会把数据中相应的包头数据剥除掉。所有的网络层有其自身的功能,如表2-1所示。

表 2-1 各网络层的功能

2.2 TCP/IP协议

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)协议实际是一个复杂的协议簇,由一组专业化的协议构建而成,是目前Internet上最成功、在互联网中最为常见的协议[3]。FTP(文本传输协议)、SMTP(邮件传输协议)

等被称为子协议的应用层协议都是存在于TCP/IP协议簇中的产生作用的重要协议。TCP/IP协议的网络模型只有4层,包括数据链路层、网络层、数据传输层和应用层,形象的表示如图2-2所示。

图2-2 TCP/IP网络协议模型

在数据传输层中,共有两种协议维持数据链路层的正常传输,分别是TCP和UDP 协议。TCP协议是基于面向连接的可靠的通信协议。而UDP协议是基于用户数据报,属于不可靠连接通信的协议。例如,当用户使用UDP协议发送的消息,不知道消息是否已到达接收器,或在传输过程中的数据已丢失。但在即时通讯,在一些网络的数据传输时间要求的UDP协议,起着重要的作用[4]。各层功能如表2-2所示。

表 2-2 TCP/IP网络协议各层的功能

数据链路层在TCP/IP协议模型的一个最底端的位置,它负责接收IP数据报并把数据报通过选定的网络发送出去。网络层则负责处理主机之间通信的问题,当网络层接收到数据传输层的请求后,传输某个具有目的地址信息分组到目的主机,并且把分组封装在IP数据报中的首部,再通过选路算法来确定交付路线。管理信息系统的数据传输层流量,并负责服务之间的可靠通信提供应用程序,以确保数据到达是无错误的,没有顺序的错乱。应用层是最高级的层次模型,用户调用应用程序,应用程序通过TCP/IP协议来访问服务。IP数据包结构如表2-3所示。

表2-3 IP数据包结构

IP数据包头的结构如表2-4所示。

表2-4 IP头结构

表2-5显示了TCP头结构。

表2-5 TCP头结构

UDP的头结构比较简单,如表2-4所示。

表2-4 UDP头结构

2.3 Sniffer工作原理

嗅探器(Sniffer)之所以能够实现对数据包的抓捕并分析,是因为对于网卡的编程需要使用原始套接字(socket)进行编码,通过对网卡的编程,我们就可以实现功能[3]。要和原始套接字区别开来的是,通常的套接字程序一般只会对与自己硬件地址相匹配的数据帧或者是以广播形式发出的数据帧做出回应,而如果发现并接收了不属于自己的报文则不会给予回应,也就是说应用程序无法收取已经到达本地网卡的数据包[5]。此时本系统所追求实现的嗅探器,却是需要监听网卡从网络上接收到的所有通过它的数据包,为实现这一目标,不能让网卡按正常方式下的行为方法工作,而必须将其设置为混杂模式。

2.3.1 Hub的工作原理

共享以太网集线器无线电(广播)技术的基本原理,也就是共享中心收到任何端口以太网数据包,它将以太网数据包广播到所有端口,而共享集线器不记得哪一个端口的MAC地址曾经挂接在Hub上。共享Hub在帮助两个计算机传输数据的时候占用了其他计算机的接口,于是在同一网段同一时间,只有两个计算机可以进行数据通信。这也是共享Hub与交换机的不同之处[6]。如图2-3所示。

主机A主机B主机C

共享式Hub

主机D主机E主机F

图2-3 局域网工作原理图

如图所示,主机A要与主机E进行通信,主机A 所发送的数据包由共享Hub发往了网络上的所有计算机。

2.3.2 网卡的工作原理

正是因为上述局域网(以太网)的工作模式,网络中的计算机每发送一次报文,这些报文就发送到了以太网上的其他计算机。而接收到报文的计算机网卡处理报文的过程如图2-4所示。

在一般或正常情况下,网卡只响应以下两种类型的数据帧:

(1)数据包的目的地址是本地网卡的硬件接口。

(2)数据包以“广播地址”作为目的地址发送出去。

图2-4 报文处理过程

如图所示,首先,网卡程序将检查数据包的数据包的目的地MAC地址:如果目标地址的MAC地址或网络广播地址,该卡将发出的中断信号通知系统,CPU得到中断信号后,网卡中断程序就会启动并调用驱动程序接收数据,而驱动程序在接收数据后放入信号堆栈再由操作系统处理;如果数据包的目的地址是其他主机或硬件MAC 地址,那么就要通过网络接收卡驱动程序调整的接收模式设置来判断如何做出动作;如果本机的网卡设置成了混杂(Promiscuous)模式,那么网卡同样产生中断通知,系统这个时候如何处理就与网卡没有关系了;最后一种情况,如果接收到的数据包中的目的地址是其他主机或硬件的MAC地址,而且此时网卡设置为非混杂模式,网卡就直接把数据丢弃而不会通知系统[7]。

2.3.3 基于网卡混杂模式的嗅探原理

计算机网络有多种连接方法,以总线方式互联的网络会采用广播的方式传输数据,这样的方式使得处于同一网段的所有主机的网卡都可以监听到网段中传输的数据

包。而当某台主机的网卡设置为混杂模式,该主机就可以被动强制接收网络中的任何数据,如果该台计算机上安装有用于处理捕获报文的软件,这个软件就可以成为一个嗅探器了[8]。

用图2-3中的模型举一个例子,主机A、B、C与Hub连接,主机A通过FTP 命令维护主机C,数据会以以下方式走向:A的应用层FTP协议走向传输层FTP协议,之后走向网络层IP协议最后到达数据链路层数上的以太网驱动程序、物理层,Hub此时会以广播的方式发送数据包。也可以接受,但目的地MAC地址和B发现自己并不一致,所以丢弃。C同样会收到,将会对该数据包进行分析处理。但是B的用户想知道C的FTP口令是什么,他需要把自己的网卡设置为混杂模式,接受该数据包并利用处理捕获报文的软件进行分析,分析结果会为B提供包含在数据包中的FTP 口令,B就完成了一个Sniffer嗅探器应该做出的行为。

2.4 Raw Socket套接字

Socket实际上是一个应用程序接口(API),利用socket编写网络程序时,程序员只需要调用socket包含的函数,而不需要过多的了解网络的底层[9]。由于它的优势,后来逐渐被引入到了windows操作系统中,被称作winsock,winsock目前已经拥有许多版本。

图2-5 原始套接字编程流程图

WinSock中包含的两种套接字:面向连接的套接字,流式套接字(scok_stream),用于面向连接的TCP服务。面向无连接的套接字,数据报式套接字(sock_dgram),用于面向无连接的UDP服务应用。而应用原始套接字(Raw Socket)是因为上述两种套接字虽然可以完成大多数的网络引用程序,但是却不能完成网络嗅探。上述两种套接字同样无法完成的还有分析数据包这一功能,而无论嗅探还是分析数据包,都是本次毕业设计要完成得目标。原始套接字则不同,他需要超级用户权限才可以创建,可以完成对ICMP、IGMP以及IP数据报的读写。利用socket编写网络应用程序的步骤为:建立一个套接字的对象、绑定主机的地址、建立并完成连接、关闭套接字。

第三章系统需求分析

3.1 系统功能需求

本系统首先运行于数据链路层,对网络进行监视,应能够捕获数据包,可以对截获的数据包进行简单地分析,对协议的封装进行解封装和分析各个结构部分,比如截获数据包的数目或者数据包的长度,通过解码,获得源IP地址、目的IP地址、协议类型、端口号等等,以此来进行故障分析。

其次,嗅探器应有一个有好的图形化界面,并通过对界面和功能的设置,使得用户通过鼠标就可以完成大部分的操作,实现简单、实用、操作方便。

3.2 系统性能需求

本程序不单单要实现预期达到的功能,还应该拥有良好的性能,较高的性能档次也是衡量一个应用程序的标准,本系统除了要达到一般程序要求的对差错控制、响应时间的要求外,还应该达到以下的标准:首先,嗅探器要保证数据的精确性,对于截获的数据包应保存它在传输时的原来面貌,而不应返回是没有IP头或者TCP头的单纯数据信息;其次,对于嗅探器的适用范围应该较广,应实现至少可以解析ARP、以太网、无线网以及TCP/IP等[4]。

3.3 技术可行性分析

以VC++2010为平台设计实现一个在windows中可以运行的.exe应用程序。在之前的介绍中提到,如果希望网卡对数据包做出回应再进行捕获,就需要将网卡设置为混杂模式,而之前也说过,Raw Socket原始套接字不同于winSock中的两种套接字,也只有通过原始套接字才可以编程实现网卡的混杂模式[10]。

技术上本系统先要创建原始套接字,再调用setsockopt()函数、bind()函数来把我们创建的原始套接字绑定在主机本地网卡上。如果我们想使原始套接字接收所有的数据,也需要调用ioctlsocket()函数,设置我们希望达到的效果,并可以通过此函数来制定是否亲自来处理IP包头。然后是对数据包的截取。本系统采取的方式和流式套接字、数据包式套接字一样,调用recv()函数来实现对数据包的捕获。需要提到的是,用原始套接字虽然也是调用recv()函数,但不同点在于,原始套接字可以与我们的性能需求达到一致,即可以捕获原始传输信息的数据包,而并不是单纯的数据[11]。这会为分析网络提供资料。

第四章系统总体设计

4.1 总体设计概述

有了对于嗅探器的工作原理的研究,我设计了一个简单实用的嗅探器。嗅探器基于socket套接字实现。在了解网络的OSI结构和TCP/IP协议的各种协议结构后,可以就以某一段网络,实现嗅探器的一些功能。

软件设计应该具有一个简单便于操作的界面,只需要用户一些简便的操作就可以完成嗅探器的一般动作。软件对于网卡的监听提供了多种选择,可以监听多个网卡,但同一时段只可以对一个网卡进行监听,这样用户可以通过软件了解本机所有网卡所在网络的各种数据包的信息,可以适用于无线局域网。软件可以与常用sniffer、wireshark等一样抓包。本软件通过socket包捕获机制对网络中的数据包进行截获,可以接货UDP、TCP、ARP、ICMP等协议的数据包,并对他们能够进行尽量详细的分析,能够帮助用户尽可能找到对自己有用处的协议信息。除了上述嗅探器的基本功能外,软件还创新实现对于解析结果进行一个关键字的搜索,并保存结果,供深层挖掘信息。软件还可以统计抓取到的数据包数目。

4.2系统实现环境

系统实现平台:Microsoft Visual C++ 2010(微软公司开发的可视化开发工具,它可以更为简便的制作应用程序的界面[12])

操作系统:windows 7

在Microsoft Visual C++ 2010中,创建一个MFC项目,命名为mySniffer。我们就可以开始代码的编写和界面的设计制作。

4.3 总体功能模块设计

4.3.1 用户用例图

用户用例图如图4-1所示。体现了用户使用软件可以做出的动作。

图4-1 用户用例图

操作说明:

1)用户选择需要监听的网卡。

2)选择开始抓包进行截获数据包。

3)用户可以根据需要的数量停止抓包。

4)用户还可以对解析结果进行保存。

5)用户输入自己需要的信息,对解析结果中自己需要的信息尽心筛选和保存。

4.3.2 总体功能模块图

对于上述软件需要实现的功能,本系统设计以下模块实现软件的功能,功能模块图如图4-1所示。

图4-2 总体功能模块图

(1)选择网卡:

首先选择需要监听的网卡,软件默认一个网卡,如果有多个网卡,则需要用户手动选择。这样即使是主机的无线网卡也可以进行监听,来了解某个无线网络的状况。这样的功能模块,增大了本软件的适用范围。

(2)抓包:

可截获局域网流量通过本地网卡的数据包,数据包截获分析和解包,由于循环算法,所以需要停止抓包来停止操作。点击开始后,总统计数模增加,并显示“正在监听…”字样。停止抓包后,统计数据包数目不再增加,并显示“是否监听?”字样。抓包是嗅探器的基本功能,本软件同样可以将网卡设置为混杂模式,截取所有流经本机网卡的数据包。

(3)数据解析:

抓取数据包的同时,不需人为操作,软件进行数据解析,解析出抓取数据包的协议类型,目的、源MAC地址和端口。这样功能能够让用户清晰的看到数据包中包含的重要信息,知道网络中传输的数据走向和大小。本软件目前可以解析的数据包类型有:TCP、UDP、ARP、ICMP等。提供了比较重要的几个数据包头结构中的信息,可以达到监听和探测的作用。

(4)关键字搜索:

对于重点信息的搜索,设计可以通过将某些关键信息作为关键字在抓取分析结果中搜索并将结果保存。结果保存在test2文件中。

(5)统计:

可以统计系统总共抓取的数据包数量。当需要一定数量时,观察统计数目随时手动停止抓取数据包就可以。统计数目非常准确。

(6)保存:

与在抓包解析结果中的保存不同,这是保存整个解析结果的。

第五章 系统详细实现

5.1 系统流程图

系统运行后,首先选择需要监听的网卡,程序调用bind ()函数获取并绑定IP 地址,调用listen ()函数对网卡进行监听,并创建原始套接字,开始对抓取的数据包进行分析

[13]。

程序流程图如图4-1所示。

图5-1程序流程图

而数据分析功能流程图。如图5-2所示。

图5-2 数据包分析线程流程图

基于winpcap的嗅探器设计与实现

基于winpcap的嗅探器设计与实现

计算机与信息学院 《计算机网络系统实践》报告 设计题目:嗅探器的设计与实现 学生姓名:*** 学号:2010**** 专业班级:信息安全****

2013 年9 月25 一、设计要求 1.不限平台,可以使用Libpcap、WinPcap 或 Linux的原始套接字; 2.实现一个功能比较简单的、具有图形界面的Sniffer,主线程响应用户界 面操作,工作线程完成抓包等工作; 3.能够解析出IP层和传输层的协议头,能够过滤TCP、UDP等数据包; 4.能够输出文本方式传送的数据包的内容; 5.能够进行简单的流量统计。 二、开发环境与工具

操作系统:windows7 开发工具:visual studio 开发语言:C++ 附加库:Winpcap 三、设计原理 网络嗅探器是一种常用的监听网络的工具。所谓嗅探器( Sniffer) ,是一种利用计算机网络接口截获网络数据的软件或硬件,可用于网络管理、网络协议分析以及网络安全等众多方面。嗅探器不同于一般的键捕获工具,后者只能捕获当地终端控制台上的按键内容,而嗅探器所“嗅”到的是动态的以信息包形式( 如IP 数据包或者以太网包) 封装的信息流。其中可能携带了重要数据或敏感信息。可以将这些捕获到的信息包存档,以利用相应工具可以作进一步分析。 计算机网络的设计为嗅探器的使用创造了最基本的条件。在目前的网络环境中,所有计算机节点都是共享传输介质,任意节点发出或发往任意节点的数据帧必将经过网内每一个节点的网络接口,此时只需对嗅探节点的网络接口( 网卡) 进行适当的设置便可为实现嗅探的做好准备工作。在计算机网络系统中,网卡是用来接收网络上其他节点发来的数据帧,其内嵌的单片处理程序会检测数据帧来源的MAC 地址,并根据网卡所设置的接收方式来是否接收处理数据,如果认为应该处理,则网卡就会产生中断信号通知中央处理器,接收该数据帧并传输给操作系统处理。否则就简单丢弃,所对应节点的网卡就截断,计算机的中央处理器并不参与。 网卡是网络中节点主机的关键硬件设备。对数据的接收一般有四种设置模式: 广播模式: 接收在网络中进行广播数据信息。组播模式: 接收组播数据信息。单播模式: 只有匹配的目的网卡才能接收数据信息。混杂模式: 网卡能够可以接收一切通过它的数据信息。 四、系统功能描述及软件模块划分 系统功能设计 本系统的基本功能为实现网络数据包的捕获, 并将其数据内容解析显示。网络数据包捕获功能主要负责从网络中捕获和过滤数据,这可以通过调

网络突破技术

1, 邮件攻击 (1),原理 邮件攻击主要有两种方法: a,直接利用邮件客户端工具的脆弱性,对目标主机进行攻击; b,利用邮件接受者和发送者之间的信任关系,实施欺骗攻击。 (2),实用技术 a,攻击中的邮件发送技术。常用的图形化的邮件发送工具一般是不允许对SMTP头进行 直接操作,常见的方法是通过命令行的方式向SMTP直接发送邮件。比如用netcat将包含了 SMTP命令及数据的文本文件通过管道发送出去。 b,信任关系的获取技术。主要是获得邮件客户端工具所存储的地址簿的信息。对使用outloook、outlook express工具的,一般是通过windows操作系统所提供的消息应用编程接口(Messageing Application Programming Interface,MAPI)来搜索注册表中的windows 地址簿来实现的。对于使用其它邮件客户端的可以利用邮件监控类木马来获取邮件地址信息。 c,附件攻击技术。利用存在漏洞的文件格式绑定木马程序,诱惑性强的链接。 2,口令攻击 (1),分类 a,字典攻击

b,暴力破解 c,组合攻击 (2),操作系统的口令保护技术 a,交互登录。交互登录是通过winlogon、Lsass、一个或多个验证包和sam或活动目录的 相互作用发生的。验证包啊是验证检查的dll。Kerberos是windows2000的交互登录到域的 验证包。Msv1_0是windows2000交互登录到本地计算机的验证包。 b,网络登录。通过协议认证来实现。经历了SMB协议的明文口令传输、LM,NTLM、NTLMv2和Kerboeros验证协议。 c,windows口令的存储。windows9x下用户口令是保存在扩展名为pwl的缓存文件中。windows NT/2000系统下是保存在SAM文件。 (3),windows系统口令的破解 a,对windows NT/2000系统,主要是通过获取sam文件来破解。获得sam文件的方法:启动引导另一个操作系统; 获取备份的sam文件; 从注册表sam项中导出密码散列; 监听NT密码验证的交换过程。 b,对windows 9x系统,可以直接获取pwl文件,利用解密程序来获取口令。 (4),工具介绍 离线口令破解工具:L0phtcrack(LC)、pwdump。

网络嗅探器的设计与实现

计算机网络课程设计 题目网络嗅探器的设计与实现 系 (部) 姓名 学号 指导教师 2015年7月18日

计算机网络课程设计任务书

网络嗅探器的设计与实现 摘要:网络嗅探器是对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法。本设计是关于网络嗅探器的设计与实现,其功能包括实现网络层抓包,对获得包的源和目的地址、端口、协议等进行分析和实现简单的包嗅探器功能。 关键字:网络嗅探器;数据包捕获; 套接字 引言 由于网络技术的发展,计算机网络的应用越来越广泛,其作用也越来越重要。计算机网络安全问题更加严重,网络破坏所造成的损失越来越大。但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。 嗅探器是一种常用的收集有用数据的方法,可以作为网络数据包的设备。嗅探器是通过对网卡的编程来实现网络通讯的,对网卡的编程是使用通常的套接字(socket)方式来进行。通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。 1 基本概念 1.1 嗅探器 每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址唯一地表示了网络上的机器。当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应。嗅探器工作在网络的底层,在网络上监听数据包来获取敏感信息。从原理上来说,在一个实际的系统中,数据的收发是由网卡来完成的,网卡接收到传输来的数据,其内的单片程序接收数据帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就接收后产生中断信号通知CPU,认为不该接收就丢掉不管,所以不该接收的数据网卡就截断了,计算机根本就不知道。对于网卡来说一般有四种接收模式: a)广播方式:该模式下的网卡能够接收网络中的广播信息。 b)组播方式:设置在该模式下的网卡能够接收组播数据。 c)直接方式:在这种模式下,只有目的网卡才能接收该数据。

试谈简单的网络嗅探器

成都信息工程学院课程设计报告 简单的网络嗅探器 姓名:纪红专业:信息安全班级:信安084班

提交日期:2011-12-13

简单的网络嗅探器 摘要 计算机网络嗅探器是能够窃听计算机程序在网络上发送和接收到的数据,程序实现了对抓取到的本机在网络中的通信数据的协议类型、源地址、目的地址、端口和数据包的大小加以简单的分析,改程序应用C#语言编写,实现了一个简单的网络嗅探功能。其中一个窗体显示主页面,另一个窗体显示详细信息 关键词:网络嗅探器;发送和同意到的数据;协议类型;源地址;目地地址;端口和数据包;分析;C#言语

目录 论文总页数:9页

1 引言 1.1 课题背景 随着社会信息化的不断深入,计算机啊网络差不多渗入到社会的每一个角落,人们已无时无刻离不开网络。专门多人经常上网购物,学习,玩游戏,然而网络上的一些不良信息专门可能阻碍到互联网用户尤其是青青年的身心健康。基于以上的现实问题,我开发了这款网络嗅探器。能够用来实现对计算机程序在网络上发送和接收到的数据的分析。 1.2 研究现状 网络嗅探器不管是在网络安全依旧在黑客攻击方面扮演了专门重要的角色。通过使用网络嗅探器能够把网卡设置于混杂模式,并能够对网络上传输的数据包的捕获和分析。此分析结果可供网络安全分析之用,但如为黑客所利用也能够为其发动进一步的攻击提供有价值的信息。可见,嗅探器实际上是一把双刃剑。尽管网络嗅探器技术被黑客所利用后会对网络构成一定的威胁,但嗅探器本身的危害并不是专门大,要紧是用来为其他黑客软件提供网络情报,真正的攻击要紧是由其它黑客软件来完成的。而在网络安全方面,网络嗅探手段能够有效地探测在网络上传输的数据包信息,通过对这些信息的分析利用有助于网络安全的维护。 1.3 本课题研究的意义 当我们处理自身网络问题的时候,一个信息包嗅探器向我们展示出正在网络上进行的一切活动。因此,借助一定的知识,

(2020年编辑)网络嗅探器的设计与实现

《网络与信息安全》课程设计报告 班级学号:姓名: 题目: 评阅: 成绩: 2011年1月

目录 一、开发背景 1、网络安全现状。 2、开发意义。 二、设计分析 1、实现目标。 2、开发技术简介。 三、详细设计 1、嗅探原理。 2、代码设计。 四、测试运行 五、总结 六、参考文献

摘要 网络嗅探器是作用在网络上的一种监听程序,它是系统管理员的一个得力助手,管理员可以用它来分析网络。例如当网络繁忙时可利用它来查找是哪一段网络繁忙,数据报文是属于哪一种协议,这样可以计算出哪种业务受欢迎。但是当有黑客使用它时,它又变得很可怕。它可以非法获取一些保密性信息,如帐号、密码等,它带来的负面破坏是非常大的。作为从事网络安全技术方面的人员来说,要想有效地利用它、防范它就得深入地学习、分析网络嗅探技术。 1、本设计的基本任务是设计一个嗅探软件,实现对常用网络数据包抓取、分析。 2、软件所要完成对本机在网络中的通信数据,比如协议类型,源、目的地址和端口、数据包 的大小等加以分析的功能。 3、本设计用到的开发工具为Microsoft Visual Studio 2010 开发环境为Windows 7。 4、程序由韩瑞彬同学和我共同完成,本人主要负责主界面的设计和网络数据包的抓取,韩 瑞彬同学负责对数据包的解析设计。 关键字:嗅探器,安全,黑客,数据报文 一、开发背景

1、网络安全现状 随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。计算机网络安全问题越来越严重,网络破坏所造成的损失越来越大。Internet 的安全已经成为亟待解决的问题。多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。嗅探器是一种常用的收集有用数据的方法,可以作为分析网络数据包的设备。网络嗅探器就是利用计算机的网络接口截获其他计算机的数据报文的一种工具,而且它与一般的键盘捕获程序不同。键盘捕获程序捕获在终端上输入的键值,而嗅探器捕获的则是真实的网络报文.如果把网络嗅探器放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,可以分析各种信息包并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据包,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。这成为黑客们常用的扩大战果的方法,用来夺取其他主机的控制权。当然嗅探器的正当用处主要是网络管理人员分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器截获网络中的数据包,分析问题的所在。 2、开发意义 本次设计只是对抓取到的本机在网络中的通信数据,比如说协议类型,源、目的地址和端口、数据包的大小等加以分析,而无法做到像Sniffer 或者影音神探那种成熟的嗅探器所拥有的强大功能。作为从事网络技术方面的人员来说,要想有效地利用它、防范它,就得深入地学习、分析网络嗅探技术。最为重要的是,对于网络嗅探器的设计与实现,使我对网络通信,数据传输和网络信息安全等有了切身的体会与融入,同时也是对网络安全技术这门课的学以致用,不断提高自我的一种有效途径。 二、设计分析 1、实现目标 (1)实现网络嗅探器的界面。 (2)实现抓取数据包的功能。

网络嗅探器设计

目 录 一、什么是嗅探器 二、嗅探器的作用 三、网络嗅探器原理 四、反嗅探技术 五、网络嗅探器的设计 六、总结: 一、什么是嗅探器 嗅探器,可以理解为一个安装在计算机上的窃听设备它可以用来窃听计算机在网络上所产生的众多的信息。简单一点解释:一部电话的窃

听装置, 可以用来窃听双方通话的内容,而计算机网络嗅探器则可以窃听计算机程序在网络上发送和接收到的数据。 可是,计算机直接所传送的数据,事实上是大量的二进制数据。因此, 一个网络窃听程序必须也使用特定的网络协议来分解嗅探到的数据, 嗅探器也就必须能够识别出那个协议对应于这个数据片断,只有这样才能够进行正确的解码。 计算机的嗅探器比起电话窃听器,有他独特的优势: 很多的计算机网络采用的是“共享媒体"。也就是说,你不必中断他的通讯,并且配置特别的线路,再安装嗅探器,你几乎可以在任何连接着的网络上直接窃听到你同一掩码范围内的计算机网络数据。我们称这种窃听方式为“基于混杂模式的嗅探”(promiscuous mode) 。 尽管如此,这种“共享” 的技术发展的很快,慢慢转向“交换” 技术,这种技术会长期内会继续使用下去, 它可以实现有目的选择的收发数据。 二、嗅探器的作用 嗅探器是网络的抓包工具,可以对网络中大量数据抓取,从而方便使用者对网络中用户的一些信息进行分析,所以,通常被黑客运用于网络攻击。我们如果也能掌握网络嗅探器的原理和设计,可以将它运用与网络故障检测、网络状况的监视,还可以加强企业信息安全防护。三、网络嗅探器原理 嗅探器是如何工作的?如何窃听网络上的信息? 网络的一个特点就是数据总是在流动中,从一处到另外一处,而互联网是由错综复杂的各种网络交汇而成的,也就是说:当你的数据从网络的一台电脑到另一台电脑的时候,通常会经过大量不同的网络设备,(我们用tracert命令就可以看到这种路径是如何进行的)。如果传输过程中,有人看到了传输中的数据,那么问题就出现了——这就好比给人发了一封邮件,在半路上被人拆开偷看一样,这样说或许还不是很可怕,那要是传送的数据是企业的机密文件那,或是用户的信用卡帐号和密码呢……? 嗅探侦听主要有两种途径,一种是将侦听工具软件放到网络连接的

网络嗅探器的设计实现

- - -. 《网络与信息安全》课程设计报告

2011年1月 目录 一、开发背景 1、网络安全现状。 2、开发意义。 二、设计分析 1、实现目标。 2、开发技术简介。 三、详细设计 1、嗅探原理。 2、代码设计。 四、测试运行 五、总结

六、参考文献 摘要 网络嗅探器是作用在网络上的一种监听程序,它是系统管理员的一个得力助手,管理员可以用它来分析网络。例如当网络繁忙时可利用它来查找是哪一段网络繁忙,数据报文是属于哪一种协议,这样可以计算出哪种业务受欢迎。但是当有黑客使用它时,它又变得很可怕。它可以非法获取一些XX性信息,如XX、密码等,它带来的负面破坏是非常大的。作为从事网络安全技术方面的人员来说,要想有效地利用它、防X它就得深入地学习、分析网络嗅探技术。 1、本设计的基本任务是设计一个嗅探软件,实现对常用网络数据包抓取、分析。 2、软件所要完成对本机在网络中的通信数据,比如协议类型,源、目的地址和端口、数据包 的大小等加以分析的功能。 3、本设计用到的开发工具为Microsoft Visual Studio 2010 开发环境为Windows 7。 4、程序由韩瑞彬同学和我共同完成,本人主要负责主界面的设计和网络数据包的抓取,韩 瑞彬同学负责对数据包的解析设计。 关键字:嗅探器,安全,黑客,数据报文

一、开发背景 1、网络安全现状 随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。计算机网络安全问题越来越严重,网络破坏所造成的损失越来越大。Internet 的安全已经成为亟待解决的问题。多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。嗅探器是一种常用的收集有用数据的方法,可以作为分析网络数据包的设备。网络嗅探器就是利用计算机的网络接口截获其他计算机的数据报文的一种工具,而且它与一般的键盘捕获程序不同。键盘捕获程序捕获在终端上输入的键值,而嗅探器捕获的则是真实的网络报文.如果把网络嗅探器放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,可以分析各种信息包并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据包,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。这成为黑客们常用的扩大战果的方法,用来夺取其他主机的控制权。当然嗅探器的正当用处主要是网络管理人员分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器截获网络中的数据包,分析问题

《网络嗅探器》课程设计报告

《网络与信息安全技术》课程报告 课题名称:网络嗅探器提交报告时间:2010年12月17 日 网络嗅探器 专业 组号指导老师 [摘要]随着网络技术的飞速发展,网络安全问题越来越被人重视。嗅探技术作为网络安全攻防中最基础的技术,既可以用于获取网络中传输的大量敏感信息,也可以用于网络管理。通过获取网络数据包的流向和内容等信息,可以进行网络安全分析和网络威胁应对。因此对网络嗅探器的研究具有重要意义。 本课程设计通过分析网络上常用的嗅探器软件,在了解其功能和原理的基础上,以VC为开发平台,使用Windows环境下的网络数据包捕获开发库WinPcap,按照软件工程的思想进行设计并实现了一个网络嗅探工具。该嗅探工具的总体架构划分为5部分,分别是最底层的数据缓存和数据访问,中间层的数据捕获,协议过滤,协议分析和最顶层的图形画用户界面。 本嗅探器工具完成了数据包捕获及分析,协议过滤的主要功能,实现了对网络协议,源IP 地址,目标IP地址及端口号等信息的显示,使得程序能够比较全面地分析出相关信息以供用户参考决策。 关键词:网络嗅探;WinPcap编程接口;数据包;网络协议;多线程 (中文摘要在150字左右。摘要正文尽量用纯文字叙述。用五号宋体字。姓名与摘要正文之间空二行。关键词与摘要之间不空行。“摘要”这两个字加粗) 关键词:入侵检测系统;感应器;分析器;分布式入侵检测系统模型 Network sniffer Major: software engineering Group Number: 29 [Abstract] With the rapid development of network technology, network security is increasingly being attention. Sniffing network security technology as the most basic offensive and defensive

在vs2008MFC下开发基于winpcap的网络嗅探器(IP,TCP,UDP)

课程设计Ⅰ设计报告 题目:基于Winpcap的网络嗅探器的实现学号: 姓名: 学院: 专业班级: 指导教师: 设计时间: 指导老师评语: 评定成绩: 签名: 日期:

目录 1 概述 (3) 1.1课程设计的目的 (3) 1.2设计任务与要求 (3) 1.3开发环境 (3) 2系统设计的基本概念与原理 (3) 2.1IP协议基本知识 (3) 2.2TCP协议基本知识 (6) 2.3UDP协议基本知识 (9) 2.4 WINPCAP基本知识 (9) 2.5 WINPCAP基本原理 (14) 2.6MFC编程框架 (16) 3 基于WINPCAP的单文档网络嗅探器的设计与分析 (19) 3.1系统设计实现的基本原理与过程 (19) 3.2系统功能设计 (21) 3.3系统架构设计 (22) 3.4子系统与模块设计 (23) 3.4.1网络嗅探器设置模块 (23) 3.4.2网络数据包的捕获模块 (23) 3.4.3解析和显示模块 (23) 4 系统详细设计与实现 (24) 4.1数据结构的设计 (24) 4.2全局变量与函数的声明 (25) 4.3嗅探器界面设计 (25) 4.4嗅探器捕获模块的设计与实现 (26) 4.5网络数据包捕获模块的设计与实现 (31) 4.6解析和显示模块的设计与实现 (32) 4.6.1列表视图初始化设置 (32) 4.6.2从读取离线数据包并在列表视图中显示 (33) 4.6.2响应用户鼠标消息,解析对应行的数据包信息。 (36) 5 系统调试与运行 (38) 5.1 WINPCAP函数库的安装 (38) 5.2 SNIFFER网络嗅探器的测试与运行 (38) 6 课程设计总结 (39) 参考文献 (40)

sniffer嗅探器基本知识

嗅探器 嗅探器保护网络 嗅探器是一种监视网络数据运行的软件设备,协议分析器既能用于合法网络管理也能用于窃取网络信息。网络运作和维护都可以采用协议分析器:如监视网络流量、分析数据包、监视网络资源利用、执行网络安全操作规则、鉴定分析网络数据以及诊断并修复网络问题等等。非法嗅探器严重威胁网络安全性,这是因为它实质上不能进行探测行为且容易随处插入,所以网络黑客常将它作为攻击武器。 目录 编辑本段简介 嗅探器最初由 Network General 推出,由 Network Associates 所有。最近,Network Associates 决定另开辟一个嗅探器产品单元,该单元组成一家私有企业并重新命名为 Network General,如今嗅探器已成为 Network General 公司的一种特征产品商标,由于专业人士的普遍使用,嗅探器广泛应用于所有能够捕获和分析网络流量的产品。 编辑本段网络技术与设备简介 在讲述Sniffer的概念之前,首先需要讲述局域网设备的一些基本概念。 数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,存在安全方面的问题。 每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址惟一地表示了网络上的机器(这一点与Internet地址系统比较相似)。当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。 在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应(换句话说,工作站A不会捕获属于工作站B 的数据,而是简单地忽略这些数据)。如果某个工作站的网络接口处于混杂

网络嗅探器的设计与实现论文总结

目录 1 引言 (1) 1.1 开发背景 (1) 1.2 开发意义 (1) 2 系统分析 (2) 2.1 设计概述 (2) 2.1.1 实现目标 (2) 2.1.2 开发环境 (2) 2.2 开发相关技术简介 (2) 2.2.1 C#语言简介 (2) 2.2.2 嗅探技术简介 (3) 2.2.3 TCP/IP协议 (4) 2.2.4 数据包简介 (6) 2.3 可行性分析 (8) 3 详细设计 (9) 3.1 设计原理 (9) 3.2 功能说明 (12) 3.3 系统实施 (12) 3.4 系统测试 (14) 4 论文总结 (19) 5 参考文献 (20) 6 致谢 (21)

1 引言 1.1 开发背景 随着各种新的网络技术的不断出现、应用和发展,计算机网络的应用越来越广泛,其作用也越来越重要。但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。计算机网络安全问题越来越严重,网络破坏所造成的损失越来越大。Internet的安全已经成为亟待解决的问题。多数黑客入侵成功并植入后门后的第一件事就是选择一个合适当前网络的嗅探器,以获得更多的受侵者的信息。嗅探器是一种常用的收集有用数据的方法,可以作为分析网络数据包的设备。网络嗅探器就是利用计算机的网络接口截获其他计算机的数据报文的一种工具,而且它与一般的键盘捕获程序不同。键盘捕获程序捕获在终端上输入的键值,而嗅探器捕获的则是真实的网络报文.如果把网络嗅探器放置于网络节点处,对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法,可以分析各种信息包并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据包,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。这成为黑客们常用的扩大战果的方法,用来夺取其他主机的控制权。当然嗅探器的正当用处主要是网络管理人员分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器截获网络中的数据包,分析问题的所在。[1] 1.2 开发意义 本次毕业设计是基于C#的网络嗅探器的设计与实现,由于本人能力上的限度,只是对抓取到的本机在网络中的通信数据,比如说协议类型,源、目的地址和端口、数据包的大小等加以分析,而无法做到像Sniffer或者影音神探那种成熟的嗅探器所拥有的强大功能。作为从事网络技术方面的人员来说,要想有效地利用它、防范它,就得深入地学习、分析网络嗅探技术。最为重要的是,对于网络嗅探器的设计与实现,使我对网络通信,数据传输和网络信息安全等有了切身的体会与融入,同时也是对大学四年的学以致用,不断提高自我的一种有效途径。

浅谈网络嗅探

浅谈网络嗅探 邹宁 随着信息化进程的加快、宽带网的普及,计算机网络在各个领域得到了广泛的应用,网络通信安全成为电信运营商和广大用户所关心的重要问题。病毒肆虐、黑客攻击,常常会导致网络莫名其妙的变慢甚至中断。而嗅探器,既是网络维护人员分析捕获网络故障的有效工具,也成为黑客进行网络入侵的得力助手。 嗅探器,是指在运行以太网协议、TCP/IP协议、IPX协议或者其他协议的网络上,可以捕获网络信息流的工具。嗅探器分软件和硬件两种,硬件的有网络分析仪,软件的如sniffer则是著名的嗅探器程序。嗅探器所捕获到的是动态的以信息包形式(如IP数据包或者以太网包)封装的信息流。其中可能携带了重要数据或敏感信息,譬如明文密码。嗅探器可以将捕获到的数据流分类,并可以作进一步分析。 享即意味着网络中的一台机器可以嗅探到传递给本网段(冲突域)中的所有机器的报文。例如最常见的以太网就是一种共享式的网络技术,以太网卡收到报文后,通过对目的地址进行检查,来判断是否是传递给自己的,如果是则把报文传递给操作系统;否则将报文丢弃而不进行处理;网卡存在一种特殊的工作模式,在这种工作模式下,网卡不对目的地址进行判断,而直接将他收到的所有报文都传递给操作系统进行处理。这种特殊的工作模式,就称之为混杂模式。网络嗅探器通过将网卡设置为混杂模式,并利用数据链路访问技术来实现对网络的嗅探。实现了数据链路层的访问,就可以把嗅探能力扩展到任意类型的数据链路帧,而不光是IP数据报。 嗅探器用于网络维护上是个得力的工具,在日常的网络查障中也发挥着重要的作用。嗅探器能够分析网络的流量,以便找出所关心的网络中潜在的问题。例如,网络的某一段频繁掉线、网速缓慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器来作出精确的问题判断。系统管理员通过嗅探器可以诊断出大量的不可见模糊问题,这些问题涉及两台乃至多台计算机之间的异常通讯有些甚至牵涉到各种的协议,借助嗅探器,系统管理

巧用嗅探器保障网络稳定运行(图

巧用嗅探器保障网络稳定运行(图) 安全中国 https://www.doczj.com/doc/fa10088380.html,更新时间:2009-04-22 01:15:35 责任编辑:ShellExp 对于网络、系统管理或安全技术人员来说,在对网络进行管理和维护的过程中,总会遇到这样或那样的问题。例如,网络传输性能为什么突然降低?为什么网页打不开,但QQ却能上线?为什么某些主机突然掉线?诸如此类的网络问题一个又一个地不断出现,都需要我们快速有效地去解决,以便能够尽量减少由于网络问题对企业正常业务造成的影响。因此,我们就需要一引起工具来帮助我们快速有效地找出造成上述这些问题的原因。 网络嗅探器就是这样的一种网络工具,通过对局域网所有的网络数据包,或者对进出某台工作站的数据包进行分析,就可以迅速地找到各种网络问题的原因所在,因而也就深受广大网络管理员和安全技术人员的喜爱。 可是,我们也应该知道交换机是通过MAC地址表来决定将数据包转发到哪个端口的。原则上来讲,简单通过物理方式将网络嗅探器接入到交换机端口,然后将嗅探器的网络接口卡设为混杂模式,依然只能捕捉到进出网络嗅探器本身的数据包。这也就是说,在交换机构建的网络环境中,网络嗅探器不使用特殊的方式是不能分析其它主机或整个局域网中的数据包的。但是,现在的企业都是通过交换机来构建局域网,那么,如果我们要想在这样的网络环境中使用网络嗅探器来解决网络问题,就必需考虑如何将网络嗅探器接入到目标位置,才能让网络嗅探器捕捉到网络中某台主机或整个网段的网络流量。 就目前来说,对于在交换机构建的网络环境中使用网络嗅探器,可以通过利用可网管交换机的端口汇聚功能、通过接入集成器或Cable TAP接线盒及选择具有特殊功能的网络嗅探软件这3种方法来进行。这3种可行的方式分别针对不同的交换机应用环境来使用的,本文下面就针对目前主流的几种交换机网络环境,来详细说明这3种接入方式的具体应用。 一、通过可网管交换机端口汇聚功能来达到目的

网络嗅探器的设计与实现

{ 计算机网络课程设计 题目网络嗅探器的设计与实现] 系 (部) 姓名 学号 指导教师 # 2015年7月18日

计算机网络课程设计任务书

网络嗅探器的设计与实现 摘要:网络嗅探器是对网络中的数据帧进行捕获的一种被动监听手段,是一种常用的收集有用数据的方法。本设计是关于网络嗅探器的设计与实现,其功能包括实现网络层抓包,对获得包的源和目的地址、端口、协议等进行分析和实现简单的包嗅探器功能。 关键字:网络嗅探器;数据包捕获; 套接字 引言 由于网络技术的发展,计算机网络的应用越来越广泛,其作用也越来越重要。计算机网络安全问题更加严重,网络破坏所造成的损失越来越大。但是由于计算机系统中软硬件的脆弱性和计算机网络的脆弱性以及地理分布的位置、自然环境、自然破坏以及人为因素的影响,不仅增加了信息存储、处理的风险,也给信息传送带来了新的问题。 嗅探器是一种常用的收集有用数据的方法,可以作为网络数据包的设备。嗅探器是通过对网卡的编程来实现网络通讯的,对网卡的编程是使用通常的套接字(socket)方式来进行。通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。 1基本概念 1.1嗅探器 每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址唯一地表示了网络上的机器。当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应。嗅探器工作在网络的底层,在网络上监听数据包来获取敏感信息。从原理上来说,在一个实际的系统中,数据的收发是由网卡来完成的,网卡接收到传输来的数据,其内的单片程序接收数据帧的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就接收后产生中断信号通知CPU,认为不该接收就丢掉不管,所以不该接收的数据网卡就截断了,计算机根本就不知道。对于网卡来说一般有四种接收模式: a)广播方式:该模式下的网卡能够接收网络中的广播信息。 b)组播方式:设置在该模式下的网卡能够接收组播数据。 c)直接方式:在这种模式下,只有目的网卡才能接收该数据。

网络嗅探器源代码

#include /*windows socketμ?í·???t£??μí3?¨ò?μ?*/ #include #include #include #include #pragma comment(lib,"ws2_32.lib") /*á′?óAPI?à1?á?μ?Ws2_32.lib?2ì??a*/ #define MAX_HOSTNAME_LAN 255 #define SIO_RCVALL _WSAIOW(IOC_VENDOR,1) #define MAX_ADDR_LEN 16 struct ipheader { unsigned char ip_hl:4; /*header length(±¨í·3¤?è£?*/ unsigned char ip_v:4; /*version(°?±?)*/ unsigned char ip_tos; /*type os service·t??ààDí*/ unsigned short int ip_len; /*total length (×ü3¤?è)*/ unsigned short int ip_id; /*identification (±êê?·?)*/ unsigned short int ip_off; /*fragment offset field(??ò???óò)*/ unsigned char ip_ttl; /*time to live (éú′?ê±??)*/ unsigned char ip_p; /*protocol(D-òé)*/ unsigned short int ip_sum; /*checksum(D£?éoí)*/ unsigned int ip_src; /*source address(?′μ??·)*/ unsigned int ip_dst; /*destination address(??μ?μ??·)*/ }; /* total ip header length: 20 bytes (=160 bits) */ typedef struct tcpheader { unsigned short int sport; /*source port (?′???úo?)*/ unsigned short int dport; /*destination port(??μ????úo?)*/ unsigned int th_seq; /*sequence number(°üμ?DòáDo?)*/ unsigned int th_ack; /*acknowledgement number(è·è?ó|′eo?)*/ unsigned char th_x:4; /*unused(?′ê1ó?)*/ unsigned char th_off:4; /*data offset(êy?Y??ò?á?)*/ unsigned char Flags; /*±ê??è?*/ unsigned short int th_win; /*windows(′°?ú)*/ unsigned short int th_sum; /*checksum(D£?éoí)*/ unsigned short int th_urp; /*urgent pointer(???±????)*/ }TCP_HDR;

简单的网络嗅探器解析

计算机科学与技术学院课程设计报告 2012— 2013学年第二学期 课程名称计算机网络 设计题目简单的网络嗅探器 姓名 学号 专业班级 指导教师 2013年 6 月17日

目录 摘要 (2) 关键词 (2) 1 网络嗅探概述 (3) 1.1 网络嗅探的简介 (3) 1.2 相关的网络知识 (3) 1.2.1 交换基础 (3) 1.2.2 路由基础 (4) 1.2.3网卡的工作原理 (5) 1.3 基于网卡混杂模式的嗅探原理 (6) 1.4 基于arp欺骗的嗅探原理 (6) 1.5 网络嗅探的安全威胁 (7) 1.6 网络嗅探的防范 (8) 1.6.1 检测嗅探器 (8) 1.6.2 将数据隐藏,使嗅探器无法发现 (8) 2 基于原始套接字的嗅探程序 (9) 2.1 嗅探实现 (9) 2.2 嗅探运行结果 (26) 2.2.1 嗅探普通数据包 (26) 2.2.2 嗅探HTTP敏感信息 (26) 2.2.3 嗅探FTP敏感信息 (27) 小结 (29) 参考资料 (29)

网络嗅探器的设计与实现 Design and implementation of network sniffer 摘要 近年来,伴随着网络技术的发展和网络应用的普及,互联网已经成为信息资源的重要载体和主要传布途径,从而使得网络的安全性和可靠性越来越受到关注和重视。因此,对于能够很好的分析与诊断网络,测试网络性能与安全性的工具软件的需求越发迫切。 网络嗅探器作为分析与诊断网络,测试网络性能与安全性的工具软件之一,具有两面性。攻击者可以通过使用它来监听网络中数据,达到非法截取信息的目的,网络管理者可以通过使用嗅探器捕获网络中传输的数据包并对其进行分析,分析结果可供网络安全分析之用。 本文对网络嗅探技术进行了简要分析,研究了网络数据包的捕获机制,如winpcap、原始套接字。文中首先分析了嗅探的原理和危害,并介绍了几种常见的嗅探器,然后研究了入侵检测系统中使用的包捕获技术。本文利用原始套接字在windows平台下实现了一个网络嗅探器程序,完成了对数据包进行解包、分析数据包的功能。 关键词:网络嗅探器数据包捕获数据包分析原始套接字网络安全C语言VC++6.0

网络嗅探器的实际与实现

网络与信息安全 课程设计 网络嗅探器的设计和实现 学院:计算机科学与技术 班级:网络工程06-1班 姓名:白俊生 学号:310609040105 指导老师:刘坤

目录 一、什么是嗅探器--------------------------------------------1 二、嗅探器的作用---------------------------------------------1 三、网络嗅探器的原理-----------------------------------------1 四、反嗅探技术----------------------------------------------7 五、网络嗅探器的设计-----------------------------------------8 六、结语---------------------------------------------------14参考书目--------------------------------------------------14

网络嗅探器的实际与实现 一、什么是嗅探器 嗅探器,可以理解为一个安装在计算机上的窃听设备它可以用来窃听计算机在网络上所产生的众多的信息。简单一点解释:一部电话的窃听装置, 可以用来窃听双方通话的内容,而计算机网络嗅探器则可以窃听计算机程序在网络上发送和接收到的数据。 可是,计算机直接所传送的数据,事实上是大量的二进制数据。因此, 一个网络窃听程序必须也使用特定的网络协议来分解嗅探到的数据,嗅探器也就必须能够识别出那个协议对应于这个数据片断,只有这样才能够进行正确的解码。 计算机的嗅探器比起电话窃听器,有他独特的优势:很多的计算机网络采用的是“共享媒体"。也就是说,你不必中断他的通讯,并且配置特别的线路,再安装嗅探器,你几乎可以在任何连接着的网络上直接窃听到你同一掩码范围内的计算机网络数据。我们称这种窃听方式为“基于混杂模式的嗅探”(promiscuous mode)。尽管如此,这种“共享” 的技术发展的很快,慢慢转向“交换” 技术,这种技术会长期内会继续使用下去,它可以实现有目的选择的收发数据。 二、嗅探器的作用 嗅探器是网络的抓包工具,可以对网络中大量数据抓取,从而方便使用者对网络中用户的一些信息进行分析,所以,通常被黑客运用于网络攻击。我们如果也能掌握网络嗅探器的原理和设计,可以将它运用与网络故障检测、网络状况的监视,还可以加强企业信息安全防护。 三、网络嗅探器原理 嗅探器是如何工作的?如何窃听网络上的信息? 网络的一个特点就是数据总是在流动中,从一处到另外一处,而互联网是由错综复杂的各种网络交汇而成的,也就是说:当你的数据从网络的一台电脑到另一台电脑的时候,通常会经过大量不同的网络设备,(我们用tracert命令就可以看到这种路径是如何进行的)。如果传输过程中,有人看到了传输中的数据,

网络嗅探器4.7.使用方法

工欲善其事,必先利其器.首先当然是准备工作啦,请出我们今天的必杀武器--- 网络嗅探器4.7. 接下来就是破解步骤了: 步骤一.打开大连铁通星海宽带影院,找到你想下载的电影,我们以美剧<英雄>为例.(ps:这部美剧还不错,无情强烈推荐!) 步骤二. 打开网络嗅探器,开启嗅探,工作模式选获取url就可以了! 步骤三. 选择英雄的第一集开始播放,当正常播放后,我们切回到网络嗅探器,发现多了许多以.67/webmedia/webmedia.das?的网址. 步骤四. 右键点选这些网址,选择查看数据包,找到其中的一个含有offsite=0的网址,记录下其中的prog_id=xxxx和host: 和uuid=xxxxxx 一会儿有用!

步骤五.找到网络嗅探器文件夹中的"文件下载.exe",双击打开.然后新建下载任务! get /webmedia/webmedia.das?cmd=1&clientver=4801&prog_id=xxxx&customer_id=90&local= http/1.1 accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/vgplayer, application/x-shockwave-flash, */* connection: keep-alive host: user-agent: viewgood/1.0 (1; 1; 1) accept-encoding: gzip, deflate 说明:该步骤是和服务器通信,进行服务注册的.其中"cmd=1"表示下载."prog_id=xxxx"是节目的id值,就是第四步时记录的值,将xxxx修改成目标电影的id值;customer_id就不用解释了."uuid=7b0f8acc-b9c0-4f75-9e3f-5fd2d5e05d75"表示注册服务号,offset=0 表示偏移为0,整个下载."host: "表示服务器ip地址. 本例构造如下 get /webmedia/webmedia.das?cmd=1&clientver=4801&prog_id=18557&customer_id=90&local= http/1.1 accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/vgplayer, application/x-shockwave-flash, */* connection: keep-alive

相关主题
文本预览
相关文档 最新文档