简单的网络嗅探器.docx
《简单的网络嗅探器.docx》由会员分享,可在线阅读,更多相关《简单的网络嗅探器.docx(12页珍藏版)》请在冰豆网上搜索。
简单的网络嗅探器
河南理工大学
计算机科学与技术学院
课程设计报告
2014—2015学年第一学期
课程名称网络信息安全
设计题目简单的网络嗅探器
姓名
学号3112
专业班级
指导教师
2015年1月2日
网络嗅探器的设计与实现
摘要
随着现代网络技术的发展和网络应用的普及,越来越多的信息资源被放在了互联网上,网络的安全性和可靠性就显得越来越重要。
因此,对于能够分析、诊断网络,测试网络性能与安全性的工具软件的需求也就越来越迫切。
网络嗅探器具这款软件有其两面性,攻击者可以用它来监听网络中数据,达到非法获得信息的目的,网络管理者可以通过使用嗅探器捕获网络中传输的数据报并对其进行分析,分析结果可供网络安全分析之用。
本文对网络嗅探技术开发使用进行了简要分析,研究了网络数据报的捕获机制,如winpcap、原始套接字。
文中首先分析了嗅探的原理和危害,并介绍常见的嗅探器,然后研究了入侵检测系统中使用的报捕获技术。
本文利用原始套接字在windows平台下实现了一个网络嗅探器程序,完成了对数据报进行解报、分析数据报的功能。
关键词:
网络嗅探器;数据报捕获;数据报分析;原始套接字
目录
1、网络安全·································3
1.1基本概念···························3
1.2网络安全分析························3
2、网络安全设置要素························4
2.1网络策略·····························4
2.2网络安全益处·························5
3、相关网络知识介绍·······················6
4、网络嗅探器····························7
4.1网络嗅探器监听原理···················7
4.2嗅探和监听特点······················7
4.3TCP,IP,UDP等数据协议················8
4.4网络嗅探实现························10
4.5程序运行·····························11
5、小结····································12
6、参考文献································12
1.网络安全
1.1基本概念
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。
网络安全报含网络设备安全、网络信息安全、网络软件安全。
从广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论都是网络安全的研究领域。
网络安全是一门涉及计算机科学、网络技术、通信技术、密码技术、信息安全技术、应用数学、数论、信息论等多种学科的综合性学科。
1.2网络安全分析
[网络分析系统是一个让网络管理者,能够在各种网络安全问题中,对症下药的网络管理方案,它对网络中所有的传输的数据进行检测、分析、诊断,帮助用户排除网络事故,规避安全风险,提高网络性能,增大网络可用价值。
管理者不用再担心网络事故难以解决,科学的网络分析系统可以帮助企业把网络故障率和安全风险率会降到最低,网络性能也会逐步得到提升。
物理安全
网络的物理安全是整个网络系统安全的前提。
在校园网工程建设中,由于网络系统属于弱电工程,耐压值很低。
因此,在网络工程的设计和施工中,必须优先考虑保护人和网络设备不受电、火灾和雷击的侵害;考虑布线系统与照明电线、动力电线、通信线路、暖气管道及冷热空气管道之间的距离;考虑布线系统和绝缘线、裸体线以及接地与焊接的安全;必须建设防雷系统,防雷系统不仅考虑建筑物防雷,还必须考虑计算机及其他弱电耐压设备的防雷。
总体来说物理安全的风险主要有,地震、水灾、火灾等环境事故;电源故障;人为操作失误或错误;设备被盗、被毁;电磁干扰;线路截获;高可用性的硬件;双机多冗余的设计;机房环境及报警系统、安全意识等,因此要注意这些安全隐患,同时还要尽量避免网络的物理安全风险。
网络结构
网络拓扑结构设计也直接影响到网络系统的安全性。
假如在外部和内部网络进行通信时,内部网络的机器安全就会受到威胁,同时也影响在同一网络上的许多其他系统。
透过网络传播,还会影响到连上Internet/Intranet的其他的网络;影响所及,还可能涉及法律、金融等安全敏感领域。
因此,我们在设计时有必要将公开服务器(WEB、DNS、EMAIL等)和外网及内部其它业务网络进行必要的隔离,避免网络结构信息外泄;同时还要对外网的服务请求加以过滤,只允许正常通信的数据报到达相应主机,其它的请求服务在到达主机之前就应该遭到拒绝。
系统的安全
所谓系统的安全是指整个网络操作系统和网络硬件平台是否可靠且值得信任。
恐怕没有绝对安全的操作系统可以选择,无论是Microsoft的WindowsNT或者其它任何商用UNIX操作系统,其开发厂商必然有其Back-Door。
因此,我们可以得出如下结论:
没有完全安全的操作系统。
不同的用户应从不同的方面对其网络作详尽的分析,选择安全性尽可能高的操作系统。
因此不但要选用尽可能可靠的操作系统和硬件平台,并对操作系统进行安全配置。
而且,必须加强登录过程的认证(特别是在到达服务器主机之前的认证),确保用户的合法性;其次应该严格限制登录者的操作权限,将其完成的操作限制在最小的范围内。
应用系统
应用系统的安全跟具体的应用有关,它涉及面广。
应用系统的安全是动态的、不断变化的。
应用的安全性也涉及到信息的安全性,它报括很多方面。
——应用系统的安全是动态的、不断变化的。
应用的安全涉及方面很多,以Internet上应用最为广泛的E-mail系统来说,其解决方案有sendmail、NetscapeMessagingServer、SoftwareComPost.Office、LotusNotes、ExchangeServer、SUNCIMS等不下二十多种。
其安全手段涉及LDAP、DES、RSA等各种方式。
应用系统是不断发展且应用类型是不断增加的。
在应用系统的安全性上,主要考虑尽可能建立安全的系统平台,而且通过专业的安全工具不断发现漏洞,修补漏洞,提高系统的安全性。
——应用的安全性涉及到信息、数据的安全性。
信息的安全性涉及到机密信息泄露、XX的访问、破坏信息完整性、假冒、破坏系统的可用性等。
在某些网络系统中,涉及到很多机密信息,如果一些重要信息遭到窃取或破坏,它的经济、社会影响和政治影响将是很严重的。
因此,对用户使用计算机必须进行身份认证,对于重要信息的通讯必须授权,传输必须加密。
采用多层次的访问控制与权限控制手段,实现对数据的安全保护;采用加密技术,保证网上传输的信息(报括管理员口令与帐户、上传信息等)的机密性与完整性。
2.网络安全设置要素
2.1网络策略
影响Firewall系统设计、安装和使用的网络策略可分为两级,高级的网络策略定义允许和禁止的服务以及如何使用服务,低级的网络策略描述Firewall如何限制和过滤在高级策略中定义的服务。
服务访问策略
服务访问策略集中在Internet访问服务以及外部网络访问(如拨入策略、SLIP/PPP连接等)。
服务访问策略必须是可行的和合理的。
可行的策略必须在阻止己知的网络风险和提供用户服务之间获得平衡。
典型的服务访问策略是:
允许通过增强认证的用户在必要的情况下从Internet访问某些内部主机和服务;允许内部用户访问指定的Internet主机和服务。
Firewall设计策略
Firewall设计策略基于特定的firewall,定义完成服务访问策略的规则。
通常有两种基本的设计策略:
允许任何服务除非被明确禁止;
禁止任何服务除非被明确允许。
2.2网络安全益处
保护脆弱的服务
通过过滤不安全的服务,Firewall可以极大地提高网络安全和减少子网中主机的风险。
例如,Firewall可以禁止NIS、NFS服务通过,Firewall同时可以拒绝源路由和ICMP重定向封报。
控制对系统的访问
Firewall可以提供对系统的访问控制。
如允许从外部访问某些主机,同时禁止访问另外的主机。
例如,Firewall允许外部访问特定的MailServer和WebServer。
集中的安全管理
Firewall对企业内部网实现集中的安全管理,在Firewall定义的安全规则可以运用于整个内部网络系统,而无须在内部网每台机器上分别设立安全策略。
如在Firewall可以定义不同的认证方法,而不需在每台机器上分别安装特定的认证软件。
外部用户也只需要经过—次认证即可访问内部网。
增强的保密性
使用Firewall可以阻止攻击者获取攻击网络系统的有用信息,如Finger和DNS。
记录和统计网络利用数据以及非法使用数据
Firewall可以记录和统计通过Firewall的网络通讯,提供关于网络使用的统计数据,并且,Firewall可以提供统计数据,来判断可能的攻击和探测。
策略执行
Firewall提供了制定和执行网络安全策略的手段。
未设置Firewall时,网络安全取决于每台主机的用户
。
3.相关网络知识介绍
我们通常所说的“Packetsniffer”指的是一种插入到计算机网络中的偷听网络通信的设备,就像是电话监控能听到其他人通过电话的交谈一样。
与电话电路不同,计算机网络是共享通信通道的。
共享意味着计算机能够接收到发送给其他计算机的信息。
捕获在网络中传输的数据信息就称为Sniffing(窃听)。
以太网是现在应用最广泛的计算机联网方式,它就是一个共享的介质。
以太网协议是在同一回路向所有主机发送数据报信息。
数据报头报含有目标主机的正确地址。
一般情况下只有具有该地址的主机会接受这个数据报。
如果一台主机能够接收所有数据报,而不理会数据报头内容,这种方式通常称为“混杂”模式。
由于在一个普通的网络环境中,账号和口令信息以明文方式在以太网中传输,一旦入侵者获得其中一台主机的root权限,并将其置于混杂模式以窃听网络数据,从而有可能入侵网络中的所有计算机。
计算机能够接收到发送给其他计算机的信息。
这就意味着你不必打开配线盒来安装你的偷听设备,你几乎在连接到你的邻居的任何一条连接上对于你的邻居进行监听。
这就被称为“混杂模式”的监听。
但是这种的“共享”技术很快就被“交换”技术所取代,这样利用混杂模式进行监听已经不可能了,这就意味着你不得不进行实际的接线来实现监听。
目前一些交换机的监视端口就提供了这种接听方式。
在黑客的手中,嗅探器就变成了一个黑客利器,如利用ARP欺骗手段,很多攻击方式都要涉及到arp欺骗,如会话劫持和ip欺骗。
首先要把网络置于混杂模式,再通过欺骗抓报的方式来获取目标主机的pass报,当然得在同一个交换环境下,也就是要先取得目标服务器的同一网段的一台服务器。
arp是一种将ip转化成以ip对应的网卡的物理地址的一种协议,或者说ARP协议是一种将ip地址转化成MAC地址的一种协议,它靠维持在内存中保存的一张表来使ip得以在网络上被目标机器应答。
ARP就是IP地址与物理之间的转换,当你在传送数据时,IP报里就有源IP地址、源MAC地址、目标IP地址,如果在ARP表中有相对应的MAC地址,那么它就直接访问,反之,它就要广播出去,对方的IP地址和你发出的目标IP地址相同,那么对方就会发一个MAC地址给源主机。
而ARP欺骗就在此处开始,侵略者若接听到你发送的IP地址,那么,它就可以仿冒目标主机的IP地址,然后返回自己主机的MAC地址给源主机。
因为源主机发送的IP报没有报括目标主机的MAC地址,而ARP表里面又没有目标IP地址和目标MAC地址的对应表。
所以,容易产生ARP欺骗。
4.网络嗅探器
4.1网络嗅探器监听原理
Sniffer程序是一种利用以太网的特性把网络适配卡(NIC,一般为以太网卡)置为杂乱(promiscuous)模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息报。
普通的情况下,网卡只接收和自己的地址有关的信息报,即传输到本地主机的信息报。
要使Sniffer能接收并处理这种方式的信息,系统需要支持BPF,Linux下需要支持SOCKET-PACKET。
但一般情况下,网络硬件和TCP/IP堆栈不支持接收或者发送与本地计算机无关的数据报,所以,为了绕过标准的TCP/IP堆栈,网卡就必须设置为混杂模式。
一般情况下,要激活这种方式,内核必须支持这种伪设备BPFilter,而且需要root权限来运行这种程序,所以Sniffer需要root身份安装,如果只是以本地用户的身份进入了系统,那么不可能嗅探到root的密码,因为不能运行Sniffer。
基于Sniffer这样的模式,可以分析各种信息报并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据报,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。
这成为黑客们常用的扩大战果的方法,用来夺取其他主机的控制权。
4.2嗅探和监听特点
使用WinPcap开发报,嗅探流过网卡的数据并智能分析过滤,快速找到所需要的网络信息(音乐、视频、图片等)。
功能特点:
1、支持WINPCAP的各个版本。
2、支持所有操作系统(WIN9X/WIN2K/WINXP),适应能力加强。
3、增加支持无线网卡的嗅探能力,软件适用面更加广泛。
4、软件用Ddlphi7编写,杜绝了类似VB特有的错误,如"运行时错误",使软件更加稳定。
5、不再使用PACKETB.DLL连接文件,软件“绿色环保”。
6、使用多线程编程技术,内存和CPU占用大幅度减少。
7、集成超强HTTP下载软件,突破HTTP下载难题。
4.3TCP,IP,UDP等数据协议
数据在从应用层到达传输层时,将添加TCP数据段头,或是UDP数据段头。
其中UDP数据段头比较简单,由一个8字节的头和数据部分组成,具体格式如图4-3所示:
16位
16位
源端口
目的端口
UDP长度
UDP校验和
图4-3UDP数据段头格式
对于此UDP数据段头的分析在编程实现中可通过数据结构UDPPacketHead来定义:
structUDPPacketHead{
WORDSourPort;//16位源端口
WORDDestPort;//16位目的端口
WORDLen;//16位长度
WORDChkSum;//16位校验和
};
而TCP数据头则比较复杂,以20个固定字节开始,在固定头后面还可以有一些长度不固定的可选项,图4-4给出TCP数据段头的格式组成:
16位
16位
源端口
目的端口
顺序号
确认号
TCP头长
(保留)7位
URG
ACK
PSH
RST
SYN
FIN
窗口大小
校验和
紧急指针
可选项(0或更多的32位字)
数据(可选项)
图4-4TCP数据段头格式
对于此TCP数据段头的分析在编程实现中可通过数据结构TCPPacketHead来定义:
structTCPPacketHead{
WORDSourPort;//源端口
WORDDestPort;//目的端口
DWORDSeqNo;//32位序列号
DWORDAckNo;//32位确认号
BYTEHLen;//4位首部长度
BYTEFlag;//6位标志位
WORDWndSize;//16位窗口大小
WORDChkSum;//16位校验和
WORDUrgPtr;//16位紧急数据偏移量
};
在网络层,还要给TCP数据报添加一个IP数据段头以组成IP数据报。
IP数据段头格式如图4-5所示:
16位
16位
版本
IHL
服务类型
总长
标识
标志
分段偏移
生命期
协议
头校验和
源地址
目的地址
选项(0或更多)
图4-5IP数据段头格式
同样,在实际编程中也需要通过一个数据结构来表示此IP数据段头,下面给出此数据结构的定义:
typedefstruct_IPHEADER{
unsignedcharheader_len:
4;//4位首部长度
unsignedcharversion:
4;//4位版本号
unsignedchartos;//8位服务类型
unsignedshorttotal_len;//16位总长度
unsignedshortident;//16位标识符
unsignedshortflags;//3位标志位
unsignedcharttl;//8位生存时间
unsignedcharproto;//8位协议(IP,TCP,UDPetc)
unsignedshortchecksum;//16位IP首部校验和
unsignedintsourceIP;//32位源IP地址
unsignedintdestIP;//32位目的IP地址
}IPHEADER;
4.4网络嗅探实现
部分程序
typedefstructtcpheader{
unsignedshortintsport;/*sourceport(源端口号)*/
unsignedshortintdport;/*destinationport(目的端口号)*/
unsignedintth_seq;/*sequencenumber(报的序列号)*/
unsignedintth_ack;/*acknowledgementnumber(确认应答号)*/
unsignedcharth_x:
4;/*unused(未使用)*/
unsignedcharth_off:
4;/*dataoffset(数据偏移量)*/
unsignedcharFlags;/*标志全*/
unsignedshortintth_win;/*windows(窗口)*/
unsignedshortintth_sum;/*checksum(校验和)*/
unsignedshortintth_urp;/*urgentpointer(紧急指针)*/
}TCP_HDR;
typedefstructudphdr{
unsignedshortsport;/*sourceport(源端口号)*/
unsignedshortdport;/*destinationport(目的端口号)*/
unsignedshortlen;/*udplength(udp长度)*/
unsignedshortcksum;/*udpchecksum(udp校验和)*/
}UDP_HDR;
4.5运行检验
嗅探之前软件
运行嗅探程序
5.小结
两周的课程设计时间说长不长,说短不短,定下心来还是可以学到不少关于编程设计的知识的。
看到课程设计的题目,其实很没底,不知道选哪个,究竟要怎么做,上网查找有关网络嗅探器的信息,查看他人有关网络监视方面的论文,慢慢知道了网络嗅探器的作用。
并学习他人作出的成果,以此为基础学习模仿,加以修改,并加入自己的想法,对原来的程序加以修改,完成了自己对网络嗅探器的设计实现。
嗅探器的整个设计离不开平常的学习,学习不仅是一个慢慢积累的过程,更要将学到的东西运用到实际中去。
课程设计对我们来说是一个很好的机会,锻炼了每个人对所学知识的运用。
在设计过程中,我们通过查阅大量有关资料,与同学交流经验和实践能力,使自己学到了不少知识,懂得把知识运用于实践,收获巨大。
参考资料
(1)VC++深入详解-------孙鑫、余安萍电子工业出版社
(2)XX百科:
网络嗅探
(3)计算机网络(第5版)-----谢希仁电子工业出版社
(4)网络安全理论与技术.----------杨义先人民邮电出版社.