VC++编程实现网络嗅探器

VC++编程实现网络嗅探器
VC++编程实现网络嗅探器

VC++编程实现网络嗅探器

VC++编程实现网络嗅探器

中国电波传播研究所青岛分所郎锐引言

从事网络安全的技术人员和相当一部分准黑客(指那些使用现成的黑客软件进行攻击而不是根据需要去自己编写代码的人)都一定不会对网络嗅探器(sniffer)感到陌生,网络嗅探器无论是在网络安全还是在黑客攻击方面均扮演了很重要的角色。通过使用网络嗅探器可以把网卡设置于混杂模式,并可实现对网络上传输的数据包的捕获与分析。此分析结果可供网络安全分析之用,但如为黑客所利用也可以为其发动进一步的攻击提供有价值的信息。可见,嗅探器实际是一把双刃剑。虽然网络嗅探器技术被黑客利用后会对网络安全构成一定的威胁,但嗅探器本身的危害并不是很大,主要是用来为其他黑客软件提供网络情报,真正的攻击主要是由其他黑软来完成的。而在网络安全方面,网络嗅探手段可以有效地探测在网络上传输的数据包信息,通过对这些信息的分析利用是有助于网络安全维护的。权衡利弊,有必要对网络嗅探器的实现原理进行介绍。

嗅探器设计原理

嗅探器作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket)方式来进行。但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。

具体到编程实现上,这种对网卡混杂模式的设置是通过原始套接字(raw socket)来实现的,这也有别于通常经常使用的数据流套接字和数据报套接字。在创建了原始套接字后,需要通过setsockopt()函数来设置IP头操作选项,然后再通过bind()函数将原始套接字绑定到本地网卡。为了让原始套接字能接受所有的数据,还需要通过ioctlsocket()来进行设置,而且还可以指定是否亲自处理IP头。至此,实际就可以开始对网络数据包进行嗅探了,对数据包的获取仍象流式套接字或数据报套接字那样通过recv()函数来完成。但是与其他两种套接字不同的是,原始套接字此时捕获到的数据包并不仅仅是单纯的数据信息,而是包含有IP头、TCP头等信息头的最原始的数据信息,这些信息保留了它在网络传输时的原貌。通过对这些在低层传输的原始信息的分析可以得到有关网络的一些信息。由于这些数据经过了网络层和传输层的打包,因此需要根据其附加的帧头对数据包进行分析。下面先给出结构.数据包的总体结构:

数据包

IP头TCP头(或其他信息头)数据

数据在从应用层到达传输层时,将添加TCP数据段头,或是UDP数据段头。其中UDP数据段头比较简单,由一个8字节的头和数据部分组成,具体格式如下:

16位16位

源端口目的端口

UDP长度UDP校验和

而TCP数据头则比较复杂,以20个固定字节开始,在固定头后面还可以有一些长度不固定的可选项,下面给出TCP数据段头的格式组成:

16位16位

源端口目的端口

顺序号

确认号

TCP 头长(保

留)7

URG

AC

K

PSH RST SYN FIN 窗口大小

校验和紧急指针

可选项(0或更多的32位字)

数据(可选项)

对于此TCP数据段头的分析在编程实现中可通过数据结构_TCP来定义:

typedef struct _TCP{ WORD SrcPort; // 源端口

WORD DstPort; // 目的端口

DWORD SeqNum; // 顺序号

DWORD AckNum; // 确认号

BYTE DataOff; // TCP头长

BYTE Flags; // 标志(URG、ACK等)

WORD Window; // 窗口大小

WORD Chksum; // 校验和

WORD UrgPtr; // 紧急指针

} TCP;

typedef TCP *LPTCP;

typedef TCP UNALIGNED * ULPTCP;

在网络层,还要给TCP数据包添加一个IP数据段头以组成IP数据报。IP数据头以大端点机次序传送,从左到右,版本字段的高位字节先传输(SPARC是大端点机;Pentium是小端点机)。如果是小端点机,就要在发送和接收时先行转换然后才能进行传输。IP数据段头格式如下:

16位16位

版本 IHL 服务类型总长

标识标志分段偏移

生命期协议头校验和

源地址

目的地址

选项(0或更多)

同样,在实际编程中也需要通过一个数据结构来表示此IP数据段头,下面给出此数据结构的定义:

typedef struct _IP{

union{ BYTE Version; // 版本

BYTE HdrLen; // IHL

};

BYTE ServiceType; // 服务类型

WORD TotalLen; // 总长

WORD ID; // 标识

union{ WORD Flags; // 标志

WORD FragOff; // 分段偏移

};

BYTE TimeToLive; // 生命期

BYTE Protocol; // 协议

WORD HdrChksum; // 头校验和

DWORD SrcAddr; // 源地址

DWORD DstAddr; // 目的地址

BYTE Options; // 选项

} IP;

typedef IP * LPIP;

typedef IP UNALIGNED * ULPIP;

在明确了以上几个数据段头的组成结构后,就可以对捕获到的数据包进行分析了。

嗅探器的具体实现

根据前面的设计思路,不难写出网络嗅探器的实现代码,下面就给出一个简单的示例,该示例可以捕获到所有经过本地网卡的数据包,并可从中分析出协议、IP源地址、IP目标地址、TCP源端口号、TCP目标端口号以及数据包长度等信息。由于前面已经将程序的设计流程讲述的比较清楚了,因此这里就不在赘述了,下面就结合注释对程序的具体是实现进行讲解,同时为程序流程的清晰起见,去掉了错误检查等保护性代码。主要代码实现清单为:

// 检查Winsock 版本号,WSAData为WSADATA结构对象

WSAStartup(MAKEWORD(2, 2), &WSAData);

// 创建原始套接字

sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW));

// 设置IP头操作选项,其中flag 设置为ture,亲自对IP头进行处理

setsockopt(sock, IPPROTO_IP, IP_HDRINCL, (char*)&flag, sizeof(flag));

// 获取本机名

gethostname((char*)LocalName, sizeof(LocalName)-1);

// 获取本地IP 地址

pHost = gethostbyname((char*)LocalName));

// 填充SOCKADDR_IN结构

addr_in.sin_addr = *(in_addr *)pHost->h_addr_list[0]; //IP

addr_in.sin_family = AF_INET;

addr_in.sin_port = htons(57274);

// 把原始套接字sock 绑定到本地网卡地址上

bind(sock, (PSOCKADDR)&addr_in, sizeof(addr_in));

// dwValue为输入输出参数,为1时执行,0时取消

DWORD dwValue = 1;

// 设置SOCK_RAW 为SIO_RCVALL,以便接收所有的IP包。其中SIO_RCVALL

// 的定义为:#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)

ioctlsocket(sock, SIO_RCVALL, &dwValue);

前面的工作基本上都是对原始套接字进行设置,在将原始套接字设置完毕,使其能按预期目的工作时,就可以通过recv()函数从网卡接收数据了,接收到的原始数据包存放在缓存RecvBuf[]中,缓冲区长度BUFFER_SIZE定义为65535。然后就可以根据前面对IP数据段头、TCP数据段头的结构描述而对捕获的数据包进行分析:

while (true)

{

// 接收原始数据包信息

int ret = recv(sock, RecvBuf, BUFFER_SIZE, 0);

if (ret > 0)

{

// 对数据包进行分析,并输出分析结果

ip = *(IP*)RecvBuf;

tcp = *(TCP*)(RecvBuf + ip.HdrLen);

TRACE("协议:%s\r\n",GetProtocolTxt(ip.Protocol));

TRACE("IP源地址:%s\r\n",inet_ntoa(*(in_addr*)&ip.SrcAddr));

TRACE("IP目标地址: %s\r\n",inet_ntoa(*(in_addr*)&ip.DstAddr));

TRACE("TCP源端口号:%d\r\n",tcp.SrcPort);

TRACE("TCP目标端口号:%d\r\n",tcp.DstPort);

TRACE("数据包长度:%d\r\n\r\n\r\n",ntohs(ip.TotalLen));

}

}

其中,在进行协议分析时,使用了GetProtocolTxt()函数,该函数负责将IP包中的协议(数字标识的)转化为文字输出,该函数实现如下:

#define PROTOCOL_STRING_ICMP_TXT "ICMP"

#define PROTOCOL_STRING_TCP_TXT "TCP"

#define PROTOCOL_STRING_UDP_TXT "UDP"

#define PROTOCOL_STRING_SPX_TXT "SPX"

#define PROTOCOL_STRING_NCP_TXT "NCP"

#define PROTOCOL_STRING_UNKNOW_TXT "UNKNOW"

……

CString CSnifferDlg::GetProtocolTxt(int Protocol)

{

switch (Protocol){

case IPPROTO_ICMP : //1 /* control message protocol */

return PROTOCOL_STRING_ICMP_TXT;

case IPPROTO_TCP : //6 /* tcp */

return PROTOCOL_STRING_TCP_TXT;

case IPPROTO_UDP : //17 /* user datagram protocol */

return PROTOCOL_STRING_UDP_TXT;

default:

return PROTOCOL_STRING_UNKNOW_TXT;

}

最后,为了使程序能成功编译,需要包含头文件winsock2.h和ws2tcpip.h。在本示例中将分析结果用TRACE()宏进行输出,在调试状态下运行,得到的一个分析结果如下:

协议:UDP

IP源地址:172.168.1.5

IP目标地址: 172.168.1.255

TCP源端口号:16707

TCP目标端口号:19522

数据包长度:78

……

协议:TCP

IP源地址:172.168.1.17

IP目标地址: 172.168.1.1

TCP源端口号:19714

TCP目标端口号:10

数据包长度:200

……

从分析结果可以看出,此程序完全具备了嗅探器的数据捕获以及对数据包的分析等基本功能。

小结

本文介绍的以原始套接字方式对网络数据

进行捕获的方法实现起来比较简单,尤其是不需要编写VxD虚拟设备驱动程序就可以实现抓包,使得其编写过程变的非常简便,但由于捕获到的数据包头不包含有帧信息,因此不能接收到与IP 同属网络层的其它数据包, 如ARP数据包、RARP数据包等。在前面给出的示例程序中考虑到安全因素,没有对数据包做进一步的分析,而是仅仅给出了对一般信息的分析方法。通过本文的介绍,可对原始套接字的使用方法以及TCP/IP协议结构原理等知识有一个基本的认识。本文所述代码在Windows 2000下由Microsoft Visual C++ 6.0编译调试通过。

基于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 的数据,而是简单地忽略这些数据)。如果某个工作站的网络接口处于混杂

网络嗅探器实验报告

网络攻击与防御技术实验报告 实验目的: 本实验通过研究Winpcap中常用的库函数的使用方式来实现了一个小型的网络数据包抓包器,并通过对原始包文的分析来展示当前网络的运行状况。 实验内容: 1.实现对网络基本数据包的捕获 2.分析捕获到的数据包的详细信息 实验环境: 1.WpdPack_4_0_1支持库 2.VC++开发环境 3.Windows操作系统 实验设计: 系统在设计过程中按照MVC的设计模式,整体分为三层。第一层为Control层即控制层,这里为简化设计,将Control层分为两个部分,一部分为网络报文输入,另一部分为用户输入;第二层是Model层即模型层;第三层为View层即显示层。 系统的整体运行过程为:从Control层得到数据,交到Model层进行处理,将处理完的结果交View层进行显示。Control层主要用于网络数据包的捕获以及获得用户的输入;Model层主要用于分析数据包,处理用户的输入;View层主要用于对处理后的结果进行显示。 详细过程: 程序在执行过程中有两个核心的工作,一是调用Winpcap函数库实现下层抓包。二是对抓到的包文进行分析。下面分别列出两个核心过程的基本算法与相关的实现代码。 抓包算法: 第一:初始化Winpcap开发库 第二:获得当前的网卡列表,同时要求用户指定要操作的网卡 第三:获得当前的过滤规则,可为空 第四:调用库函数,pcap_loop(),同时并指定其回调函数,其中其回调函数为数据包分析过程。 对应的相应核心代码为: I f((pCap=pcap_open_live(getDevice()->name,65536,1,1000,strErrorBuf))==NULL) { return -1; } If(pcap_compile(pCap, &fcode, filter, 1, NetMask) < 0)

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

目录 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数据报。 嗅探器用于网络维护上是个得力的工具,在日常的网络查障中也发挥着重要的作用。嗅探器能够分析网络的流量,以便找出所关心的网络中潜在的问题。例如,网络的某一段频繁掉线、网速缓慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器来作出精确的问题判断。系统管理员通过嗅探器可以诊断出大量的不可见模糊问题,这些问题涉及两台乃至多台计算机之间的异常通讯有些甚至牵涉到各种的协议,借助嗅探器,系统管理

网络嗅探器的设计与实现

{ 计算机网络课程设计 题目网络嗅探器的设计与实现] 系 (部) 姓名 学号 指导教师 # 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;

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

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

网络嗅探器的实际与实现

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

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

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

简单的网络嗅探器解析

计算机科学与技术学院课程设计报告 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

相关文档
最新文档