局域网监听软件的设计和实现.docx
- 文档编号:3366829
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:45
- 大小:891.39KB
局域网监听软件的设计和实现.docx
《局域网监听软件的设计和实现.docx》由会员分享,可在线阅读,更多相关《局域网监听软件的设计和实现.docx(45页珍藏版)》请在冰点文库上搜索。
局域网监听软件的设计和实现
毕业设计(论文)
设计(论文)题目:
局域网监听软件设计和实现
学院名称:
电子和信息工程学院
专业:
计算机科学和技术
班级:
10计科
(2)
姓名:
XXXX学号XXXXXXXX
指导教师:
XXXX职称教授
定稿日期:
4月30日
局域网监听软件设计和实现
摘要
互联网给我们社会和个人带来了太多便利和益处。
社会运作包含公共设施及其服务、政府运作和个人生活,已经越来越离不开电脑和互联网了。
这使得互联网安全这一潜在威胁快速、悄然但又爆炸式地产生了。
公民个人隐私、通讯和表示自由受到直接冲击。
从邮件、电话到电子文档和其它资料,乃至行踪、消费统计等,我们似乎能够变成透明。
最近沸沸扬扬棱镜门和Heartbleed漏洞更是为世人敲响了网络安全警钟。
对局域网内数据监听系统研究,对于维护网络稳定性和处理网络安全问题有着关键意义,它能够用来帮助诊疗网络中路由设备,其它网络连接设备,查看网络上数据报传送情况,利于网络管理员管理和维护。
本局域网监听软件关键采取WinPCap开发工具和C++语言在VisualStudio编译器下进行开发。
软件实现了对局域网内数据进行捕捉和过滤,并分析出每一协议层传输数据关键字段和内容。
以后再将其显示,同时进行动态更新。
经过长时间使用,证实该软件运行可靠稳定,捕捉数据正确,易于使用。
关键词:
互联网安全,局域网监听,WinPCap,多协议分析
DESIGNANDIMPLEMENTATIONOF
LANMONITORINGSOFTWARE
ABSTRACT
Internethasbroughtmuchconvenienceandbenefitstooureverydaylife.Socialfunctioning,includingpublicfacilitiesandservices,governmentoperationsandpersonallifehasbecomeincreasinglydependentoncomputersandtheInternet.ThismakesthepotentialthreattoInternetsecurityquickly,quietlybutexplosivelygenerated.Theprivacyofindividualcitizens,freedomofcommunicationandexpressiondirectimpact.Frome-mail,telephonetoelectronicdocumentsandotherinformation,aswellasthewhereaboutsofconsumerrecords,itseemsthatwecanbecometransparent.RecentuproartheUSsurveillanceprogramPRISMandHeartbleedloopholeisfortheworldsoundedthealarmfornetworksecurity.ResearchondatamonitoringsysteminLAN,playsanimportantroleinmaintainingthestabilityofthenetworkandsolvetheproblemofnetworksecurity,itcanbeusedtohelpdiagnoseroutingequipmentinthenetwork,theothernetworkconnectiondevice,checkthetransmissionofthedataonthenetwork,managementandmaintenancetothenetworkadministrator.
ThisLANmonitoringsoftwaredevelopedwithWinPcap,usingtheC++languagecompilerunderVisualStudio.Thissoftwareismainlyrealizesinmonitoringthenetwork,dataanalyzesandanalyzethemainfielddataforeachprotocollayer.Afterthat,itshowswithcarriesonthedynamicrenewal.Afteralongperiodofuse,thesoftwareisreliableandstable,alsoabletoaccuratelycapturedataandeasytouse.
KeyWords:
internetsecurity,lanmonitoring,winpcap,multi-protocolanalysis
绪论
研究目标和意义
伴随计算机技术发展,网络和我们生活紧密相连,甚至已经成为生活中一部分,然而越来越多网络攻击正在一步步侵犯着我们网络安全。
黑客们很轻易截获在局域网中传输数据包,经过对数据包进行分析,就能得到数据包内关键信息。
经过这种方法,我们使用密码,发送邮件等私密信息无疑就暴露在她人面前,给个人隐私等信息带来很大安全威胁!
当然,我们也能够利用网络监听技术,获取黑客入侵信息,甚至能够提前做好预防工作,这么对保护我们信息安全无疑是一个取得了巨大先机。
所以,了解网络监听实现原理就显得尤为关键[]。
网络监听是信息安全领域内一项很关键和使用技术,她起源是网络管理员为了诊疗网络故障需要,而监听网络中传输数据信息。
在网络管理和维护中,网络管理和维护人员常常利用网络监听技术监控网络目前信息情况,网络流量,进行网络访问统计分析等等。
除此之外,网络监听还能够发觉网络中存在安全隐患,立即采取对应方法,不让黑客有机可乘。
但在现实生活中,网络监听技术往往能在黑客手中发挥更大作用,它们利用网络监听技术窃取用户私密资料。
对于一般用户来说,被监听可能只是泄露个人隐私资料;而对于金融机构等资料敏感用户,恶意网络监听更会带来难以填补金钱和信用损失。
总而言之,对于局域网数据监听系统研究,有利于维护计算机网络安全。
对于网络管理者来说,局域网监听能够识别网络中路由设备,查看局域网中传输数据包,统计网络流量,并能够侦测到非法入侵,找出网络中潜在问题等。
同时,管理员还能够利用网络监听软件处理部分网络故障,比如网络延时,丢包等问题。
假如不凭借监听软件,就无法正确知道问题出在何处。
在大型网络中,它存在对系统管理员是很关键,凭借从局域网监听软件获取信息,系统管理员能够了解网络中出现问题,给出对应处理方法,这给网络环境管理和维护提供了很宝贵信息。
1.1局域网监听技术发展
1.1.1局域网监听技术原理
局域网监听基础原理是数据在局域网环境下进行传输时,包含物理地址帧数据能送达成线路上每一台主机。
当数据抵达一台主机网卡时,在正常情况下,网卡读取数据帧,并进行检验,假如数据帧中所包含物理地址和本机物理地址或广播地址相同,则将该数据帧交由IP层进行处理,不然就将该数据帧丢弃。
当主机将该网卡置于混杂模式时,全部数据帧全部将交由IP层进行处理,并不会发生因物理地址不符而将该数据帧丢弃情况。
也就是说,在局域网环境下同一根线缆上传输全部数据全部会被该主机接收到,进而能够将全部接收到数据进行分析,从而得出用户所需要数据[][]。
局域网监听实现方法
要在局域网中监听,就需要主机工作在监听模式下,需要向网络接口发出I/O控制命令,将其设置成监听模式。
在Unix系统中,需要超级用户权限来发送命令。
但在Windows系统中,就没这个限制。
这种工作并不复杂,现在有太多工具软件能够做到这一点,在很多黑客网站或从事网络安全管理网站全部能找到。
在Unix环境下,监听工具很多,如Sniffit、Snoop、Dsniff等全部是常见,她们全部无偿公布源代码,能够进行研究。
而在Windows环境下,常见网络监听工具当然是著名Snifferpro了,实际上大家全部是用它在Windows环境下抓包来分析[]。
(1)Sniffit:
Sniffit能够运行在Solaris、SGI和Linux等平台上,是由LawrenceBerkeleyLaboratory开发一个无偿网络监听软件。
举例说明:
#Sniffit-a-p21-txxx.xxx.xxx.xxx
监听流向机器xxx.xxx.xxx.xxx21端口(FTP)信息,并以ASCII显示[]。
(2)Snifferpro:
经过对用监听工具捕捉数据帧进行分析,能够很轻易发觉敏感信息和关键信息。
比如,在使用Snifferpro对局域网进行一段时间监听后,分析所得数据,就能直接看到部分在监听期间该网用户名和口令,全部以明码显示,由此也能够看到局域网监听技术假如用于不正当目标会有多大危害[]。
网络传输技术概述
网络传输模型
计算机网络采取两种传输模型进行传输:
协议模型和参数模型。
协议模型提供了和特定协议族结构正确匹配模型。
TCP/IP模型描述了TCP/IP协议族中每个协议层实现功效,所以属于协议模型。
参考模型为各类网络协议和分服务之间保持一致性提供了通用参考,参考模型关键用途是帮组大家更清楚地了解包含功效和过程。
开放式系统互联(OSI)模型是一个参考模型。
TCP/IP模型
TCP/IP是TransmissionControlProtocol/InternetProtocol简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基础协议、Internet国际互联网络基础,由网络层IP协议和传输层TCP协议组成。
TCP/IP定义了电子设备怎样连入因特网,和数据怎样在它们之间传输标准。
协议采取了4层层级结构,每一层全部呼叫它下一层所提a供协议来完成自己需求。
通俗而言:
TCP负责发觉传输问题,一有问题就发出信号,要求重新传输,直到全部数据安全正确地传输到目标地。
而IP是给因特网每一台电脑要求一个地址[]。
(1)网络接口层
物理层是定义物理介质多种特征:
1、机械特征;
2、电子特征;
3、功效特征;
4、规程特征。
数据链路层是负责接收IP数据包并经过网络发送,或从网络上接收物理帧,抽出IP数据包,交给IP层。
ARP是正向地址解析协议,经过已知IP,寻求对应主机MAC地址。
RARP是反向地址解析协议,经过MAC地址确定IP地址。
比如无盘工作站还有DHCP服务。
常见接口层协议有:
Ethernet802.3、TokenRing802.5、X.25、Framerelay、HDLC、PPPATM等。
(2)网络层
负责相邻计算机之间通信。
其功效包含三方面。
处理来自传输层分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机路径,然后将数据报发往合适网络接口。
处理输入数据报:
首先检验其正当性,然后进行寻径--假如该数据报已抵达信宿机,则去掉报头,将剩下部分交给合适传输协议;假如该数据报还未抵达信宿,则转发该数据报。
处理路径、流控、拥塞等问题。
网络层包含:
IP(InternetProtocol)协议、ICMP(InternetControlMessageProtocol)
控制报文协议、ARP(AddressResolutionProtocol)地址转换协议、RARP(ReverseARP)反向地址转换协议。
IP是网络层关键,经过路由选择将下一条IP封装后交给接口层。
IP数据报是无连接服务。
ICMP是网络层补充,能够回送报文。
用来检测网络是否通畅。
Ping命令就是发送ICMPecho包,经过回送echorelay进行网络测试。
(3)传输层
提供给用程序间通信。
其功效包含:
一、格式化信息流;二、提供可靠传输。
为实现后者,传输层协议要求接收端必需发回确定,而且假如分组丢失,必需重新发送,即耳熟能详“三次握手”过程,从而提供可靠数据传输。
传输层协议关键是:
传输控制协议TCP(TransmissionControlProtocol)和用户数据报协议UDP(UserDatagramprotocol)。
(4)应用层
向用户提供一组常见应用程序,比如电子邮件、文件传输访问、远程登录等。
远程登录TELNET使用TELNET协议提供在网络其它主机上注册接口。
TELNET会话提供了基于字符虚拟终端。
文件传输访问FTP使用FTP协议来提供网络内机器间文件拷贝功效。
应用层协议关键包含以下多个:
FTP、TELNET、DNS、SMTP、NFS、HTTP。
FTP(FileTransferProtocol)是文件传输协议,通常上传下载用FTP服务,数据端口是20H,控制端口是21H。
Telnet服务是用户远程登录服务,使用23H端口,使用明码传送,保密性差、简单方便。
DNS(DomainNameService)是域名解析服务,提供域名到IP地址之间转换,使用端口53。
SMTP(SimpleMailTransferProtocol)是简单邮件传输协议,用来控制信件发送、中转,使用端口25。
NFS(NetworkFileSystem)是网络文件系统,用于网络中不一样主机间文件共享。
HTTP(HypertextTransferProtocol)是超文本传输协议,用于实现互联网中WWW服务,使用端口80[]。
OSI模型
OSI是OpenSystemInterconnect缩写,意为开放式系统互联。
通常全部叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究网络互联模型。
该体系结构标准定义了网络互连七层框架。
关键以下:
(1)应用层(ApplicationLayer)
应用层是OSI参考模型顶层,该层经过应用程序来完成用户需求,是用户和网络接口。
关键完成文件传输、收发电子邮件等功效。
(2)表示层(PresentationLayer)
早期表示层用来转化字符数据编码等显示相关功效。
现在因为应用层能完成一部分表示层功效,所以功效有所淡化。
(3)会话层(SessionLayer)
会话指是用户和用户连接。
会话层负责在两台计算机之间建立,管理和终止通信,就如同两台计算机之间对话。
会话层所以而得名。
(4)传输层(TransportLayer)
传输层是整个OSI模型中最关键一层,是模型中中心层,充当心脏作用。
在它之下层级实现通信,而它之上层级则对通信进行管理。
它负责数据传输和控制,提供端到端数据控制。
传输层独立于物理网络运行。
另外它还负责数据重传任务。
(5)网络层(NetworkLayer)
网络层定义了通信协议,它把逻辑地址转换成物理地址。
同时,网络层还提供选择路由功效,路由器功效就在这一层实现。
它为传输层提供支持。
(6)数据链路层(DataLinkLayer)
数据链路层在物理层和网络层之间。
在数据链路层上传输数据为帧。
该层目标是确保在节点之间传输数据帧正确性。
(7)物理层(PhysicalLayer)
物理层是OSI参考模型最底层。
顾名思义,它为数据传输建立物理连接。
完成经过物理线路在两个节点间传输比特流[]。
TCP/IP模型和OSI模型关系
TCP/IP协议并不能够和OSI模型完全匹配,TCP/IP不是使用7层,而是使用4层,它通常也叫做Internet协议套件,它分为下面4层:
1.网络接口层
2.互连网层
3.传输层
4.应用层
这4层每一层对应于OSI模型一层或多个层。
表2-1TCP/IP协议簇和OSI对应层级比较
OSI层级
TCP/IP协议
功效
应用层
TFTP,HTTP,SNMP,FTP等
文件传输,电子邮件,文件服务等
表示层
无
数据格式化,代码转换,数据加密
会话层
无
解除或建立别连接点联络
传输层
TCP,UDP
提供端对端接口
网络层
IP,ICMP,OSPF,ARP等
为数据包选择路由
数据链路层
SLIP,PPP,MTU,RARP等
传输有地址帧和错误检测功效
物理层
ISO2110,IEEE802等
二进制形式在物理媒体上传输数据
TCP/IP协议簇对应OSI对应层级,以下图所表示:
图2-1TCP/IP协议簇对应OSI对应层级
关键数据包结构
以太网帧格式
以太网帧是OSI参考模型数据链路层封装。
它是对网络层传输数据包加上帧头帧尾进行封装,从而组成了可被数据链路层识别数据帧。
在以太网帧当中,帧头和帧尾数据大小是固定不变,不过因为被封装数据包大小是可变,所以以太网帧大小是可变不固定。
大小范围在64-1518字节之间。
以太网V2MAC帧格式。
该标准由5个字段组成:
目标地址、源地址、类型、数据报、效验。
前导码:
包含同时码(用来使局域网中全部节点同时,7字节长)和帧标志(帧起始标志,1字节)两部分;
目标地址:
接收端MAC地址,6字节长;
源地址:
发送端MAC地址,6字节长;
类型:
数据包类型(即上层协议类型),2字节长;
数据:
被封装数据包,46-1500字节长:
校验码:
错误检验,4字节长。
分析每一帧能够得到此数据包源MAC地址和目标MAC地址,而且能够得到IP数据报完整内容(假如是ARP协议则没有IP数据包)。
IP数据报第4至7位是IP首部长度,该字段能够用来正确定位上层协议起始位置。
第10字节是协议字段,指出该IP数据报携带数据使用何种协议。
以太网头数据结构描述以下:
typedefstructethernet_header
{
u_chardstmac[6];//目标mac地址
u_charsrcmac[6];//源mac地址
u_shorteth_type;//以太网类型
}ethernet_header;[]
IP数据包格式
图2-2IP数据报首部组成
表2-2IP数据包总体结构
数据包
IP首部
信息首部(如TCP、UDP首部)
数据
以太网V2标准关键特点是经过类型域标识了封装在帧里数据包所采取协议,类型域是一个有效指针,经过它,数据链路层就能够承载多个上层(网络层)协议。
不过,它缺点是没有标识帧长度字段。
依据前面定义,数据包通常全部从数据链路层获取,所以,本软件根据获取数据格式前后,先处理链路层之上数据帧,以后分别是网络层,传输层和应用层上数据。
在对数据链路层上太网帧进行分析以后,我们就能够得到IP数据包。
IP数据包数据结构描述以下:
typedefstructip_header
{
u_charihl:
4;/*首部长度(4bits)*/
u_charver:
4;/*版本(4bits)*/
u_chartos;/*服务类型*/
u_shorttlen;/*总长度*/
u_shortidentification;/*标识*/
u_shortfo:
13;/*片偏移(13bits)*/
u_shortflags:
3;/*标志(3bits)*/
u_charttl;/*生存时间*/
u_charproto;/*协议*/
u_shortcrc;/*首部检验和*/
ip_addresssaddr;/*源地址*/
ip_addressdaddr;/*目标地址*/
u_intop_pad;/*可选+填充*/
}ip_header;
TCP数据报
图2-3TCP数据报组成
源端口和目标端口字段——各占2字节。
端口是传输层和应用层服务接口。
传输层复用和分用功效全部要经过端口才能实现。
序号字段——占4字节。
TCP连接中传送数据流中每一个字节全部编上一个序号。
序号字段值则指是本报文段所发送数据第一个字节序号。
确定号字段——占4字节,是期望收到对方下一个报文段数据第一个字节序号。
数据偏移——占4bit,它指出TCP报文段数据起始处距离CP报文段起始处有多远。
“数据偏移”单位不是字节而是32bit字(4字节为计算单位)。
保留字段——占6bit,保留为以后使用,但现在应置为0。
紧急比特URG——当URG=1时,表明紧急指针字段有效。
它告诉系统此报文段中有紧急数据,应立即传送(相当于高优先级数据)。
确定比特ACK——只有当ACK=1时确定号字段才有效。
当ACK=0时,确定号无效。
复位比特RST(Reset)——当RST=1时,表明TCP连接中出现严重差错(如因为主机瓦解或其它原因),必需释放连接,然后再重新建立运输连接。
同时比特SYN——同时比特SYN置为1,就表示这是一个连接请求或连接接收报文。
终止比特FIN——用来释放一个连接。
当FIN=1时,表明此报文段发送端数据已发送完成,并要求释放运输连接。
窗口字段——占2字节。
窗口字段用来控制对方发送数据量,单位为字节。
TCP连接一端依据设置缓存空间大小确定自己接收窗口大小,然后通知对方以确定对方发送窗口上限。
检验和——占2字节。
检验和字段检验范围包含首部和数据这两部分。
在计算检验和时,要在TCP报文段前面加上12字节伪首部。
紧急指针字段——占16bit。
紧急指针指出在本报文段中紧急数据最终一个字节序号。
选项字段——长度可变。
TCP首部能够有多达40字节可选信息,用于把附加信息传输给终点,或用来对齐其它选项。
填充字段——这是为了使整个首部长度是4字节整数倍。
TCP数据报数据结构描述以下:
typedefstructtcp_header//20bytes:
default
{
u_shortsport;//源端口
u_shortdport;//目标端口
u_longseqno;//Sequenceno
u_longackno;//Ackno
u_charreserved_1:
4;//保留6位中4位首部长度
u_charoffset:
4;//tcp头部长度
u_charflag:
6;//6位标志
u_charreserved_2:
2;//保留6位中2位
u_shortwin;
u_shortchecksum;
u_shortuptr;
}tcp_header;
WinPCap介绍
WinPCap是在Windows环境下链路层网络访问行业标准工具。
它许可应用程序绕过协议栈进行数据捕捉和发送,而且还有其它功效,其中包含内核等级包过滤,网络流量统计和远程数据包捕捉等功效。
WinPCap扩展了操作系统所提供低等级网络访问功效,它也提供了一个库用于更方便访问网络层级中底层。
该库也包含了UNIX下众所周知libpcapAPIWindows版本[][]。
WinPCap关键提供以下功效:
(1)捕捉原始数据包,不管它是发往某台机器,还是在其它设备(共享媒介)上进行交换,在数据包发送给某
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 局域网 监听 软件 设计 实现